CC1101 监听空气中载波信号强度(CCA)功能调试通过

 
  阅读本文章前,请先认真阅读数据手册,同时查看我转载的CCA(1)和CCA(2)两篇文章进行扫盲。
最近一直在用CC1101这款无线芯片,今天把CCA功能调试成功了,特来分享一下。我的思路是使能CC1101为CCA功能,GDO2引脚配置为输出载波感应电平,设置好感应电平阈值。现在监听空气中的载波信号强度,如果接收信号强度高于门限时,GDO2为高电平;当接收信号强度低于门限时,GDO2为低电平。


CCA初始化函数如下:
void  CC1101CCA( void )//配置为载波监听功能
{
   CC1101WriteReg(CC1101_IOCFG2,0x0E);//GDO2引脚输出载波感应电平,如果RSSI级别在门限之上为高电平
   CC1101WriteReg(CC1101_MCSM1,0x3F);//接受信号强度低于门限值且当前未接收报文则信道空闲,让TX和RX结束后,芯片都保持在RX状态。        
   CC1101WriteReg(CC1101_AGCCTRL1,0x40);//低噪声放大器增益先减小,载波监听相对阈值禁用,载波监听绝对阈值由MAGN_TARGET设置
   CC1101WriteReg(CC1101_AGCCTRL2,0x07);//42dB      
}




实验源程序如下:
void main( void )
{
GPIO_Init( );//IO口和晶振初始化
SPI_Init( ); //SPI配置初始化
CC1101Init( );  //CC1101初始化
CC1101CCA( );  //CC1101 CCA配置
    while( 1 )     
    { 
    CC1101SetTRMode( RX_MODE ); //CC1101设置为接收模式
__delay_ms(1);//设置为接收模式后需要稍微等待一下,CC1101才能检测空气中的载波信号
if(GDO2==1)//检测到空气中有载波信号
{
//让LED状态取反


}   
__delay_ms(50);//延时一段时间,以便人眼能看到LED闪烁
     CC1101WriteCmd( CC1101_SFRX );//每次接收完数据后,都需要清空RX FIFO,以便下次接收

    }



实验结果:让另一端的CC1101周期性的发送数据,现在接收端的GDO2会周期性的出现高电平,因此LED灯不停的闪烁。
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值