CC1101 CCA 小见
最近在做载波感应功能,在网上找了些资料,也参考了下,讲的不是很详细,还是得自己琢磨,当然人家可能已经觉得说的很清楚了,今天终于调通了,还算比较兴奋了,所以把我的经验和大家分享下了,希望给后来者提供点小帮助,当然 如果绝对有问题可以和我联系,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的状态,知道现在是什么状态
这里只做个了绝对值,大家可以做做相对值 正在学习这个,谢谢楼主分享! jh jh 学习了 正在研究中,希望能按照楼主的试验成功…… 学习 还有有些朋友问我怎么找不到关于怎么设置CCA功能的寄存器,原来他们看的是中文datasheet,
当然我也喜欢看中文的,但是有的时候还是硬着头皮看英文,虽然我四级都没过,慢慢看,基本上都能看懂的!
祝大家实验成功 吧 学习 mark 记号 CC1110的路过,可以通过判断是否成功转入TX状态来做CCA,效果不错 好东西 楼主讲的不是CCA吧。好像是CS+RSSI的东西。但是也挺有用的。学习了 学习了,谢谢。 标记 好像真的没说到CCA怎么用呢? 谢谢楼主分享,有空试试。 谢谢分享 有没有用FPGA控制CC1101的呀 正在研究中,学过。 MARK 顶楼主,感谢分享 感谢楼主分享{:smile:} 发现楼主讲错了
14 (0x0E) Carrier sense. High if RSSI level is above threshold. Cleared when entering IDLE mode.
看到后半句了么,要进入IDLE才会置位然后才可以继续监测
页:
[1]