工具与软件:
我们已注意到、当充电器以大电流对电池进行主动充电时、充电器的 i2c 通信中出现的错误。 我们的硬件能够为电池提供超过1A 的电流。 充电器和 USB 线路配置正确以允许此操作。 当充电器/电池进入这种状态时、驱动器开始产生 i2c 事务故障。
附加了逻辑分析仪的屏幕截图。
此图中的 i2c 事务有7个正常从充电器读取的实例。 在第8个发生故障时、您可以看到 SDA 线保持低电平达1.8秒。 这种行为仅在充电电流较高时发生。 如果我们未在充电、或电流足够低、则不会看到行为、所有 i2c 都正常运行。 当失败发生时、在某些情况下、每次尝试都会失败。 有时、有些事务会失败、有些事务会成功。 当该引脚发生故障时、SDA 线在每种情况下都保持低电平~1.8秒。
我们已经确定将 SDA 线保持在低电平的是 bq25629芯片。 在从总线中删除所有其他 i2c 芯片的测试中、行为是一致的。 当其他 i2c 芯片处于总线上活动状态时、如果充电器通信处于此故障状态、则这些芯片无法在总线上通信。
感谢解决此问题的任何提示。