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.

[参考译文] Bq2.722万:无法更新数据存储器参数

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/585243/bq27220-can-not-update-data-memory-parameter

部件号:BQ2.722万

您好,

我正在使用I2C命令对bq2.722万进行编程,我按照技术参考手册的示例修改了设计容量(文档 SLUBD4第65页),我无法使其正常工作。

第一个问题:每个寄存器都有一个0x0020偏移。 如果我读取寄存器0x929F,则得到默认值0x92BF。 如果我读0x92A3,我将得到默认值0x92C3等...

第二个问题:仪表未密封且完全可以访问,我检查了OperationStatus标志。 我可以使用前面看到的寄存器偏移(0x927F)读取Design Capacity (3000)的默认值,但当我尝试使用新校验和(使用示例中步骤11给出的公式)和数据长度写入新值时,该值不会更新。

ckecksum是如何计算的? 校验和(255 - x),其中x是BLockData的8位求和(0x40至0x5F)与在0x60寄存器处读取的校验和不对应。 寄存器0x61 MadDataLen返回36,但blockData为32字节。 这4个字节用于校验和是什么?  

这里是块数据(0x40至0x5F):0b b8 03 84 0e 74 00 64 0e 9f 00 95 03 63 0f be 01 3c 09 00 0b d7 01 0d 39 01 0d ad 01 10 4d

我得到校验和= 0xD2,寄存器0x60处的校验和读取值为0xB5。 我不明白这个校验和是如何计算的。

我没有bq2.722万 EVM来读取和写入寄存器。

感谢您的帮助,

此致,

乔纳森

更新:让它正常工作! 示例中有一个错误,在步骤8之后,您需要重复步骤5和6,否则参数address中有一个偏移值0x0200。 当您读取数据时,地址指针改变,您不再处于正确的位置。 用于写入数据存储器的TI文档很差,很难理解其工作原理,因为“3.1 Accessing the Data Memory”一段是错误的,它只是其它电池电量计的复制/粘贴...