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.

[参考译文] MCT8316AEVM:CRC 的实施存在问题

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1301492/mct8316aevm-having-issues-with-the-implementation-of-crc

器件型号:MCT8316AEVM
主题中讨论的其他器件:MCT8316A

您好、TI 团队:

我一直在尝试在代码中实现 CRC、以便与 MCT8316A 通信、但我似乎有一些相关的问题。 当读取从 MSP430发送到 MCT8316A 的 I2C 数据时、当使用 x8 + x2 +x1 +1多项式时、产生的 CRC 位不与特定的 CRC 位对齐、如第8.6.2.6节中 mct8316a 的数据表所述。 不管我如何处理数据字节、情况都是这样:是先将它们放在 LSB 位还是最后放在 LSB 位。  
例如、当我读取 MSP430传送到 MCT8316a 的数据时、从 EEPROM 读取命令(0x0050 00E6 4000 0000)的 CRC 字节为0xFA、但实际上计算此0x07多项式的 CRC 字节会得到0x7D (如果数据字节首先是 LSB、则为0x21)。
任何帮助,以确定我在这里看错了什么,将是成就.

此致、Simon

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

    您好、Simon、

    请参阅此 E2E 帖子中接受的答案、为方便起见、我也会在此处放置一些答案。 在 MCT8316A 数据表中、除了  CRC 多项式 (x^8 + x^2+ x + 1)之外、 初始值为0xFF、还缺少一些信息。 将计算器配置为以下值后、您可以使用此在线 CRC 计算器来获得正确的 CRC 结果:

    • CRC-8定制
    • 多项式:0x7
    • 初始值:0xFF

    此外、数据字节会首先发送 LSB、因此请在计算器中以这种格式输入数据字节。

    此致、

    约书亚

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

    你好、Joshua、

    非常感谢您的帮助、我更改了代码中的初始值、现在它可以正确计算 CRC。

    此致、谢谢

    西蒙