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.

[参考译文] ADS1100:有时数据损坏。

Guru**** 2392105 points
Other Parts Discussed in Thread: ADS1100, TMP100, PCA9306

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/927545/ads1100-sometimes-data-corrupted

器件型号:ADS1100
主题中讨论的其他器件: TMP100PCA9306

您好 TI。

我的数据转换值和配置寄存器有问题。 我仍在9ms 间隔时间内读取3个字节(2个数据字节和1个配置寄存器字节)。

有时、我收到的配置寄存器的值(例如:0xFF 或0x83)与我预期的值(0x81)不同。 在这种情况下、由于转换的数据不同、ADS1100看起来好像已经被重新编程到不同的配置中。 有时我有我期望的奇怪数据值(例如0xFFFF)(0xF123)。

检查了上拉电阻器和所有 I2C 线路。 为了通知您、我使用不同的地址将其他一些器件连接到此 I2C 线路(EEPROM 和 TMP100)。

请告诉我在这种情况下应该做什么。 这对我来说是一个紧迫的问题。

原理图。

请参阅示波器图片。

正确的数据和配置。

正确的数据和配置。

配置错误。

在另一种情况下、我的配置完全不好。

有时、我的数据和配置(数据0xFFFF、配置0xFF)不正确。

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

    Remigiusz、


    我不确定您的设置会发生什么情况、但有一些问题需要检查。

    首先、此 I2C 总线上有多少个器件? 我会验证所有器件都具有唯一的 I2C 地址。 在这里、我可以看到电路板上有两个 ADS1100、您不想混用不同的地址版本。 我还会检查任何其他设备并验证其地址。

    我要尝试的另一件事是电源上的电感短路。 通常情况下、我不会输入电感、因为这些 ADC 会有一定数量的数字电流被拉过、数字电流会在内部时钟频率下尖峰。 这种较大的 L (di/dt)可能会导致电压尖峰。 如果尖峰足够高、则可能会导致器件复位。

    验证 I2C 总线的地址、然后检查当您短接电感器时会发生什么情况。 让我知道你得到了什么。


    吴约瑟

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

    您好、Joseph、

    I2C 线路上有多个组件、所有组件都具有唯一的地址。 我们确信、因为它在几周前就开始工作了。

    我移除了 PCB 上的所有电感器、没有任何变化。

    感谢您关于器件复位原因的观点。 我们可能遇到电源(5V)或 GND 问题。

    是否有可能用错误的 控制寄存器值(无 defalut 值)复位 ADS1100器件?

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

    Remigiusz、


    首先、ADS1100的复位将始终返回默认设置。 它不会返回错误的值。

    我不确定发生了什么、但我想重点介绍 I2C 通信。 我注意到的一件事是、在这个帧的第二个字节之前、您展示了一些噪声(用红色圆圈标出):

    在地址字节之后、器件首先确认通信、但在噪声之后永远不会再次响应。 SDA 始终保持高电平、所有 ACK 都来自主器件。 在这里、潜在的问题是、来自 ADS1100的第一个 ACK 上产生的噪声。 但是、对于所有涉及通信问题的示波器截图、从器件看起来像是在事务的中间停止通信、并且在通信结束时不再响应。

    我想、在某种程度上、ADS1100正在接收到一个停止条件、之后它不再响应。 我不确定这是如何发生的、但我会检查 I2C 通信中是否存在噪声。 您可能需要将 I2C 调整得更慢、或者使用更高值的上拉电阻器来查看是否会影响此误差。 总线线路上的少量电容也可能会清除通信。

    出于好奇、您正在使用什么控制器? 您是位拆裂 I2C 还是使用 I2C 模块?


    吴约瑟

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

    Remigiusz、

    另一种可能是、根据电源电平可能存在一些通信问题。 您是否为 ADC 运行5V 电源、而为微控制器运行3.3V 电源? 如果是这样、这两个器件之间可能会由于不同的电平而出现一些接口问题。 在这种情况下、您通常会匹配电压电平或在两者之间使用某种电压电平转换器(如 PCA9306)。

    吴约瑟

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

    Remigiusz、

    我已经听过你一段时间了、所以我想检查一下这个问题。 在我的最后一篇文章中、我认为由于时钟时序原因、或者由于主器件和 ADS1100之间的电压电平不匹配、器件接收到一些 I2C 停止信号可能会出现一些问题。

    现在我将关闭此主题、但如果您仍然遇到这些通信问题、请发帖、我们可以继续处理此问题。


    吴约瑟

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

    很抱歉迟到了、但我们发现时钟信号的上升沿有问题。

    等待图片。

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

    大家好。

    我们发现时钟信号的上升沿存在问题。

    有时、在上升沿发生这种干扰后、我们有高数据信号。 这可能是原因。

    感谢你的帮助。

    此致。

    Remik。