进一步的分析是看谁把 SDA 的电平拉低,建议客户在 SCL,SDA 线路接电阻测量出问题时,I2C 主从两端的电压变化。
STM32G0 是和两个 I2C slave 通信,一个是充电管理芯片,另一个是 LED 驱动芯片。
最后发现是 LED 驱动芯片进入低功耗模式时把 I2C SDA 脚拉低导致 I2C SDA 电平被拉低,进而影响了 STM32G0 和充电管理芯片之间的 I2C 通信。
后面修改了 LED 驱动芯片进入低功耗的时机,问题得到解决。
进一步的分析是看谁把 SDA 的电平拉低,建议客户在 SCL,SDA 线路接电阻测量出问题时,I2C 主从两端的电压变化。
STM32G0 是和两个 I2C slave 通信,一个是充电管理芯片,另一个是 LED 驱动芯片。
最后发现是 LED 驱动芯片进入低功耗模式时把 I2C SDA 脚拉低导致 I2C SDA 电平被拉低,进而影响了 STM32G0 和充电管理芯片之间的 I2C 通信。
后面修改了 LED 驱动芯片进入低功耗的时机,问题得到解决。