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.

[FAQ] [参考译文] 【常见问题解答】INA238:TI 电流检测功率监控器中的 I2C 通信故障 (NACK) 疑难解答

Guru**** 2810285 points

Other Parts Discussed in Thread: INA238, PCA9306, TCA9517

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1626760/faq-ina238-troubleshooting-i2c-communication-failures-nack-in-ti-current-sense-power-monitors

器件型号: INA238
Thread 中讨论的其他器件: PCA9306TCA9517

在尝试与电源监控器通信时、我会收到“否定确认“(NACK)。

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

    当 TI 功率监测器(例如 INA238)  无法确认 (NACK) I2C 通信时、问题通常源于违反物理层要求(即电压阈值,阻抗匹配)或时序限制。

    1. 逻辑电平非合规性((VIL / VOL 冲突)

    最常见的原因 NACK 是主器件 (MCU) 无法将 SDA/SCL 线拉至 INA238 的 输入低电压 (VIL) 阈值以下。

    • 阈值间隙:INA238 要求逻辑低电平 小于 0.4V、但需要注意的是、我们的一些数字器件要求逻辑电平小于 0.4V 或小于 0.3*Vs、因此请参阅器件的数据表以了解 VIL 逻辑电平。  为了实现额外填充、我们建议逻辑电平应至少比数据表中的 VIL 规格低 100mV 至 200mV。
    • 电压失调问题:当使用某些 I2C 缓冲器或数字隔离器(例如 ISO154x 系列)时、“侧 1“输出通常采用二极管阻止的电压失调、从而产生 ~0.6V 至 0.8V 的 VOL。 如果 MCU 和 INA238 之间的接地电位略有变化、或如果上拉电阻器过强、“低电平“信号可能会悬停在 1.0V 附近。 如果 INA238 没有记录到低于 VIL 的干净转换、它将无法识别启动条件或地址位、从而导致 NACK。
      根据 ISO154x 系列、“ 2 侧“可能在 INA 的阈值内具有足够低的逻辑输出、具体取决于“ 2 侧“的电源电压。

      注意:建议在隔离器任一侧的 SDA 和 SCL 上添加~33pF 电容器至 GND、以滤除数据和时钟线路信号中的噪声。
    1. 阻抗和上拉电阻优化

    I2C 是一种开漏架构;上升时间 (tr) 由总线的 RC 常数控制。

    • 过阻尼:如果上拉电阻器过高(例如,>VIH)、总线电容可防止信号  在下一个时钟脉冲之前达到 10kΩ(输入高电平)阈值。 这将对方波进行四舍五入、从而导致采样的位错误。
    • 欠阻尼:相反、如果该 值过低(例如 1kΩ)、INA238 或 MCU 可能缺乏灌电流能力(通常为 3mA)、无法将线路下拉至有效的 VIL、从而导致控制器看到恒定的“高电平“状态。
    1. 时序和信号完整性

    INA238 支持快速模式 (400kHz) 和高速模式。 然而、信号反射或总线长度过长可能会导致  时序图上出现振铃或下冲。 如果 SDA 线路转换相对于 SCL 上升沿太慢(违反建立时间) 、或者如果 INA238 将其时钟线上有噪声解释为双脉冲、则器件的内部状态机将解除同步并且不会发出 ACK。

    此外、当将 SDA 引脚连接到 A0 或 A1 以设置器件地址时、I2C 地址的 MSB 上需要额外的 100ns 保持时间 (tHDDAT)、以验证器件寻址是否正确。

    逻辑电平冲突的建议解决方案:

    逻辑电平转换器

    当 MCU 和 INA238 在不同的电压域上运行或 VIL 阈值较小时、最可靠的解决方案是集成 有源逻辑电平转换器 (例如 TI PCA9306 或 TCA9517)   。

    为什么这解决了 NACK:

    • 电压隔离:转换器将两个不同总线段的电容负载解耦、使 INA238 能够“看到“一个完全以其本地电源为基准的信号。
    • 电流升压:TCA9517 等器件可提供有效的“低电平“驱动、因此即使总线电容很大、也可以确保 VOL 被驱动至接近 0V、远低于 INA238 的 VIL 阈值。
    • 双向精密:它可确保 INA238 发送的 ACK 位正确转换回 MCU 的特定逻辑电平、从而防止在从器件响应但主器件未能读取它的情况下出现“重影“。