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.

[参考译文] BQ40Z60:闪存校验和计算

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/575652/bq40z60-flash-memory-checksum-calculation

部件号:BQ40Z60

您好,

我正在尝试在不使用BQ Studio的情况下将数据写入BQ40Z60的闪存中,并且我遇到了校验和问题。 经过一些研究,我发现了一些描述一个计算的帖子,似乎不适用于BQ40Z60 (例如 e2e.ti.com/.../20.9823万 )

例如,当我在 BQ Studio中将设备号更改为ABC时,使用高级通信SMB函数,从SMBus侦听的数据包如下所示:

0x44:备用制造商Access()

0x06:数据字节计数

0x80 0x40:物理地址

0x03 0x41 0x42 x043:实际数据

0x84:校验和

使用上面的帖子中提到的计算结果如下:

0x80 + 0x40 + 0x03 + 0x41 + 0x42 + 0x43 = 0x0189

获取LSB (0x89)并从0xFF中减去它,结果为:0xFF - 0x89 = 0x76

但传输的校验和为0x84

那么,我是否遗漏了一份文件来显示此芯片的正确计算,或者我的计算是否错误?


提前感谢您的参与,

莫里茨·席林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    其他人可能有更好的链接,但您遇到的问题是它不是校验和,而是CRC-8。 在SMBus命令末尾对数据包错误检查(PEC)字节进行一些谷歌搜索应该会有所帮助。 此外,我在检查计算时使用了此链接:
    www.ghsi.de/.../index.php

    您回答正确,PEC字节与SHA1校验和无关。
    我找到的一些参考:
    www.nxp.com/.../AN4471.pdf
    www.ti.com/.../sloa132.pdf
    en.wikipedia.org/.../System_Management_Bus

    如果您四处搜索,我确信您也可以找到一些预先编写的代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Moritz:

    不必发送bq40z60的校验和。 只需使用上面概述的SMBus写块协议,而不使用校验和。 包括在0x44命令后发送的物理地址和字节计数。

    例如,写入块:0x44 + 0x06 + 0x40 + 0x80 + 0x41 + 0x03 + 0x043 + 0x42  

    命令

    字节计数

    物理地址(Little Endian)  

    数据字(小Endian)  

    您可以参考第  130...note页上的bq40z60 TRM一节11.1 .........63 0x4000–0x5FFF数据闪存访问()。字节计数不显示,但对于写 块协议是必需的。

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