Other Parts Discussed in Thread: INA238, PCA9306, TCA9517
器件型号: INA238
Thread 中讨论的其他器件: PCA9306、 TCA9517
在尝试与电源监控器通信时、我会收到“否定确认“(NACK)。
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.
当 TI 功率监测器(例如 INA238) 无法确认 (NACK) I2C 通信时、问题通常源于违反物理层要求(即电压阈值,阻抗匹配)或时序限制。
最常见的原因 NACK 是主器件 (MCU) 无法将 SDA/SCL 线拉至 INA238 的 输入低电压 (VIL) 阈值以下。
I2C 是一种开漏架构;上升时间 (tr) 由总线的 RC 常数控制。
INA238 支持快速模式 (400kHz) 和高速模式。 然而、信号反射或总线长度过长可能会导致 时序图上出现振铃或下冲。 如果 SDA 线路转换相对于 SCL 上升沿太慢(违反建立时间) 、或者如果 INA238 将其时钟线上有噪声解释为双脉冲、则器件的内部状态机将解除同步并且不会发出 ACK。
此外、当将 SDA 引脚连接到 A0 或 A1 以设置器件地址时、I2C 地址的 MSB 上需要额外的 100ns 保持时间 (tHDDAT)、以验证器件寻址是否正确。

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