大家好、
我们的一位客户使用 BQ27510-G3并在校验和中获取错误、所附的是所遵循的编程序列。 您能不能再回顾一下这一点、并提供专家意见方面的帮助。
e2e.ti.com/.../Writing-into-BQ27510-data-flash.docx
此致、Shinu Mathew。
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.
大家好、
我们的一位客户使用 BQ27510-G3并在校验和中获取错误、所附的是所遵循的编程序列。 您能不能再回顾一下这一点、并提供专家意见方面的帮助。
e2e.ti.com/.../Writing-into-BQ27510-data-flash.docx
此致、Shinu Mathew。
在步骤6中、您将哪些数据写入0x42? 使用您的设置(子类0x22、块0)、位置 0x42和0x43保持充电电压(采用大端字节序格式)。 您的文档仅显示 I2C->WRITE (0x42)、但不显示实际值。
步骤7写入0x68、但这是数据还是地址不清楚? 假设它是数据、步骤6和步骤7意味着您需要写入充电电压。 如果我们要将其设置为4200mV (=0x1068)、则必须执行:
I2C->WRITE (0x42、0x10);MSB 在前
I2C->WRITE (0x43、0x68);LSB 最后
在写入这两个值之前、您应该读取旧值(从地址0x42和0x43读取)和旧校验和(从地址0x60读取)。 您需要这些值来计算新的校验和。
在写入这两个值后、我们必须计算校验和:
temp = mod (255–old_checksum–old_msb– old_LSB、256)
new_checksum = 255–mod (temp + new_msb (0x10) + new_LSB (0x68)、256)
然后、您必须将 new_checksum 写入0x60。 如果正确、监测计将 ACK 并将新数据从其临时缓冲区复制到其工作数据存储器中。