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.

[参考译文] LMH0303:I2C 问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1251401/lmh0303-i2c-issues

器件型号:LMH0303

我在使用 LMH0303和通过 I2C 总线读取状态(寄存器0x01)时有一些问题。

当使用逻辑分析器验证信号时,我们可以看到第二个字节是0x00和 NACK ,它应该读取带有 ACK 的0x01 ,因为这是我们要读取的寄存器。

它有时会发生(几分钟,每秒100次),并且只能用 LMH0303器件( I2C 地址0x17)。
由于总线上有多个(多达5个)器件、因此与其他器件相比没有问题。

良好的 I2C 事务看起来像这样、接下来是在重新发送启动条件等后读取寄存器。

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

    该寄存器的地址由 μ I²C 主器件写入、而不是由 LMH0303写入。 因此、如果寄存器地址为0x00而不是0x01、则不能是 LMH0303的故障。

    不应存在 NACK (即使对于错误的寄存器地址也是如此)、因此我猜测可能是振铃导致的错误时钟脉冲。 请使用示波器查看波形。

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

    我知道寄存器地址由 I2C 主器件写入、但在这种情况下、LMH0303似乎会将 SDA 信号拉低。
    请验证我的示波器信号:我觉得一切都很干净,因为我使用了 I2C 总线加速器芯片(有源上拉)
    总线上有多个 I2C 器件、没有任何问题、除非访问 LMH0303时有时会出错。

    这些示波器信号是随机触发的、但如果收到请求、我可以尝试在软件中创建一个触发信号、以便查看 LMH0303的 I2C 事务。
    您可以看到 SCL 的行为、其中上升沿加速。

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

    这看起来确实很干净。

    但 I²C μ V 加速器可能会被看起来像是上升沿开始的噪声错误地触发、从而产生一个额外的时钟脉冲。 请尝试捕获失败的交易。

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

    感谢您的反馈。

    我已经调整了设置(软件)、因此我可以在发生错误时捕获最后的事务。
    我正在使用 AVR 微控制器、但禁用了所有 I2C 事务、并连接了一个 RPI 以读取 LMH0303的寄存器。
    通过此设置、我可以从 LMH0303读取所有寄存器并显示发生变化的结果。
    您可以看到、有时会显示垃圾数据、
    一旦寄存器0 ID 与0x2E 不同时(寄存器0中的器件 ID 始终为0x2E)、测试应用程序将暂停。

    在暂停状态下,示波器将保持最后一次测量,我可以看到在 SCL 中有一个小的振铃。
    由于我必须使用一些较短的电缆连接另一个 I2C 主设备、因此这种振铃也可能由设置引起。
    据我所见,没有 真正的影响,从总线加速器。

    能否降低 I2C 上拉电阻器以最大限度地减少振铃? 此时它们为4K7。

    我们欢迎提供任何帮助、因为 LMH0303是 I2C 总线上唯一导致问题的器件。
    即使验证32KB 的2个 I2C EEPROM 也始终成功(仅用于验证 I2C 信号未损坏)