在做一个实验,具体想法是:在节点中设置RSSI门限.然后其中某些节点向其他节点发出消息,其他节点收到后,把测得的RSSI值发给中心节点.因为实验的场地面积很小,为避免采集数据过多,故设一个门限,只有RSSI值高于这个门限的,才会接收到.<br /><br />看了手册里,关于门限设置的,有AGCCTRL寄存器.<br />手册里有一个绝对门限的公式<br />THRrssi=MAGN_TARGET+CARRIER_SENSE_ABS_THR-GAINmax<br />同时手册上有个表(P32,表27),为当数据率250kbps,MAGN_TARGET设为011(33dB)时,AGCCTRL2其他五位的不同组合对应的不同增益值,里面的值都是负数,我把它理解为式中的-GAINmax项,不知道对不对.<br /><br />然后我的程序中,已经使用了GDO0和GDO2上的信号用于同步字收发检测和串行时钟,故我将IOCFG1设为0x09(当RSSI低于门限时为高电平),在进行接收时,程序中先检测GDO1是否为高,如果为高就不会接收.以达到门限作用.<br /><br />可是我试了一下,在门限设为-57dBm时,走了很远还能接收(参看了一篇论文,里面相同门限下的距离很短的).<br /><br />PS:这个-57dBm,我是这样计算的:MAGN_TARGET设为011(33dB),然后参照手册上的表,将另5位设为01000(-90dBm),CARRIER_SENSE_ABS_THR=0000(等于MAGN_TARGET).<br />然后按照公式THR=33+0-90=-57<br /><br />不知道这样算是否正确?<br />还有,利用GDOx上的信号来判断门限是否到达的方法是否正确?<br /><br />请牛人指点!呵呵,先谢过啦.
|