微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC1101修改空中数据率250K配置为10K后,通信无法正常进行,急求帮助

CC1101修改空中数据率250K配置为10K后,通信无法正常进行,急求帮助

时间:12-22 整理:3721RD 点击:

你好:

         我使用CC1101在433MHZ通信,直接使用TI公司官网提供样例中的寄存器配置,其中数据率为250K(寄存器配置如下),能正常通信

{

#define SMARTRF_SETTING_MDMCFG4 0x2D

#define SMARTRF_SETTING_MDMCFG3 0x3B

#define SMARTRF_SETTING_DEVIATN 0x47 //默认设置-+47.607KHZ

}

但是目前的通信距离只有20米左右,我需要更远距离的通信,修改了发射功率为C0以及修改空中通信数据率为10K,配置如下:

#define SMARTRF_SETTING_MDMCFG4 0x28 //0xC8
// channel filter bandwidth ChanBW = 26M / (8 * (4 + Chanbw_M) * 2^Chanbw_E) = 101.5k
#define SMARTRF_SETTING_MDMCFG3 0x93
// Drate = (256 + Drate_M) * 2^Drate_E / 2^28 * 26M = 9.99k
#define SMARTRF_SETTING_DEVIATN 0x47//0x34
// frequency deviation = 26M * (8 + DEVIATION_M) * 2^DEVIATION_E / 2^17 = 19k

但是数据率修改后,直接就不能通信了,我是在以前配置的基础上,只修改了上面涉及数据率的部分,现在不知道怎样才能增大通信距离,希望贵公司能给一些建议。

降低数据率确实能使得灵敏度提升一些,但是修改的时候 Deviation, Rx BW 也要做相应的改小。建议用SmartRF Studio 修改射频参数,在TI参考板上验证后再导入到代码中。

通讯距离不够,请问有没有测试过发射功率和接收灵敏度? 同样的设置用TI评估板测试出来如何?

首先非常感谢Nutcracker 您的帮助。我修改速率时,我i也修改了Deviation, RX BW,修改值也在第一次发帖中贴出,10K的驱动已经能够运行,只修改了一个寄存器值,但是现在新的问题也出来了,最先在250K下做的通信,采用了CCA、CS检测,设备能正常通信,但现在采用10K以及将PA增到最大后,一对一通信时,会出现信道判忙的情况,也就是我的节点无法及时加入网络,但一段时间后,节点能加入网络,查看了CCA、RSSI等资料,主要是参考DN505,发现RSSI可用时间与速率、功率都相关,但里面缺少在10K的一些数据,估计还得自己估计,第一次搞这个,确实经验不足。驱动代码主要根据TI公司的简单协议栈示例中移植,所以很多时间延迟等参数多来源于其中。

PA值用频谱分析仪测试过,确实是到最大值了,但灵敏度为测试过,可否告诉灵敏度的测试方法以及灵敏度的配置方法,其实寄存器配置几乎根据SmartRF Studio的来,只有少许几个根据自己的需求手动设置,比如GDO0的配置,以及需不需要CCA检测等。

方法一:请参考 http://www.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=swra370, 但这个方法需要可调衰减器。

方法二: 信号发生器 + SmartRF Studio (人工看收到数据包有没有出错)

方法三: 信号发生器 + CC 芯片设置到 Transparent Serial Mode  把收到的信号输出到一个GPIO PIN, 再输回到信号发生器做比较来计数。

                  信号发生器需要有Packet Count 的功能。

 

尊敬的Nutcracker:

        现在我还在调试空中数据率为10K的CC1101通信,但目前遇到的问题还是CCA检测,我是在原有250K速率稳定版代码上修改的(此版本能稳定通信),但把底层CC1101寄存器配置为10K后,不加CCA检测能正常通信,但加入CCA检测后,经常检测失败,10K的寄存器配置采用的是SmartRF Studio配置的,CCA检测代码用的还是250K的(CCA检测模式为:当前未接收到一个数据包,RSSI低于阈值),查看了RSSI的相关文档,数据率不同,获取可用RSSI的等待时间不同,尽管我修改了等待时间,但依然未解决此问题,希望Nutcracker能给我一些宝贵建议,250k的代码多参考的是TI公司提供的简单协议栈里的代码。

      还有一个严重的问题是,我的接收方式采用的是中断接收,配置IOCFG0=0x06,即当接收到一个数据包后产生中断(我的数据包为超过61BYTE);我周期发送数据,但一段时间后,接收端中断信号无法产生,单步调试未发现FIFO溢出或者死循环的地方,目前通过定时刷新RXFIFO来保持接收,但丢包比较严重。这个问题在250K里也时常出现。如果可以,也希望能得到您的帮助。非常感谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top