TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1125: 接收RF数据的同时读取RX FIFO错误问题

Part Number:CC1125Other Parts Discussed in Thread: CC1101

  TI工程师们你们好,我想请教一下在CC1125模块测试过程中发现的问题。 测试硬件和配置如下:

硬件:  外购cc1125模块和自己做的底板

配置:   频率: 434M    速率:  40kbps   调制方式:4GFSK      通信方式:FIFO Mode/Normal Mode 

发送和接收模式都是FIFO Mode,接收端获取FIFO数据的方式有两种:


1) 通过GPIO 的 
PKT_SYNC_RXTX 信号判断收到完整的包后, 读取CC112X_NUM_RXBYTES寄存器, 然后以CC112X_BURST_RXFIFO方式一次性读取整包。

2) 一直轮询CC112X_NUM_RXBYTES寄存器,一旦发现FIFO中存在数据就以CC112X_BURST_RXFIFO方式读取FIFO。最后重新组合整个包。

 测试结果:  在静止测试的时候两种方法的接收数据都是正确的; 但是在发射设备一直移动的情况下, 方法 2) 的接收数据错误率 是方法 1) 的 3倍 以上, 另外,即使方法 2) 中接收RF过程中没有一直读FIFO,只是读CC112X_NUM_RXBYTES寄存器, 也会发生同样的结果。

是不是因为RF接收数据到FIFO过程中读取某些寄存器 或者 硬件链路的SPI通信都会影响到RF数据?  还是IC本身有某种机制导致一边接收一边读FIFO时很容易出错? 

希望TI的大神能好好看下,十分感谢!

Cherry Zhou:

您好,我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

Cherry Zhou:

您好,在我们的一部分收发器上,通过 SPI 进行的重轮询会影响RF性能。 这取决于RF设计以及 SPI 总线在电路板上的位置。

如果在active模式下输出 GPIO 上的时钟,情况也是如此。 关于CC1101,数据表中甚至有一个有关此问题的警告:

To optimize RF performance, these signals (CLK_XOSC) should not be used while the radio is in RX or TX mode.

关于电流消耗:让 MCU 处于唤醒状态,在无线电处于 RX 中时轮询某些寄存器,也不是很好。 相反,它应该处于某种低功耗模式,等待来自无线电的中断–告知它接收到数据包并且数据可用。

在接收时切换 DIO 会增加噪声,而灵敏度会更低。

JSON JACK 说: 测试结果:  在静止测试的时候两种方法的接收数据都是正确的; 但是在发射设备一直移动的情况下,

也就是说,如果您在测试期间将 TX 和 RX 板放置在同一位置,那么方法 1 和方法 2 的结果差不多是吗? 如果在测试期间移动 TX 或 RX 侧,方法 1 和方法 2 之间的差异会更大?

请问您为什么首先测试方法 2 ? 接收到的数据包的 RSSI 是多少? 您能否使用 SmartRF Studio 中的标准 50kbps 设置执行相同的测试并进行比较? 工程师想弄清楚所选的 phy 是否会影响性能。

,

JSON JACK:

1.  

Cherry Zhou 说:在接收时切换 DIO 会增加噪声

“DIO” 指的是MCU 和 RF 芯片之间的通信引脚吗?

2. 

Cherry Zhou 说:

也就是说,如果您在测试期间将 TX 和 RX 板放置在同一位置,那么方法 1 和方法 2 的结果差不多是吗? 如果在测试期间移动 TX 或 RX 侧,方法 1 和方法 2 之间的差异会更大?

是的,如果移动TX侧, 错误明显增大

3.

Cherry Zhou 说:请问您为什么首先测试方法 2 ? 接收到的数据包的 RSSI 是多少? 您能否使用 SmartRF Studio 中的标准 50kbps 设置执行相同的测试并进行比较?

测试方法2的原因是项目中TX是连续进行的,如果等到每个RF数据包都接收完毕再读FIFO的话,时间不能满足,所以需要一直读取FIFO。   SmartRF Studio 中的标准 50kbps 测试结果和问题描述相同,当TX移动, 数据包出错时RSSI为 -80dbm, 但是很多正确数据包的RSSI都小于 -80dbm

,

Cherry Zhou:

您好,

JSON JACK 说:“DIO” 指的是MCU 和 RF 芯片之间的通信引脚吗?

指的是在CC1125上的任意GPIO。

JSON JACK 说:测试方法2的原因是项目中TX是连续进行的,如果等到每个RF数据包都接收完毕再读FIFO的话,时间不能满足,所以需要一直读取FIFO。   

也就是说,发送了无限长的数据包吗? 如果是的话,请问您具体的使用案例是什么?

JSON JACK 说:SmartRF Studio 中的标准 50kbps 测试结果和问题描述相同,当TX移动, 数据包出错时RSSI为 -80dbm, 但是很多正确数据包的RSSI都小于 -80dbm

如果工程师想要做实验重现一下该问题的话,您能否提供一下该操作的详细步骤?

,

JSON JACK:

1. 不是无限长,数据包是逐个发出的, 每个包大小为128字节, 但是每包的时间间隔只有几ms。案例是,在RX侧一块PCB上单个MCU需要控制多个cc1125,而每个1125上的RF数据包很有可能会同时到达, 所以RX侧MCU需要一直轮询RX FIFO而不是等待GPIO中断信号再去读整个包。

2. 实验方法就如问题描述的一样:

(1)程序

TX侧:

按照studio 50kbps配置,TX侧以10ms时间间隔发送固定长度包(128字节)

RX侧:

方法1)

通过GPIO3的 PKT_SYNC_RXTX 中断收到完整数据包后, 读取CC112X_NUM_RXBYTES寄存器获取长度, 最后以CC112X_BURST_RXFIFO方式读取整包并校验。

方法2)

RX侧一直轮询CC112X_NUM_RXBYTES寄存器,一旦RX FIFO中存在RF数据就以CC112X_BURST_RXFIFO方式全部读出到MCU内存中,直到读取的总长度为128字节,最后校验。

(2)RX TX位置

上面的方法1) 和方法2) 分别进行以下两组位置测试:

第一组测试, TX 和 RX 都放在同一位置, 接收数据包正确; 第二组测试, RX侧位置不变,在室内手持TX侧步行移动至15米外然后折返。

也就是说总的测试结果有4种: 1. 当TX RX 在同一位置时, 接收数据包都是正确的。 2.当TX移动时,方法2) 比方法1) 的误码率要严重得多。

,

Cherry Zhou:

JSON JACK 说:(1)程序

您好,系统受时间限制,只有在接收到完整的数据包后才能读取数据包可能会很困难。 当您将 RX FIFO 填充到高于给定阈值时,您能否选择获取中断来避免连续轮询?

JSON JACK 说:(2)RX TX位置

关于RX和TX位置,工程师这几天会进行一些相关的实验,有新的进展会尽快给到您。

,

Cherry Zhou:

您好,工程师用了 SmartRF Studio 和 50kbps 设置以及 126 字节数据包。有一些数据包错误,这些所有错误都被放置在数据包的末尾,以这些字节为单位:

您的是这样的吗?

,

JSON JACK:

如果收到一包再去读FIFO,大部分错误位置出现在包中间或尾部,无规律; 如果以RX阈值中断16或32读FIFO,大部分错误出现在中断发生的时候,而且多数只错1个字节

RX 阈值的错误如下:

,

Cherry Zhou:

您好,如果您仅仅使用 SmartRF Studio (意味着在 RX 端不使用轮询) :请问您看到的是由于行走导致的位错误还是您所处的位置?

工程师目前怀疑可能是由于您在室内执行此操作,对于某些特定位置,多路径 (或类似) 会出现问题,其中,TX 信号部分损坏,它从不同的墙壁反射,以及信号不同的部分到达 RX 节点也稍有不同。

,

JSON JACK:

Cherry Zhou 说:您好,如果您仅仅使用 SmartRF Studio (意味着在 RX 端不使用轮询) :请问您看到的是由于行走导致的位错误还是您所处的位置?

不好意思 我没明白这句话是什么意思

,

Cherry Zhou:

您好,您先看下英文的能否理解:

 Do you see bit errors due to walking or is it the position you are at?

,

JSON JACK:

当TX  静止的时候是没有错误的, 只有走动时错误才会发生

,

Cherry Zhou:

您好,工程师需要下周再做一些测试再回复您。

走动产生影响很奇怪,因为与射频相比,移动速度非常慢。 工程师还是怀疑一些基本的射频室内效应 (fading, multipath)。 如果是因为这个的话,那就很难解决。

JSON JACK 说:硬件:  外购cc1125模块和自己做的底板

硬件会不会有点问题,请问您使用的天线类型是什么?天线放置的位置,和您走动的位置相比,是怎么样的?

,

JSON JACK:

发射用弹簧天线:

接收用铜棒天线:

硬件模块应该是没问题的,我们买的是成熟的模块厂商产品。人手持发射设备以正常姿势走动,发射天线在人体大腿外侧来回摆动, 走动距离接收天线室内10米以内。接收天线位于天花板,高度3米左右。 

,

Cherry Zhou:

JSON JACK 说:发射天线在人体大腿外侧来回摆动,

请问距离身体有多近? 如果来回摆动并且在摆动时靠近身体,那么当天线靠近身体时,您可能会绕过天线 (或至少导致褪色)。

,

JSON JACK:

1 – 30 cm

,

Cherry Zhou:

您好,距离小于 1 cm 太接近人体,会影响RF的性能。

赞(0)
未经允许不得转载:TI中文支持网 » CC1125: 接收RF数据的同时读取RX FIFO错误问题
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1