This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1110读到的AD值突然跳变,配置寄存器值也变动

Other Parts Discussed in Thread: ADS1110

在我的项目中使用到ADS1110转换器,采集环境温度传感器的电压。

目前我遇到的问题是,传感器采集到的温度,偶尔会有跳变0,我配置的是15SPS采样率,8倍增益,我使用逻辑分析仪查看了下时序,

正常情况下,最后一个字节的数据(CONFIGURATION REGISTER)应该为0x0F,或者0x8F(读快了),但是有时候读到的确是0x00,0x07,更过分的还有0xFF。

经过统计,ADC出错的时候,返回来的配置寄存器都是0xFF。

虽然这个IIC总线上还有其他的IIC设备,但是ADC1110的IIC起始时间与上一个IIC时序的借宿时间符合手册测要求的大于600ns。

另外,这个出现这个问题的时候一般都是在中午(气温大约20-25度,太阳下暴晒),早晚、阴天几乎没见过出现上述问题。

请问,还有什么情况是我没有考虑到的?

  • 经过统计,ADC出错的时候,返回来的配置寄存器都是0xFF。  这是关键, 这个阶段可能 I2C 的从机并没有响应,你也许能设法捕捉一下

    调整一下时序,比如先放慢通信速率,增加中间的间隔时间,试试再说

  • 感谢朋友的回答,我配置的是15SPS采样率,每秒采样15次,单次循环时间66.67MS。

    我在第二张图上可以看到,我在读取ADS1110的数据前,总线有164MS的空闲时间,按理说应该是够了的。

    我这边的读取时间间隔虽然不固定,但是还是满足总线空闲时间600ns的。