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.

[参考译文] ADS1232:错误读数

Guru**** 2390735 points
Other Parts Discussed in Thread: ADS1232
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1125010/ads1232-false-readings

器件型号:ADS1232

您好!

我们观察到一个怪异的行为。
我们在每次转换时切换 ADC 设置:
状态1: 增益= 128、通道1
状态2:增益= 1、通道2
速度始终很高(80Hz)。

如果一切正常、则在此测试通道1 (连接到称重传感器)中、读数约为527000;通道2读数约为234000 (电位计)

有时我们得到一个超出量程的读数(例如全0或全1或太多1);请参阅以下示波器曲目(DOUT 为黄色、SCLK 为绿色)。 每次只有一个尖峰(它们不会进入集群中)、每小时大约发生10次。 它在两个通道上发生。

如果我们不更改设置(它们始终保持不变、并且我们只读通道1)、问题也会出现。

有时、ADC 也会在时钟开始前开始发送数据:

我们意识到存在一个问题:有时我们在 DOUT 变为低电平后延迟读取 ADC:

看起来 ADC 具有尖峰、即使没有计时也是如此。

更好地阅读数据表、我们发现数据必须在 t7 = 12.5ms 内读取(图8-9)、并且如果您读取多个通道、即使在这种情况下转换时间增加到50ms、我们也找不到 t7的不同值。

因此、我们修改了固件、以便在12.5ms 内读取数据。

经过此修改后、如果我们不更改设置、问题就会得到解决、但如果我们在每次转换时更改设置、即使频率大幅降低、问题仍然存在。

您对此问题是否有任何了解或建议?

此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matteo、

    当您决定读取转换数据时、我很难告诉您。  最佳使用方法是一种中断驱动系统、其中 DRDY/DOUT 不仅连接到 SPI 总线、而且还连接到 GPIO、以便可以监测它的高电平到低电平转换并触发中断。  由于引脚是双功能的、这可能会有点混乱、因为转换完成时、将会有一个从高到低的转换。  如果转换更新在读取转换周期中发生、则数据将被损坏。

    在使用计时器方法或轮询 DRDY/DOUT 转换时会出现问题的情况。  当使用定时器方法(每12.5ms 读取一次)时、这可能会成为一个问题、因为 ADS1232的内部振荡器的变化量可能高达+/-3%。  这种变化与转换周期直接相关、转换周期也可能会变化+/-3%。  使用轮询方法时、需要确保有足够的时间来捕获从高电平到低电平的转换。  最简单的方法是、如果之前转换的最后一位为高电平、或者通信中发送了一个额外的 SCLK 时钟来强制该位为高电平。  

    切换通道的一个优势是转换会重新启动、DRDY/DOUT 强制为高电平。  由于数字滤波器是 SINC4、因此数据在第4次转换完成(12.5ms * 4 = 50ms)之前无效。  如下表所示、您需要为滤波器重置和转换重新启动添加一些额外的时间:

    请注意、如果内部振荡器的使用量高达+/-3%、则时间可能会有所不同。

    因此、这里的关键是正确监控 DRDY/DOUT 上发生的情况、以便在 DRDY/DOUT 上发生从高电平到低电平的转换后尽快开始读取转换数据结果。  正如您已经注意到的、在发布下一个转换结果之前、必须从 ADS1232中完全读取转换。  如您所见、使用中断方法最好确保结果一致并以一致的方式读取。

    此致、

    Bob B