TI论坛
直播中

abdkjshd

8年用户 1198经验值
擅长:可编程逻辑
私信 关注
[问答]

ads1118的四通道同时启用,如果两次读值之间的延时小于23ms,则出现返回的值乱码,为什么?


  • ads1118的四通道同时启用,写寄存器是写的0xC3EB,写一次寄存器读一次值,读到的总是上一个通道的值,这个问题我理解。我不能理解的是:如果两次读值之间的延时小于23ms,则出现返回的值乱码的问题,原始的数据手册也通读了,但是不能发现问题,而且改变sps(寄存器DR[2:0])对该问题也没多大的反应,请各位大神赐教,拜谢

回帖(2)

李龙

昨天 10:32
  数据手册没有提到这个时间间隔的问题
难道是与数据更新发生了碰撞? 或者是破坏了时序规则, 这个可能性比较大, 你不妨先检查一下波形
举报

从未拥有

昨天 17:16
ADS1118是一款16位模数转换器(ADC),具有4个模拟输入通道。根据您的描述,您在使用ADS1118时遇到了两个问题:1) 两次读值之间的延时小于23ms时,返回的值出现乱码;2) 四通道同时启用时,写寄存器是写的0xC3EB,但读到的总是上一个通道的值。以下是对这两个问题的分析和解决方案:

1) 两次读值之间的延时小于23ms时,返回的值出现乱码:

这个问题可能与ADS1118的数据输出速率(SPS)和采样时间有关。ADS1118的数据输出速率(SPS)是指ADC每秒可以输出多少个数据。在您的代码中,您提到了改变SPS对问题没有太大影响,但您可以尝试调整SPS的值,以找到合适的数据输出速率。此外,您还需要考虑采样时间。ADS1118的采样时间是指ADC采集模拟信号的时间。如果采样时间过短,可能会导致数据不稳定,从而出现乱码。您可以尝试增加采样时间,以提高数据稳定性。

2) 四通道同时启用时,写寄存器是写的0xC3EB,但读到的总是上一个通道的值:

这个问题可能与ADS1118的通道选择和数据读取顺序有关。在ADS1118中,通道选择是通过寄存器配置来实现的。您提到了写寄存器是写的0xC3EB,这个值可能没有正确配置通道选择。您需要检查您的代码,确保通道选择配置正确。此外,您还需要考虑数据读取顺序。在ADS1118中,数据读取顺序是按照通道选择的顺序进行的。您需要确保您的代码按照正确的顺序读取数据。

综上所述,您可以尝试以下步骤来解决这两个问题:

1. 调整SPS值,找到合适的数据输出速率。
2. 增加采样时间,提高数据稳定性。
3. 检查通道选择配置,确保配置正确。
4. 确保代码按照正确的顺序读取数据。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们为您提供更具体的解决方案。
举报

更多回帖

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