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.

[参考译文] BQ27411-G1:BlockData 访问问题

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1307727/bq27411-g1-blockdata-access-issue

器件型号:BQ27411-G1

大家好! 感谢您的观看。

我曾尝试使用 BQ27411-G1A 来监测电池。 与组件的交互由微控制器通过 i2c 执行。

可以使用标准命令。 不过、在使用扩展数据命令写入块数据期间会遇到问题。

块数据访问流程遵循 SLUUAS7B–2014年1月手册。

1.
在所有子类中、数据类偏移0的读取值为0x60。 这是意外的、因为默认值应该为零。
以 ID 为0x02的安全子类为例。
写入的数据类值为0x02、数据锁定为0、访问地址为0x40、读取了2个字节。
返回值为0x6000、校验和为0x00。

2.  
接着是上一个问题、在相同的设置中、我尝试将数据写入同一个寄存器。
写入的数据类值为0x02、数据锁定为0、访问地址为0x40、读取的2个字节的值为0x6000 、校验和为0x00。
经过一系列试错后、写入值为0x01F4、校验和为0x0A、成功进行写入。
我试图重新读取相同的位置、我得到的值是0x60F4、新的校验和是0xF4。

3.
我尝试将值写入下一个寄存器。 示例。
写入的数据类值为0x02、数据锁定为0、访问地址为0x42、写入了2个字节。
从之前的情况继续、校验和为0xF4。
我尝试写入0x0000时写入新校验和0x0B。
发生了 NACK 情况。

4.
为了进一步探究该情况、我尝试从各种数据类中读取值、从偏移0寄存器读取值始终为0x60。

5.
为了进一步探索这种情况、我尝试从各种数据类中写入偏移量不是0的值、但都没有成功。

6.
从 DM 代码和默认设计上限读取的值正确。 尽管默认值不为零、但我读取的校验和为零。

 

我认为无法访问数据锁定会阻碍组件的功能。 我想让该电池电量监测计正常工作。

很抱歉信息混乱。 我很乐意提供更多数据来解决困惑问题。

谢谢你。