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.

[参考译文] CC1120:RX FIFO 中未存储任何内容时出现问题。

Guru**** 1144750 points
Other Parts Discussed in Thread: CC1120, BOOSTXL-CC1120-90, CC1200
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1206681/cc1120-i-have-a-problem-with-nothing-being-stored-in-the-rx-fifo

器件型号:CC1120
主题中讨论的其他器件:CC1200

您好的体验。

我是一个 在如下图所示的环境中试用 CC1120的人。

CC1120模块充当 RX 并包含一个 MCU 和一个 CC1120芯片、该 CC1120芯片由 MCU 控制。

CC1120模块是制造的、不是商用产品。

BOOSTXL-CC1120-90用作 TX、是 TI 的商用产品。

BOOSTXL-CC1120-90具有 Smart RF 的互锁功能、并可通过 PC 中 SMART RF 的数据包 TX 以设置的载波频率发送数据包。

 

但是、我没有从 CC1120模块收到任何内容。

我认为接收到的数据将被存储在 RX FIFO (0x3F)中、并且可以通过读取0x3F 寄存器来读取接收到的数据。

但是、由于读取 NUM_RXBYTES 可以读取 RX FIFO 中的字节数、因此读取了0x00。

即使在读取 RX FIFO 本身时、也读取到了0x00。

我使用了两个 BOOSTXL-CC1120-90并将一个设置为 TX、另一个设置为 RX 以执行射频测试。

当时、确认数据包已正常传输和接收。

 用于 RX 的 BOOSTXL-CC1120-90的寄存器值通过 SAMRT RF 提取出来、并原封不动地应用于 CC1120模块。

在我看来、在输入寄存器值后、srx 的 STROBE 或 Rx FIFO 的处理方式似乎存在问题。

下图是将值写入寄存器、执行手动校准、然后再执行的代码。

 

当值大于0时、代码尝试以连续读取 NUM_RXBYTES 和读取 RXFIFO 的形式运行。

非常感谢您对上述代码中的修复或修复建议。

非常感谢您阅读长帖子。

                               -由 Kim 提供-  


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

    我不理解您的代码。 一旦 RX FIFO 中有超过0个字节(例如1、如果您刚刚开始接收某些数据)、您尝试从 FIFO 中读取8个字节。 您从 FIFO 中读取的字节永远不会超过其中的字节、因此在少于8个字节的情况下读取8个字节会扰乱 FIFO 指针。

    您应该在代码中执行以下操作:

    复位 CC1200

    写入配置寄存器

    校准合成(如果未启用自动校准)

    频闪灯 SRx

    等待数据包接收(数据包接收信号生效)

    检查 FIFO 中是否有字节(如果进行了滤波、接收到的数据包信号也将生效)。

    读取  NUM_RXBYTES 寄存器指示的字节数。

    对于上述方法、您应使用数据包长度过滤并将最大数据包长度设置为125。 这样、就可以存储长度字节、125个有效载荷字节和2个状态字节的空间、并且 RX FIFO 永远不会溢出。

    Siri.

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

    非常感谢您告诉我。 我将以您所说的形式编写代码。  发出"接收包"信号的寄存器是否为 MODED_STATUS1寄存器?

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

    否 最好的办法是将其中一个 GPIO 引脚编程为输出该信号 (IOCFGx = 0x06)并等待下降沿中断、或者您可以轮询 MARCSTATE 并等待无线电回到空闲状态(MARCSTATE = 0x41)。

    您可以在此处查看 cc112x_ease_link 示例:

    www.ti.com/.../swrc253

    Siri.

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

    谢谢、我已经查看了详细信息、这一点很合理。 感谢您一直以来给出的回答。

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

    很高兴我能帮助你:-)