TI论坛
直播中

徐冬蕾

7年用户 250经验值
私信 关注
[问答]

ADS1248读写寄存器值始终为零

调试了一周时间,对ads1248的写操作仍未成功,对寄存器先写再读回,dout输出始终为零。spi时序都满足要求,reset和start始终高电平,先发送一个字节的写操作指令和寄存器地址,然后依次发送寄存器数目和数据,每个字节的间隔满足5个时钟周期的要求,但读出寄存器的值始终为零。不解问题出现在哪里,三否在发送每个字节前应该先判断/DRDY为0时,然后再发送?硬件电路按参考电路来的,也测试过,不存在问题,肯定问题在SPI上,始终搞不定,急死,望各位高手指点一二,非常感激!!!

回帖(15)

冯金妮

2019-5-21 12:27:59
Hi
   将你的SPI时序发给我看一下:(包括命令,和写的值)
   其中要注意:
   1.  Write 操作必须在power on后16mS后进行(fOSC=4.096MHz)
   2.  数字写入是下降沿锁存。
举报

徐冬蕾

2019-5-21 12:45:03
时序图没有暂未保存,但通过示波器核对过单片机输出信号时序的正确性,可以确定时序符合要求,且数据在时钟下降沿锁存.如欲将MUX1和SYS0分别写入0x30和0x50,则SPI依次发送0x42 ,0x01 ,0x30 ,0x50,每个字节发送后延迟2us再发送下一字节,然后再读寄存器的值,依次发送0x22 ,0x01,0x FF,0xFF,同样每个字节发送后延迟2us再发送下一字节.写操作也是在上电很长一段时间后进行的,绝对大于16ms
举报

冯金妮

2019-5-21 12:54:45
Hi
   见如下读寄存器的命令, 所以发送命令0x22 ,0x01即可,不需要0x FF,0xFF, 请确认?
  
举报

徐冬蕾

2019-5-21 13:00:22
引用: nwyerwer 发表于 2019-5-21 15:02
Hi
   见如下读寄存器的命令, 所以发送命令0x22 ,0x01即可,不需要0x FF,0xFF, 请确认?
  

举报

更多回帖

发帖
×
20
完善资料,
赚取积分