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.

[参考译文] CC1310:为什么 CC1310射频在设置从 RX 队列中丢弃 CRC 错误包后仍在 RX 队列中接收错误包?

Guru**** 2481465 points
Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1289913/cc1310-why-cc1310-rf-still-recieve-error-package-in-rx-queue-after-set-discard-crc-error-package-from-rx-queue

器件型号:CC1310

我使用4mbps 8fsk 高速模式进行通信。 RX 器件配置代码:

//设置高速 Rx 命令
rf_cmdRxHS.pOutput =&rxStatistic_hs;
rf_cmdRxHS.pQueue =&dataQueue[NC45] Queue_Rx;
RF_cmdRxHS.maxPktLen = MAX_RX_LENGTH;
rf_cmdRxHS.pktConf.bFsOff = false;//在执行命令后保持频率同步*/
rf_cmdRxHS.pktConf.bUseCrc = true;/*接收和检查 CRC */
rf_cmdRxHS.pktConf.bVarLen = true;/*可变长度*/
RF_cmdRxHS.pktConf.bRepeatOk = false;//接收单个有效数据包后停止*/
rf_cmdRxHS.pktConf.bRepeatNok = true;//接收到包含 CRC 错误的数据包后返回同步搜索*/
rf_cmdRxHS.rxConf.bAutoFlushCrcErr = true;//从 Rx 队列中丢弃具有 CRC 错误的数据包*/
rf_cmdRxHS.rxConf.bIncludeLen = true;/*在存储的数据包中包含接收到的长度字段*/
rf_cmdRxHS.rxConf.bIncludeCrc = false;//在存储的数据包中排除接收到的 CRC 字段*/
rf_cmdRxHS.rxConf.bAppendStatus = false;/*没有状态字附加到 Rx 队列中的数据包*/
rf_cmdRxHS.rxConf.bAppendTimestamp = true;/*将 RX 时间戳添加到数据包有效载荷中*/

发送器件发送 一些固定图像数据,我使用 CCS 调试发现 RX 设备接收到的数据仍然有错误数据  

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

    尊敬的 Tian:

    考虑到器件的架构、如果在无线电回调中设置断点、则会收到错误、因为它会破坏应用程序的同步。

    您看到的确切错误是什么?

    此致、

    亚瑟

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

    我 在无线电退出回调后设置断点,并且看到数据队列中的错误数据

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

    尊敬的 Tian:

    您可以在放置断点的位置共享一个代码片段、以及看到什么错误吗?

    使用变量来截取调试会话的屏幕截图可能会有所帮助。

    此致、

    亚瑟

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

    cc1310设置 rf_cmdRxHs.rxConf.bIncludeCrc = true;为什么我暂时看不到 CRC

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

    我在 rxDoneCallback ()中设置回调函数,将数据复制到缓冲区中,然后在 RX 器件发送响应 ACK 信号后设置断点,我通过比较发现缓冲区数据与原数据不同

    rf_cmdRxHs.startTrigg.triggerType = trig_now;
    rf_cmdRxHS.startTrigger.pastTrig = 1;
    RF_cmdRxHS.StartTime = 0;
    RF_cmdRxHS.endTrigg.triggerType = TRIG_ABSTIME;
    RF_cmdRxHS.endTrigger.pastTrig = 1;
    RF_cmdRxHS.EndTime = RF_getCurrentTime ()+ RF_convertMsToRatTicks (1000);

    RF_CmdHandle cmdHandle= RF_postCmd (rfHandle、(RF_Op*)和 RF_cmdRxHS、
    RF_PriorityNormal、rxDoneCallback、RF_EventRxEntryDone);

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

    在 cc1310 HS 模式下是否有计算 CRC 的公式、以及 CRC 长度是16位还是32位

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

    尊敬的 Tian:

    以下网站对此主题进行了讨论(包括 CRC 以及计算): https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1276389/cc1310-crc-for-rfc_cmd_hs_rx_t-rf_cmdrxhs-rfc_cmd_hs_tx_t-rf_cmdtxhs

    您可以将其设置为16位或32位、但无需了解实际公式、因为无线电将以快得多的方式为您计算它。

    此致、

    亚瑟