大家好! 感谢您的观看。
我曾尝试使用 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 代码和默认设计上限读取的值正确。 尽管默认值不为零、但我读取的校验和为零。
我认为无法访问数据锁定会阻碍组件的功能。 我想让该电池电量监测计正常工作。
很抱歉信息混乱。 我很乐意提供更多数据来解决困惑问题。
谢谢你。