- 步骤:
1). 设置主时钟为3.68MHz
2). 初始化SPI0: 3管脚模式 (SCLK,SOMI,SIMO),数据长度为8位,时钟为1MHz;
3). 初始化ads1281: using the RESET pin
4). 配置ads1281寄存器:即向寄存器写入相应的值
5). 检验配置结果: 即回读写入寄存器的值,判断配置是否无误
6). 选择读数模式: 连续读或者通过指令读
7). 数据转换: SYNC信号为低时转换数据
8). 读取数据: DRDY信号为低时读取数据
2. 现象:
1). CLK、SCLK正确
2). ads1281初始化信号正确
3). ads1281的CLK和SCLK时钟管脚正确,数据接收管脚能接收的SPI发出的数据,且与SCLK一一对应
4). ads1281的数据发送管脚没有信号,用示波器检测为低电平
3. 问题:通过SPI的接收标志位可以判断SPIBUF有数据接收,但是为0x00,与之前配置ads1281寄存器的值不同,是ads1281的数据没有发送出来还是之前SPI 发送的数据没有写入?在第5步就出问题了,后面的就没执行了,数据发送格式时序都是按着ads1281指导书的。希望能给予帮助,谢谢!
Denny%20Yang99373:
是ads1281的数据没有发送出来还是之前SPI 发送的数据没有写入?
可以通过示波器来抓一下数据信号线,看看DSP发送数据是否正常
Yiping Chen4:
回复 Denny%20Yang99373:
DSP SPI发送的数据能检测到,在ads1281的输入管脚也能检测到,时钟也能对应
Denny%20Yang99373:
回复 Yiping Chen4:
说明DSP 发送这块没啥问题
看看ADS1281有没有一些固定的特殊寄存器能不能读?通过示波器监控一下数据线
Yiping Chen4:
回复 Denny%20Yang99373:
嗯 ads1281 的寄存器都需要配置 貌似没有固定的特殊寄存器可以用来读
Yiping Chen4:
回复 Denny%20Yang99373:
不过我可以试着读下ads1281 RESET后 寄存器的初始值 看下正不正常
Yiping Chen4:
回复 Denny%20Yang99373:
我试着读其他寄存器的值,发现也是0x00,还有我发现问题了:是因为我spi发给ADS1281的指令,他没有识别,所以检测到的的0x00,但是我是根据贵公司的参考指导的时序图操作的,为什么会出现这个问题,希望能给予帮助,谢谢