|
最近在做载波感应功能,在网上找了些资料,也参考了下,讲的不是很详细,还是得自己琢磨,当然人家可能已经觉得说的很清楚了,今天终于调通了,还算比较兴奋了,所以把我的经验和大家分享下了,希望给后来者提供点小帮助,当然 如果绝对有问题可以和我联系,QQ:492031062(著名“CC1101”),那我是相当的高兴
一、CS功能验证
CC1100有载波监听(Carrier Sensor)的功能,可以用来检测空气中
是否有相同频率的载波存在。其验证过程如下:
1、开启CS功能
a、设置IOCFG2.GDO0_CFG=0x0E,此时GDO0的功能为“Carrier
sense.High if RSSI level is above threshold.”,即当空
气中相同频率的信号强度大于一定值时,GDO2被置高。
CS标记可被设置为:
a、CS在RSSI高于控制绝对门限时被声明,在RSSI低于同
一门限时取消声明
b、CS在RSSI从一个RSSI实例到另一个实例增加了控制数
目的db数时被声明,在RSSI 降低同样数目db时被取消
声明。
在此选择CS Absolute Threshold,即RSSI门限为一绝对值而非相
对值。设置AGCCTRL1为0x40。
2、设置RSSI门限
根据CC1101 datasheet P39页介绍,RSSI绝对门限和以下四个参
数有关:
AGCCTRL2.MAX_LNA_GAIN
AGCCTRL2.MAX_DVGA_GAIN
AGCCTRL2.MAGN_TARGET
AGCCTRL1.CARRIER_SENSE_ABS_THR
实际测试经验:
若RSSI门限太小,容易将空气中的干扰信号错认
为载波信号,此时可以相应的增大AGCCTRL2.MAX_
LNA_GAIN 和AGCCTRL2.MAX_DVGA_GAIN的值
3、让单片机一直检测GDO0的电平,并把GDO0脚的电平在LED上反应
出来
二、 基本配置完了,就可以做事:
1、让一台单片机不断的发送载波信号--》先清空TXFIFO,然后发
送命令滤波STX,因为TXFIFO中没有数据,那么CC1101不断的发
送前导字符,这样空气中就一直存在信号,这就是我们需要的
测试环境
2、让另外一台单片机来检测空气是否存在信号,如果有。。。。
否则没有......
如果发送载波的电源一直开着,那么GDO0脚就一直是高电平,
如果将发送载波的电源关闭掉,那么GDO0脚的电平为低
当然你也读取cc1101_MARCSTATE的状态,知道现在是什么状态
这里只做个了绝对值,大家可以做做相对值 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|