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.

[参考译文] ADS7924:ADS7924 μ A I²C 会导致 ADC 数据出现干扰和突然跳变

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1532052/ads7924-ads7924-i2c-read-causes-glitches-and-sudden-jumps-in-adc-data

器件型号:ADS7924
主题中讨论的其他器件: OPA325ADC121C027

工具/软件:

我在 100kHz 下使用 I²C μ s 来读取 ADC 数据。 μ I²C 总线上有两个 ADC 芯片:一个是 ADS121C、另一个是 ADS7924。

在以 1kHz 频率运行的循环中、我从两个 ADC 读取数据。 来自 ADS121C 的数据保持稳定且在预期范围内、即使存在细微波动也是如此。

但是、ADS7924 的数据显示了所有通道上的干扰和异常跳变。 例如、正常值可能为 2500、但偶尔会跳过 2 的幂 — 例如增加 2048 至 4548、减少 2048 至 452、或跳过±1024、±512、±128、±64、±8、 等

绿色数据为 121C、蓝色数据为 7924。

我已经在示波器上检查了 I²C μ s 波形、发现没有明显的问题。 但是、逻辑分析仪捕获的数据可确认 ADS7924 返回的原始值在这些跳变期间不正确。

这可能是什么原因? ADS7924 的读取过程中是否可能缺少某些功能?

谢谢!

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

    高开关 w、

    您能否提供一个原理图来显示您与两个 ADC 的连接?  您还能否详细介绍 ADS7924 寄存器的配置方式?

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

    您好、


    ADS724x 的模式寄存器为“ 自动扫描模式“、我选择了 “ 自动单通道模式“、但它也存在该问题。  以下是逻辑分析仪捕获的“自动扫描模式“下的异常数据(我只是读取了两个通道)。



    我使用的原理图基于 ADS7924 评估板。 之前我还提出了与评估板相关的问题 (https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1492012/ads7924-stm32-iic-read-register-no-ack)

    此外、我们的传感器数据本身没有问题、因为使用其他 ADC 芯片读取数据不会出现任何异常波动。

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

    该问题是否与 RESET 引脚悬空有关?  请 添加一个上拉电阻或将该引脚连接到 AVDD5V、然后查看这样是否可以解决您的问题。

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

    您好、天哪
    抱歉、我之前发送了上一版本的原理图。 这是最新的一个。 您能检查一下是否有任何问题吗?


    我看到您提到过、RESET 引脚需要连接到 VDD5V。 目前、我们将其连接到 VDD3V—这可能是问题的原因吗?

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

    高开关 w、

    复位时上拉至 3.3 可以正常。  您能否在 OPA325 的输入端放置一个信号波形、并将其与 ADS7924 的输入引脚(引脚 14)进行比较?

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

    我忘记提及我在阅读 7924 评估板时遇到了同样的问题。 我将示波器连接到评估板上的 BUFIN 和 BUFOUT 引脚、如下所示。


    同时、我将逻辑分析仪连接到 SCL 和 SDA 线路。 此外、我添加了一个 GPIO 引脚、以捕获发生错误时的波形。 示波器和逻辑分析仪同时的波形如下所示。 我的逻辑分析仪在 200MHz 处采样 、这足以支持 100kHz I²C 的速度。


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

    SW w、

    我记得之前的对话。  您现在是否正在使用自己的定制 PCB 或仍使用有线 ADS724EVM?  上面的 o'scope 屏幕截图看起来非常吵,这可能是你的问题的根源。  是否有红色和蓝色布线连接 SDA 和 SCL 线?

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

    您好、

    我之所以使用评估板进行测试、是因为它会出现类似的问题、并且更容易将导线焊接到上面。 在我们自己的电路板上、很难访问测量的测试点。

    关于您对飞线可能引入的噪音的评论 — 我同意这一点。 然而,在我们自己的电路板上,没有飞线,但我们仍然观察到读数的波动。

    最后、上面显示的红线和蓝线对应于您建议的测试点、即 7924 评估板第一个图像中的红框突出显示的 BUFIN 和 BUFOUT。 逻辑分析仪的较低波形来自 SDA 和 SCL 线路。

    因此、基于此、您是否仍然认为问题更可能是由硬件干扰而不是软件问题(例如 I²C 配置或 7924 设置)引起的?

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

    啊...好了。  实际上是否在探测 EVM 上的两个测试点、而不是探测电路板?  我很想看到 BUFOUT ro 与 1.5K Ω 和 0.1uF 电容的另一侧之间的差异。  从原始图可以看出、假设采用单个输入通道的转换结果是相同的吗?

    请注意、随着电压崩溃、尖峰“级别“有何区别?  在我看来、这些都是代码边界点、这就是为什么我想看到 AIN 引脚与 BUF 输出的原因。  我很想了解您的 LP 滤波器的工作效果如何。  红色和蓝色迹线上看到的开关噪声来自哪里?  

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

    是的、在 EVM 板上进行探测。  

    我现在使用更好的示波器探头、我已使用跳线帽短接 EVM 上 J1 的引脚 1 和 2、同样、引脚 3 和 4 也短接(因为我仅使用 CH0 和 CH1)。

    下面显示了 BUFIN 和 BUFOUT 的波形。

    • 第一个图像 所示为空闲状态下的电压。

    • 第二个图像 显示了使用磁体手动干扰传感器以引起数据波动时的波形。

    • 下部图像 是我的 MCU 为两个通道收集的原始数据图。

    从硬件波形来看、一切似乎都正常。 此 TI 7924 多年来一直在市场上使用、EVM 本身应该非常可靠。 但它输出的 IIC 波形数据确实是有问题的。

    虽然我们可以应用低通滤波器或中位滤波器等滤波器来抑制一些干扰、但我们仍希望获得更清晰的原始数据、并且对确定问题背后的根本原因特别感兴趣。
    现在我完全不知道问题在哪里。 argh...

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

    那么、示波器图中的接地基准在哪里?  模拟输入端基本上有一个方波、您是否尝试过像 ADC121C027 那样输入直流信号并比较结果?

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

     GND 使用 TP3 (AGND)。

    我们已经测试了我们自己的 121C 传感器、它也使用直流输入、并且工作正常。

    但是、当我将干净的 3.3V 和 2.5V 直流信号(从 EVM 板)直接连接到 CH2 和 CH3 时、数据波动仍然很明显。



    我刚才重新测试了模式。 当我从自动扫描模式切换到手动扫描模式时、干扰消失了。 您能否解释一下为什么会发生这种情况?





    我还有一个问题。 由于 TI 建议在读取数据之前发送额外的命令来暂停此模式、因此此模式与手动扫描模式之间有何区别?  

    我们选择自动扫描模式是因为我们希望能够随时直接读取数据寄存器、而无需每次发送额外的命令。

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

    高开关 w、

    我没有意识到在读取数据之前您没有退出自动扫描模式。  这种工作模式旨在用作系统监控器以及单独可编程的警报阈值。  基本上来说、这是一项自主功能、如果任何转换结果超过您预编程的上限或下限、就会标记中断。 您还可以设定报警计数器(最多 7 次)以减少“误报“的可能性。  发生警报后、您会停止自动扫描模式、并读取寄存器以查看是哪个通道导致了错误。  由于无法确定内部转换过程在自动扫描模式期间处于什么状态、因此建议在检索数据之前退出该模式。

    手动扫描模式可让您每个通道开始一个转换、然后在设置“数据就绪“后读取所有数据、这将触发 MCU 中断、让您知道您可以检索转换结果。