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.

[参考译文] BQ76952:I2C — 永久锁定(更新)

Guru**** 2448780 points
Other Parts Discussed in Thread: BQ76952

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1540062/bq76952-i2c---permanent-lockup-update

器件型号:BQ76952


工具/软件:

我之前就这个问题发布了文章、请参阅  BQ76952:I2C — 永久锁定

总之、我正在运行一个测试、其中我从 MCU 重复发送一个读取子命令 (0x0003 =硬件 num)、以测试 I2C 通信的稳定性。 在此测试几小时后、BQ76952 启动 NACK 字节 — 有时该子地址写入,有时是随机数据字节,有时是地址本身。

——

此后,我发现了几个重大问题,解决了不一致问题 — MCU(不是 TI MCU)中的短时脉冲波干扰、在这种情况下、我尝试发送需要 ACK 的 STOP 时、I2C 外设中断、我没有发送真正的 RPT 启动子命令、而是发送了一个 START-STOP-START-STOP、导致通信不一致

——

因此我看到了一些新的行为: BQ76952 COM 似乎随机地从具有 CRC 的 I2C(慢速)交换到 I2C 快速(无 CRC)。 我的问题是:

什么会使 BQ76952 交换 I2C 的工作模式? 我看到发送 SWAP_TO_I2C 或 SWAP_COMM_MODE 子命令可以切换 I2C 配置、但我没有发送这些命令中的任何一个。 我看到还有一个超时功能 — 从参考手册的第 74 页开始:

然后、如果检测到时钟为低电平的时间超过超时、器件将复位通信接口逻辑

5ms 至 20ms。 如果检测到 SCL 引脚为低电平的时间超过 2、则总线还包括一个长期超时

Seconds(秒)、这适用于 Comm Type(通信类型)设置是否包含超时。

发生此超时时时时、BQ76952 的通信接口是否会切换为 COMM TYPE DataRAM 寄存器中的设置? BQ76952 是否有任何其他机制可以通过该机制将其 COM 接口重置为 COMM TYPE DataRAM 寄存器中的设置?

——

——

也 — 从上一篇文章的最后一条评论张贴给我询问了 I2C 上的上升时间,但这不是一个问题。 虽然速度确实很慢、但 I2C 上升/下降时间在规格范围内、并且锁定期间的波形与正常通信期间的波形相同;当前测试/配置中的上升/下降时间没有问题

-迈克

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

    这周测试了我的修复程序、看起来已经解决了。 我的问题是:

    1.我用于发送 I2C 消息的 MCU 存在一些硬件错误(与 TI 完全不相关)

    2.在没有重复启动的情况下发送子命令

    3.正在运行的 BQ76952 COM 配置(I2C 配置)与 DataRAM 寄存器中的 COM 配置不匹配、它在我没有预期的时间点复位、导致通信未定义。 使 DataRAM 寄存器和运行的 COM 配置 matching 使这不是问题