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.

[参考译文] UCC5880-Q1:CRC8 计算与示例不匹配

Guru**** 2564140 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1566348/ucc5880-q1-crc8-calculation-not-matching-the-example

器件型号:UCC5880-Q1


工具/软件:

我正在尝试实现 CRC8 计算、以写入该部分的配置。 在数据表提供的示例中、使用这个在线计算器和我自己的实现、计算出的校验和为 0x3D、我将计算结果为 0x2D。 已指定初始化值、但数据表中未指定最终 XOR 值、是否应为 0xFF? 我处理数据的顺序是否错误?

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

    尊敬的 Trey:

    由于没有最终的 XOR 步骤、多项式应为 0x107、最终 XOR 应为 0x00。

    您还需要 计算发送的每个字节的 CRC。

    请参阅随附的来自我自己脚本的示例输出。

    e2e.ti.com/.../CRC_5F00_TX-example.txt

    此致、

    Max Verboncoeur

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

    好的、这更有意义。 CRC_RX 计算是相同的吗?

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

    尊敬的 Trey:

    是的、CRC_RX 也是如此。

    此致、

    Max Verboncoeur

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

    对于这个收到的示例、您能否指定通过 CRC calc 传递哪些数据?

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

    尊敬的 Trey:

    CRC 值的 MSB 是对每个 SDI 字节执行 CRC 计算的结果。 LSB 是 SDO 计算的结果。

    请参阅下面的 SDI CRC 输出:

    e2e.ti.com/.../CRC_5F00_RX-example.txt

    此致、

    Max Verboncoeur

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

    正在处理哪些数据来进行 SDO 计算?

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

    尊敬的 Trey:

    SDO 计算是对 SDO 线路上发送的每个字节执行 CRC 函数的结果。 示例中为:40 01 B5 8B 00 4C D6 2F。

    此致、

    Max Verboncoeur

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

    从 STATUS 寄存器读取 004C 后、在 SDO 上发送的 CRC_RX 是否为 2F? 如果是这样、通过 CRC 运行所有该 RX 数据不会得到 2F、因为 CRC 寄存器正在报告。 如果我在 0x8B 0x00 0x4C 上运行 CRC、则可以获得 2F、但我不理解为什么需要将之前的 CRC_RX 值包含在 STATUS 寄存器的 SDO 上发送的数据的 CRC 值中。

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

    尊敬的 Trey:

    这只是 CRC 引擎的设计方式。 当 CRC_RX 由 CRC 寄存器读取命令复位时、SDO 输出的 LSB 是用于 CRC_RX 计算的第一个值。

    此致、

    Max Verboncoeur