您好的体验。
我是一个 在如下图所示的环境中试用 CC1120的人。
CC1120模块充当 RX 并包含一个 MCU 和一个 CC1120芯片、该 CC1120芯片由 MCU 控制。
CC1120模块是制造的、不是商用产品。
BOOSTXL-CC1120-90用作 TX、是 TI 的商用产品。
BOOSTXL-CC1120-90具有 Smart RF 的互锁功能、并可通过 PC 中 SMART RF 的数据包 TX 以设置的载波频率发送数据包。
我以前曾提出过类似的问题(下面的链接)
我知道在 CC1120模块上接收 TX 数据包需要执行以下步骤
1.复位 CC1120
2.写入配置寄存器
3.校准合成(如果未启用自动校准)
4、选通脉冲
5.等待接收包(接收包信号生效)
6.检查 FIFO 中是否有字节(如果进行了滤波,则接收到的数据包信号也将生效)。
7.读取 NUM_RXBYTES 寄存器指示的字节数。
基于这些内容、我编写了一个代码。
在主语句中运行的代码如下图所示。
主语句包含以下4个函数。
每个函数的内容如下所示。
1. Freq_Rx():用于设置 CC1120模块中 CC1120寄存器值的函数。 来测量眼图的张开度
2. ManualCalibration():校准合成函数。 通过重新填充到 cc112x_ease_link_rx.c 来生成
3. RX_Radio():RX FIFO,等等 此函数处理与 RX 相关的全部内容。 通过引用 cc112x_ease_link_rx.c 中的 runRx()函数生成
我认为 RX_Radio()函数有问题。
RX_Radio()函数如下所示。
首先、我打通了 SRX。
然后检查 RXFIFO 中是否有字节。 (如果0x06中的 IOCFG2寄存器值、我知道已在 RXFIFO 中勾选了 bye)
Af61该寄存器读取 NUM_RXBYTES 寄存器,如果该值不是0,则检查 RXFIFO 错误。(检查 marcstate 寄存器的值,0x1F = 0x11)
如果没有错误、则 RXFIFO 值存储在 rxbuffer 变量中、并对该值进行检查。
但是、当读取当前 NUM_RXBYTES 寄存器时、即使 BOOSTXL-CC1120-90正在发送数据包、也会继续重复、并且该值被确认为0。
我担心当 RXFIFO 中没有字节时我是执行代码的。
如果您能告诉我在我的过程中出了什么问题、我将不胜感激。
感谢您阅读这篇长帖子、任何建议都将对我大有帮助。
-由 Kim 提供-
不过、何时