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.

[参考译文] BQ28Z610:当 MCU 与 BQ28Z610 通信时、I2C 总线挂起

Guru**** 2489685 points
Other Parts Discussed in Thread: TPS25751, BQ28Z610, LP5562, BQ25723, BQ28Z610-R1

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1556863/bq28z610-i2c-bus-hang-when-mcu-communicate-with-bq28z610

器件型号:BQ28Z610
主题中讨论的其他器件: LP5562、TPS25751、 BQ25723

工具/软件:

尊敬的 TI 专家:

目前、 当 MCU (Nordic、nRF52840) 与 BQ28Z610 进行通信时、我遇到 I2C 总线挂起问题、如下所示:
NG 症状:
随机当 MCU 写入寄存器地址时、第 9 个时钟宽度要小得多 (2us)、在收到 ACK 后、I2C 总线始终保持低电平(我怀疑它被 BQ28Z610)拉至低电平、500ms 后、I2C 总线复位和恢复、并在下一次随机重复相同的 NG 症状。请参阅连接的日志。

e2e.ti.com/.../nRF52840-I2C-intermittent-failure-log.xlsx

我的工作:
发现 MCU (Nordic、nRF52840) 和 BQ28Z610 之间存在间歇性 I2C 异常通信;
MCU 与其他 I2C 从器件的 I2C 通信正常、未发现异常;
使用逻辑分析仪捕获 I2C 日志、发现 I2C 总线挂起;
已尝试移除除 BQ28Z610 之外的所有 I2C 从器件、且 NG 症状仍然存在;
5.尝试通过 BQ Studio 禁用时钟延展功能、并重新尝试、NG 症状仍然存在;
6.尝试引入 SW I2C、并在寄存器地址写入操作中增加第 8 个时钟和第 9 个时钟之间的间隔 100us 以上、NG 症状消失;


7.尝试将寄存器地址写入操作中第 8 个时钟与第 9 个时钟之间的时间间隔缩短至 80us 以下、NG 症状再次出现;

 

查找:
寄存器地址写入操作中第 8 个时钟和第 9 个时钟之间的间隔导致了该问题。

问题:
您是否知道导致此问题的根本原因是什么、以及是否需要该结果? 是否有针对此问题的纠正措施?

期待您的评论和致谢。(还随附了 PACK 原理图和 MCU I2C 相关原理图,如下所示)

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

    您好:

    此问题已分配、并将在可能的情况下进行审核。 在此期间、您可以发布与项目关联的.log/.gg 文件。

    谢谢您、
    Alan

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

    您好、

    是否在多个器件上发生这种情况?

    您可以共享.gg 文件吗?

    此致、

    Diego

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

    尊敬的 Diego:

    感谢您的快速答复。

    NG 症状仅关注 BQ28Z610(系统包含 TPS25751、BQ25723、LP5562 等、I2C 通信全部正常)。

    并按如下所示附加.gg 文件:

    e2e.ti.com/.../BQ28Z610_5F00_0826.gg.csv

    BR

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

    您好、

    这是在多个 Hercules610 IC 上发生的、还是在一个 IC 上发生的? MCU 是否支持时钟延展?

    器件可能已损坏。

    此致、

    Diego

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

    您好、

    这是在 Proto Build 的所有单元上发生的(50 倍单位)。

    nRF52840 支持时钟延展、我还尝试  通过向 I2C 配置设置的位 6 写入 0/1b 来启用和禁用 BQ28Z610 的延展功能、但它对这个问题没有帮助。

    您对器件损坏的意思是什么、事实上、 增加寄存器地址写入操作中第 8 个和第 9 个时钟脉冲之间的间隔可以解决这个问题、这会非常奇怪。

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

    您好、

    i2c 引擎可能已损坏、但如果在 50 台设备上可以重现、则不会损坏。

    如果使用 R1 FW、则可以将 i2c 线路保持在低电平 2 秒以使 i2c 引擎停止。

    8.3.12 I 2C 超时如果 I 2C 总线保持低电平~2 秒、I 2C 引擎将释放 SDA 和 SCL。 如果 BQ28Z610-R1 器件保留了这些线路、则释放这些线路可以释放主器件来驱动这些线路。 注意:低电平时间设置可受固件控制、但硬件默认值为 2 秒

    这仅适用于 R1 硬件。

    此致、

    Diego