为了用SPI向AD2S1210寄存器写入数据,我将官网例程改成如下:
void WriteToAD2S1210(unsigned char address, unsigned char data)
{
unsigned char buf;
//write control register address
buf = address;
SET_WR();
delay(1);
CLR_WR();
delay(1);
SpiaRegs.SPITXBUF = buf<<8;
SET_WR(); //利用WR输入的上升沿予以锁存
delay(1);
//write control register address
//write control register data
buf = data;
SET_WR();
delay(1);
CLR_WR();
delay(1);
SpiaRegs.SPITXBUF = buf<<8;
SET_WR(); //利用WR输入的上升沿予以锁存
delay(1);
//write control register data
}
其中SPI配置为
void spi_init()
{
SpiaRegs.SPICCR.all =0x0007; // Reset on, SPI上升沿移出数据, 8-bit char bits
SpiaRegs.SPICTL.all =0x0006; // Enable master mode, normal phase,
// enable talk, and SPI int disabled.
SpiaRegs.SPIBRR =0x0004;
SpiaRegs.SPICCR.all =0x0087; // Relinquish SPI from Reset
SpiaRegs.SPIPRI.bit.FREE = 1; // Set so breakpoints don't disturb xmission
}
想要改变激励频率 但是一直无法正确写入。
2018-7-31 07:47:43
参考数据手册fig32-34图,需要在配置模式下进行寄存器的读写
参考数据手册fig32-34图,需要在配置模式下进行寄存器的读写
举报
2018-8-27 11:06:06
您好,最后读写正常了吗?
我用2812配置SPI读写也是不正常,但是用模拟IO读写正常。
您好,最后读写正常了吗?
我用2812配置SPI读写也是不正常,但是用模拟IO读写正常。
1
举报
-
飞鸟鸣:
你好,模拟IO口的话,时钟信号怎么来呢?
2020-6-15 21:34:31
我也遇到了相同的问题,从示波器上观察SPI形态,是正常的,但是频率无法更新,不确定是不是配置还有哪个地方没弄清楚
我也遇到了相同的问题,从示波器上观察SPI形态,是正常的,但是频率无法更新,不确定是不是配置还有哪个地方没弄清楚
1
举报
-
飞鸟鸣:
你好,可以看一下您的程序嘛?你说的SPI形态是什么?示波器观测到的频率有变化吗?