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.

[参考译文] AM2634-Q1:使用 TI AM2634 控制器上的 MCRC 模块进行 CRC-16/IBM-3740 计算

Guru**** 2509935 points
Other Parts Discussed in Thread: AM2634

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1549682/am2634-q1-crc-16-ibm-3740-calculation-using-mcrc-module-on-ti-am2634-controller

器件型号:AM2634-Q1
主题中讨论的其他器件:AM2634

工具/软件:

尊敬的 TI 团队:

我将使用 TI AM2634 控制器并与 MCRC 模块配合使用。 我的要求是使用以下参数计算 CRC-16/IBM-3740:

多项式: 0x1021
初始值: 0xFFFF
输入反射: 错误
结果反映: 错误
最终 XOR 值: 0x0000

这种特定的 CRC-16 计算是否可由 AM2634 中的 MCRC 硬件模块直接执行? 或者、我是否需要在软件中单独实现此 CRC 计算来满足这一要求?

谢谢、
Rahul

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

    尊敬的 Rahul:

    感谢您的联系。 这应该是可能的、但我不清楚从软件角度是如何处理的。 我将邀请一位同行专家就 MCRC 应用级别的使用提供更多反馈。

    同时、请参阅以下主题、其中通过 MCAL MCRC 实现了类似功能。

    (+) AM2634:对 MCRC 模块的怀疑 — 基于 Arm 的微控制器论坛 — 基于 Arm 的微控制器 — TI E2E 支持论坛

    此致、

    Zackary Fleenor

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

    您好、Zackary、

    从软件的角度来看、我指的是在应用中使用 C 代码实现 CRC。

    例如-

    uint16_t crc16_ibm3740(const uint8_t *data, size_t length) {
        uint16_t crc = CRC16_IBM3740_INIT;
        int i, j;
        
        for (i = 0; i < length; i++) {
            crc ^= (uint16_t)(data[i] << 8);
            for (j = 0; j < 8; j++) {
                if (crc & 0x8000) {
                    crc = (crc << 1) ^ CRC16_IBM3740_POLY;
                } else {
                    crc = crc << 1;
                }
            }
        }
        
        return crc;
    }

    谢谢、
    Rahul

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

    尊敬的 Rahul:

    [引述 userid=“48365" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1549682/am2634-q1-crc-16-ibm-3740-calculation-using-mcrc-module-on-ti-am2634-controller 多项式: 0x1021
    初始值: 0xFFFF
    输入反射: 错误
    结果反映: 错误
    最终 XOR 值: 0x0000[/报价]

    我们的 CRC-16 多项式与您的数据表相匹配。

    请在您结束时使用我们的 MCRC-16 多项式对其进行一次测试。 关于初始值、输入反射和输出反射(即使它们不匹配)、我们可以在 MCRC 模块之上执行一些软件权变措施。 如果您希望在 MCRC 中使用这些参数的默认值、我将进行测试并告知您。

    --
    此致、
    Jagadish。

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

    您好、Jagdish、

    使用下面提到的设置、我会得到 CRC16-XMODEM 结果。 当我传递数据时 0xAAAAAAAA,输出 I get 是 0x1E95,对应于 CRC16-XMODEM。  您能告诉我应该对 CRC-IBM3740 使用哪些设置吗?

    static SDL_MCRC_Config_t SDL_MCRC_Config =
    {
         SDL_MCRC_CTRL0_CH1_CRC_SEL_16BIT,
         SDL_MCRC_DATALENGTH_16BIT,
         SDL_MCRC_DATA_16_BIT,
         SDL_MCRC_BITSWAP_MSB,
         SDL_MCRC_BYTESWAP_DISABLE
    };

    谢谢、
    Rahul

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

    尊敬的 Rahul:

    由于个人工作、我休息了一周、所以我没有时间研究这个问题。

    您是否仍无法解决此问题?

    --
    此致、
    Jagadish。