[求助] ADS1262数据不稳定的问题

zhiyang   2014-11-18 14:07 楼主
经过长达半年的摸索,还是问题多多,

1.设置完寄存器之后,不能去读,有时读一次读出来的是正确的,再读的话全部是0,但有时直接读出的全部是0,而且AD也不转换。但是写进去不读的话,AD还是能正常转换,DRDY引脚会根据我设定的数据数据速率产生低电平。

2.下面是时序图
2047.1.png
如果我设定读7个字节的话, 每次都是第一次读的数据能跟CHK位匹配,后面读出来的所有值都是0,于是我换成只读4字节
只读四字节的话,如果是通过读命令去读,读到的四个字节最后两个字节始终是0,
但是如果直接去读,不发送读命令,读出来的值四个字节都有数据,但极度不稳地,我现在只取了24位,就有最后2位乱跳,我接的是
压力传感器,而且是压的越重,尾数跳动的越多,比如不放重物的时候最后2位跳,可能放上重物的话最后3位,4位也在跳了。

3.最后恳请大家帮忙看看,真不想在这个上面浪费太多时间和精力了,但老板天天追着问,我快被逼疯了。。。代理商那边也没技术支持
  通过代理商联系了一个原厂的技术支持,但邮件发过去半个月,一点音讯也没有,我实在没辙了,一点方向都没有。。。


这是原理图
ads1263原理图.pdf (51.37 KB)
(下载次数: 190, 2014-11-18 14:03 上传)
数据手册和程序.rar (1.49 MB)
(下载次数: 305, 2014-11-18 14:05 上传)


回复评论 (3)



程序是有问题的,你应该DRDY信号接到外部中断,上升沿触发读AD。这样就OK啦~ 本帖最后由 dontium 于 2015-1-23 11:21 编辑
construction complete!
点赞  2014-11-18 14:35


我估计是在SPI的读写方法上。TI的很多SPI器件,相位设置不正确时常常出现这个问题。 Input data is latched on the falling edge and output data is updated on the rising edge。 严格按照这个做! 程序中,看到使用了个SPI_write_clock();及SPI_read_clock(),这种方法是不妥的。它不能保证数据的可靠性。 参考办法: write_data() { CLK_PIN_HIGH(); DATA_BIT_OUT(); CLK_PIN_LOW(); } read_data() { CLK_PIN_LOW(); DATA_BIT_OUT(); CLK_PIN_HIGH(); } 本帖最后由 dontium 于 2015-1-23 11:21 编辑
点赞  2014-11-18 16:41
建议你看一下TI的官方例程
查看详情
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2015-11-5 09:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复