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.

[参考译文] CC1312R:有关为无线电设置自定义 CRC 多项式的帮助。

Guru**** 2473260 points
Other Parts Discussed in Thread: CC1312R, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1383455/cc1312r-help-with-setting-up-a-custom-crc-polynomial-for-the-radio

器件型号:CC1312R
主题中讨论的其他器件: SysConfig

工具与软件:

下午好。  我有一款采用 CC1312R1芯片的新产品、但需要使其向后兼容 我们的一些旧产品。
这些较早的产品使用 Microchip MRF89XA 收发器芯片和 NXP MKW01Z128无线电。 这两个无线电似乎使用相同的 CRC 多项式、因为它们成功地相互通信。

但是、当我尝试使用 CC1312R 从上述任何产品接收数据包时、都会收到 CRC 错误。 数据包数据是正确的、所以对于频率、符号速率、接收带宽等都是正确的、我还是非常有信心的。

MRF89XA 和 MKW01的数据表似乎都建议它们基于 CCITT 多项式并且 CRC 多项式=x16 + X 12 + X 5 + 1 (数据表在此处提供 https://ww1.microchip.com/downloads/aemDocuments/documents/WSG/ProductDocuments/DataSheets/MRF89XA-Data-Sheet-DS70000622.pdf 第17页显示了 CRC 多项式)

非常感谢您提供有关如何在 CC1312 CRC 中实现此功能的建议。

此致

Gavin

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

    尊敬的 Gavin:

    我建议您查看技术参考手册的"无线电"章节、特别是您使用的无线电模式(例如 Prop RF 章节25.10)。  

    https://www.ti.com/lit/swcu185

    对于每个命令、描述了 CRC 选项、例如是否在 CRC 计算中包含同步字。  Setup 命令的 WhitenMode 选项决定了 CRC 多项式。 听起来默认多项式应该适用于对等器件。 此屏幕截图来自 25.10.5.2专用模式设置命令部分。

    谢谢、

    Marie H.

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

    谢谢 Marie、下面我来看看这些部分。

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

    或发送至: https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_41_00_17/docs/proprietary-rf/proprietary-rf-users-guide/proprietary-rf/packet-format.html#crc-calculation

    (搜索" 更改 CRC 多项式)

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

    谢谢玛丽和 TheGhostOf 为您的指针。

    通过一些测试和逆向工程、我发现旧无线电系统的 CRC 协议如下所示。

    CRC 多项式= 1021
    初始值0x1D0F
    XOR 值0xFFFF

    由于它会通过有效载荷和标头计算 CRC、因此看起来 CMD_PROP_RX 应该适合我的需求、而不是 CMD_PROP_RX_ADV  

    我已经为上述3项设置设置设置了覆盖、但 CRC 仍然失败。 调查显示、根据覆盖、CRC XOR 值仍设置为0、而不是0xFFFF。 其他两个覆盖项看起来正常工作。 有什么建议吗? 此处是我添加的器件高低加权的覆盖列表

    静态 uint32_t 覆盖[]=

    // override_prop_common.json
    //直流/直流稳压器:在 Tx 中、使用 DCDCCTL5[3:0]=0x7 (DITHER_EN=0且 IPEAK=7)。
    (uint32_t) 0x00F788D3、
    // override_prop_common_sub1g.json
    //设置 RF_FSCA.ANADIV.DIV_SEL_BIAS = 1。 位[0:16、24、30]无关。
    (uint32_t) 0x4001405D、
    //设置 RF_FSCA.ANADIV.DIV_SEL_BIAS = 1。 位[0:16、24、30]无关。
    (uint32_t) 0x08141131、
    // override_tc106.json
    // Tx:配置 PA 斜坡时间、PACTL2.RC=0x3 (在 ADI0中、设置 PACTL2[4:3]=0x3)
    ADI_2HALFREG_OVERRIDE (0、16、0x8、0x8、17、 0x1、0x1)、
    // Rx:将 AGC 基准电平设置为0x1A (默认值:0x2E)
    HW_REG_OVERRIDE (0x609C、0x001A)、
    // Rx:设置 RSSI 偏移以将报告的 RSSI 调整-1dB (默认值:-2)、针对外部偏置和差分配置进行修整
    (uint32_t) 0x000188A3、
    // Rx:将抗混叠滤波器带宽设置为0xD (在 ADI0中、设置 IFAMPCTL3[7:4]=0xD)
    ADI_HALFREG_OVERRIDE (0、61、0xF、0xD)、
    // Tx:将关闭斜坡之前的等待时间设置为0x1A (默认值:0x1F)
    HW_REG_OVERRIDE (0x6028、0x001A)、
    //配置新的 CRC-16多项式
    HW32_array_override (0x2004、1)、
    // CRC-16多项式:CRC-16-CCITT 正常形式、0x1021是 x^16 + x^12 + x^5 + 1
    0x10210000、
    /*将 crcInit 覆盖为0x1D0F */
    (uint32_t) 0xC0040051、
    (uint32_t) 0x1D0F0000、//初始值存储在32位值的 MSB 中
    /*将 XOR 值设置为0xFFFF */
    (uint32_t) 0xC0040061、
    (uint32_t) 0xFFFF0000、// XOR 值存储在32位值的 MSB 中
    (uint32_t) 0xFFFFFFFF
    };

    我从 TheGhostOf 提供的链接得到了这些覆盖。


    最后一点、是否有更好的方法使用覆盖项? 我复制了 SysConfig 生成的文件 ti_radio_config.c 中的覆盖项、然后将额外的覆盖项添加到列表末尾、并使用指向新的覆盖结构
    RF_cmdPropRadioDivSetup.pRegOverride =(uint32_t*)覆盖;

    可以进行测试、但并不理想、因为将来对 SysConfig 的任何修改都可能会导致问题。

    此致

    Gavin

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

    好的、XOR 值的最后一个问题现在在这个线程https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/963795/launchxl-cc1352r1-change-crc-xor-value?tisearch=e2e-sitesearch&keymatch=crc%25252525252525252520xor#"中的回答之后得到了解决

    它看起来像此数据表"https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_41_00_17/docs/proprietary-rf/proprietary-rf-users-guide/proprietary-rf/packet-format.html#crc-calculation" 在异或值方面仍然不正确。 它应该使用较低的2个字节、而不是链接线程中每个 ter 应答的较高2个字节。  

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

    尊敬的 Gavin:

    很高兴听到您已将其启动。

    是、这是建议使用覆盖的方法。

    我将创建一个请求单、以更正您链接的用户指南。 感谢您让我意识到。

    谢谢、

    Marie H.