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**** 2439710 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1513483/bq76952-new-i2c-address-being-ignored-even-after-swap-comm-mode

器件型号:BQ76952

工具/软件:

您好:

我使用的是 BQ7695202PFBR (默认情况下使用支持 CRC 的 I2C 通信)、我得到了微控制器和电池管理器之间正在运行的通信。 我可以读取电芯电压和温度、这两个值根据电芯插入时的实际温度和实际电压进行检测。 CRC 的计算结果与电池管理器的计算结果相匹配(我肯定不需要费力解决)。

我尝试在同一条 I2C 总线上连接多个电池管理器、因此需要更改它们的 I2C 地址。 目前、我正在尝试临时执行此操作(无 OTP 编程)。 因此、我按照以下步骤操作:

-读取 I2C 地址:我得到0x00(一切都好)

-进入配置模式:我可以看到电池状态的位数0变为0

-写我的新 I2C 地址(0x10 ):我的通信得到了正确的确认

-再次读取 I2C 地址:我得到了0x10 (看起来很好!)

-退出配置模式:我可以看到电池状态位数0恢复为1

-激活交换通信模式

然后芯片继续在旧的 I2C 地址上通信。。 此外、我还增加了等待时间(基于 doc)、尤其是在执行 Swap Comm Mode 命令后、即使经过多秒钟、芯片仍在旧地址上通信。

我想指出的是、我在写入 I2C 地址的通信部分尝试了 CRC、校验和长度问题、当我以任何方式将新的 I2C 地址不写入 RAM 时、我读回 I2C 地址时会得到0x00。 因此、我很有信心我写入 RAM 过程可以正常工作、因为我能够读回我写入的值。

我对这里可能出现的问题有点困惑、为什么芯片没有切换到新的 I2C 地址? 此外、我是否有办法测试交换通信模式是否已被电池管理器正确传输、理解和应用?

注意:我的微控制器和我的电芯管理器(ISO1640BDR)之间有一个隔离器。 我不认为这件事是聪明到足以把事情搞得一团糟,是吗?

非常感谢

祝你度过美好的一天

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

    很抱歉,我的错。 我把地址中的填充物弄乱了。

    如果有人遇到此问题、上述过程可行。 确保使用向左移动1位、向右移动1位的地址进行测试(在 MCU 库中使用的内容与在芯片中读取/写入的内容之间)。