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.

[参考译文] MCT8329A:MCT8329a CRC 计算通过0xF 的异或关闭

Guru**** 2468460 points
Other Parts Discussed in Thread: MCT8329A

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1286542/mct8329a-mct8329a-crc-calculation-appears-off-by-an-xor-of-0xf

器件型号:MCT8329A

逻辑分析仪的输出(MCU 同意):
```

写入0x60 ACK 数据:0xD0 0x00 0x80
读取0x60 ACK 数据:0x02 0x4D 0x40 0x7F 0xBE 0x00'

```

0x60写入转换为0xC0 (0x60 <<1)

0x60读取转换为0xC1 (0x60 << 1 | 1)

完整字节序列(给出0xc0 0xd0 0x00 0x80    0xc1 0x02 0x4d 0x40 0x7f   )用于 CRC 计算(用生成器0x07 (x^8 + x^2 + x + 1) 给出输出0xB1

www.sunshine2k.de/.../crc_js.html

这与0xBE 的系统输出不一致

如果我使用 XOR 0x0F 结束 CRC 计算、则会获得 MCT8329a 输出的"正确"值

我在5个以上的寄存器上进行了测试、结果是一致的。

我不知道为什么会出现这种情况。

有什么想法吗? 有人能重复一下吗?

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

    尊敬的 Pierre:

    我会在这个周末回到你的身边。

    谢谢、此致、

    文卡塔德里

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

    我还注意到在尝试写入寄存器时 CRC 输出很奇怪。

    我无法顺利使用用于生成 CRC 读取的算法

    用于寄存器写入操作的 EVM 板输出的逻辑分析显示:

    写入操作的 CRC 值为0x07:0xC0 0x50 0x00 0xE8 0x00 0x80 0x00 0x00

    我找不到任何方法来使数据表中的8位 CRC 算法从该字节字符串生成0x07。

    我得到0xDC (如果我像读取计算一样应用最终的 XOR 0x0F、则为0xD3)

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

    尊敬的 Peirre:

    该数据表未显示使用的初始值。 初始值为0xFF。 请在您提供的链接中将初始值更改为0xFF、这样会匹配。

    谢谢、此致、

    文卡塔德里