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.

[参考译文] INA700:关于某些 I2C 地址的 I2C 接口上额外保持时间的说明

Guru**** 2782575 points

Other Parts Discussed in Thread: INA700

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1617804/ina700-clarification-on-additional-hold-time-on-i2c-interface-for-certain-i2c-addresses

器件型号: INA700

大家好!

INA700 数据表指出:

“当将 A0 引脚连接到 SDA 以设置器件地址时、I2C 地址的 MSB 上需要额外的 100ns 保持时间、以便提供正确的器件寻址“

在我们的测试中、该保持时间需要在 SCL 的第一个下降沿和地址 MSB 的 SDA 上升沿之间相加。

在下图中、我们添加了“A"点“点的保持时间、而数据表似乎意味着应在“b"点“点添加该保持时间。

I2C_TIMING (002).png

使用我们的 I2C 控制器(可能大多数基于硬件的 I2C 控制器)无法在点“b"处“处添加 HoldTime、因为一旦配置了控制器和数据、它将以特定的时钟速率运行、而没有机会向位添加保持时间。

我们所做的是有效的吗? 是否正确并保证可靠工作?

谢谢、

Richard。

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

    您好、Richard、  

    此线程似乎是此线程的重复线程:  https://e2e.ti.com/support/amplifiers-group/amplifiers-internal/f/amplifiers-internal-forum/1610542/ina700-i2c-timing-clarification/6215958 

    额外的保持时间是从数据表中 t_HDDAT(图中的位置 b)的最短时间开始的、因此您的 MCU 可能已经具有适当的保持时间。 如果您的保持时间至少是最短保持时间加上 100ns、则无需进行额外调整。

    此致、

    Mitch

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

    您好、Richard、  

    我注意到您将此主题标记为“未解决“、您还有其他问题吗?

    此致、

    Mitch

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

    “我知道,就在这时,我才明白妈妈有多性感。“

    很遗憾,我无法访问您发布的链接,我只是得到了“拒绝访问“,所以我无法确定它是否回答了我的 问题。

    此外、 我们收集了更多数据 、这些数据可以显示问题并说明在哪些情况下增加保持时间有效或不有效。

    每个图像显示了一次 I2C 地址字节的捕获、其中  a 或 b 点(MSB 之前或之后,根据前面的讨论)增加了额外的保持时间、具有 不同的地址。 每个图像中的顶部图显示完整的迹线、其余图只是 在一个边沿上放大。

    图像按顺序表示:

    - A0 = SDA、A 处的额外保持时间、成功 (ACK)
    - A0 = SDA、b 处的额外保持时间、未通过 (NACK)
    - A0 = GND、A 处的额外保持时间、成功 (ACK)
    - A0 = GND、b 处的额外保持时间、成功 (ACK)


    这意味着在 a 而不是 b 处需要额外的保持时间、这 与数据表之前的解释相矛盾。

    据我们所知、除第一条迹线之外的所有迹线都符合 数据表中指定的时序要求、但我们可以分享这些数据、您希望 更近距离地查看这些数据。

    过冲和振铃只是由于探测不良所致、不应影响 结果。 计算出的保持时间基于额定的 0.4V 和 1.2V  低电平/高电平输入阈值。 使用的保持时间很短(但在规格范围内) 、因为在其他情况下不会发生问题。

    如果需要、我可以 PDF 格式提供这些图像、但我无法将其附加到帖子中。

    谢谢、

    Richard。

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

    *编辑的 2026年2月25日*

    您好、Richard、

    对不起,我没有意识到另一个线程是内部的。 您看到通信仅在您增加位置“A"的“的时间时才起作用的原因是、您的位置“A"的“的时间似乎太短。 数据表似乎没有为该转换定义特定的时间、但 通过查看其他时序规格、看起来时间的计算方式好像是 t_low - t_SUDAT。  T_LOW 的最小值为 1300ns、T_SUDAT 的最短时间为 100ns。 如果对这两个值使用最小值、则将时间置于位置“A",“,为、为 1200ns。  由于这些值没有定义最大值、因此我们无法确定“A"位置“位置的最短时间。  因此、我建议在其中添加一些填充字节以获得可靠的通信。   

    通过 SDA 上的地址引脚、仍需要在位置“b"处“处添加 100ns 以便确保成功通信。 它仍然可以在没有额外时间的情况下进行通信、但需要时间来保证通信。 请注意、这是除了 10ns 最短时间外、因此在将 SDA 用作地址引脚时、总最短时间为 110ns。  

    此致、

    Mitch

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

    感谢您的响应 Mitch、这现在是合理的、尤其是在 1300ns 的时序要求下。

    我们得出的结论是、不能在此配置下使用器件(使用 SDA 作为地址引脚、I2C 控制器不支持添加额外的保持时间)、我们必须重新跟踪电路板以使用不同的地址引脚来避免这种额外要求。

    谢谢、

    Richard。

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

    嗨、Richard、

    好的、我很高兴它现在有意义。 如果您有任何其他问题、请告诉我。  

    此致、

    Mitch