微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > 急求解CC1101信道干扰问题

急求解CC1101信道干扰问题

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

小弟在测试基于CC1101在434频段的系统,测试发现6信道的传感器节点收发数据时,2信道的节点会产生中断(中断led闪烁),测试时只开启了6信道和2信道的节点,6信道节点是组成的无线网络,2信道只开启节点。通过频谱分析仪测试信道频率都设置正确,我的频率寄存器配置为:#define SMARTRF_SETTING_FREQ2      0x10 #define SMARTRF_SETTING_FREQ1     0xB1#define SMARTRF_SETTING_FREQ0      0x3B,信道间隔为199.9K。目前需要大规模组网,这个问题会严重干扰我们的进度,希望各位前辈能帮助给些意见,不甚感激!

听起来很奇怪,不太可能。 你用TI的参考板试试。把 TI 参考板用SmartRF 连接,设置到你的6信道,所有设置都要跟你的相同,看会不会收到包。可以预见的是肯定不会的。所以要么是射频设置有哪里出错了,要么是你的中断产生机制有问题。

另外请问大规模组网是什么应用?

非常抱歉,目前暂没有TI参考板,射频设置是严格按照Smart RF配置的,除了选择CCA、GDO0、数据包长度用手动配置的以外。大规模组网是项目需求,由于特殊性,不能详解,非常抱歉。这也是我自己疑惑的,信道之间相差几百K,每当6信道协调器开启,2信道的节点就会产生中断,导致2信道通信量大增,严重影响网络通信。

 

一下是我的寄存器配置,今天还检测发现偶数信道间,如8、6、4对2信道都有干扰,抓包发现数据还能被接收,实在困惑不已

#define SMARTRF_SETTING_FSCTRL1     0x08////0x06

 #define SMARTRF_SETTING_FSCTRL0    0x00

#define SMARTRF_SETTING_MDMCFG4    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    0x34 // frequency deviation = 26M * (8 + DEVIATION_M) * 2^DEVIATION_E / 2^17 = 19k

#define SMARTRF_SETTING_MDMCFG2    0x93//0x13

#define SMARTRF_SETTING_MDMCFG1    0x22

 #define SMARTRF_SETTING_MDMCFG0    0xF8

#define SMARTRF_SETTING_CHANNR     0x00

 #define SMARTRF_SETTING_FREND1     0x56 //

 #define SMARTRF_SETTING_FREND0     0x10

 #define SMARTRF_SETTING_MCSM1      0x3c

 #define SMARTRF_SETTING_MCSM0      0x18

 #define SMARTRF_SETTING_FOCCFG     0x16//0x36 

 #define SMARTRF_SETTING_BSCFG      0x6C  

 #define SMARTRF_SETTING_AGCCTRL2   0x43  

#define SMARTRF_SETTING_AGCCTRL1  0x40

 #define SMARTRF_SETTING_AGCCTRL0   0x91

 #define SMARTRF_SETTING_FSCAL3     0xE9

#define SMARTRF_SETTING_FSCAL2      0x2A

#define SMARTRF_SETTING_FSCAL1     0x00//0x02

#define SMARTRF_SETTING_FSCAL0     0x1F

#define SMARTRF_SETTING_FSTEST     0x59         

#define SMARTRF_SETTING_TEST2     0x81// 0x88    

  #define SMARTRF_SETTING_TEST1      0x35//0x31    

 #define SMARTRF_SETTING_TEST0      0x09//0x0B    

   #define SMARTRF_SETTING_FIFOTHR    0x07//      

#define SMARTRF_SETTING_IOCFG2     0x29    

#define SMARTRF_SETTING_IOCFG0D    0x06      

 #define SMARTRF_SETTING_PKTCTRL1   0x04    

 #define SMARTRF_SETTING_PKTCTRL0   0x05   

  #define SMARTRF_SETTING_ADDR       0x00    

#define SMARTRF_SETTING_PKTLEN     0xFF

尊敬的TI team:

       目前还检测出诡异的问题,奇数信道节点会互相窜扰,偶数信道同样也会,但奇数信道和偶数信道则不会互相窜扰。希望能得到宝贵的意见,非常感谢!

Songxu,

您好!

为了便于我们更快的帮您解决问题,能偶提供一个能够复现您问题的demo project给我们,您可以把跟您应用相关的都删掉,越简单越好。我们会在您的project的基础上做测试并尽快给您回复。 谢谢!

Shelford Zhu,

                    您好!

                    首先,非常感谢您的帮助。由于我们是在自助开发的协议栈下使用的CC1101,由于我权限有限,不能直接将项目的代码复现给你,实在抱歉。但目前我能提供CC1101寄存器配置部分,我们的CC1101驱动参考SimpliciTI-IAR在STM32上实现的,SPI操作以及数据包收发都与SimpliciTI-IAR一样。前期,我们采用的是250K数据率的配置,测试暂未发现信道互窜问题,后期为了增大通信距离,采用SmartRF 7配置了10K速率的驱动,但后面组网测试发现了信道互串的问题。我的10K速率CC1101寄存器配置为:

#define SMARTRF_SETTING_FSCTRL1     0x08////0x06

 #define SMARTRF_SETTING_FSCTRL0    0x00

#define SMARTRF_SETTING_MDMCFG4    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    0x34 // frequency deviation = 26M * (8 + DEVIATION_M) * 2^DEVIATION_E / 2^17 = 19k

#define SMARTRF_SETTING_MDMCFG2    0x93//0x13

#define SMARTRF_SETTING_MDMCFG1    0x22

 #define SMARTRF_SETTING_MDMCFG0    0xF8

#define SMARTRF_SETTING_CHANNR     0x00

 #define SMARTRF_SETTING_FREND1     0x56 //

 #define SMARTRF_SETTING_FREND0     0x10

 #define SMARTRF_SETTING_MCSM1      0x3c

 #define SMARTRF_SETTING_MCSM0      0x18

 #define SMARTRF_SETTING_FOCCFG     0x16//0x36 

 #define SMARTRF_SETTING_BSCFG      0x6C  

 #define SMARTRF_SETTING_AGCCTRL2   0x43  

#define SMARTRF_SETTING_AGCCTRL1  0x40

 #define SMARTRF_SETTING_AGCCTRL0   0x91

 #define SMARTRF_SETTING_FSCAL3     0xE9

#define SMARTRF_SETTING_FSCAL2      0x2A

#define SMARTRF_SETTING_FSCAL1     0x00//0x02

#define SMARTRF_SETTING_FSCAL0     0x1F

#define SMARTRF_SETTING_FSTEST     0x59         

#define SMARTRF_SETTING_TEST2     0x81// 0x88    

  #define SMARTRF_SETTING_TEST1      0x35//0x31    

 #define SMARTRF_SETTING_TEST0      0x09//0x0B    

   #define SMARTRF_SETTING_FIFOTHR    0x07//      

#define SMARTRF_SETTING_IOCFG2     0x29    

#define SMARTRF_SETTING_IOCFG0D    0x06      

 #define SMARTRF_SETTING_PKTCTRL1   0x04    

 #define SMARTRF_SETTING_PKTCTRL0   0x05   

  #define SMARTRF_SETTING_ADDR       0x00    

#define SMARTRF_SETTING_PKTLEN     0xFF

还可以用 Packet Sniffer 抓包看看。

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

网站地图

Top