TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2538读取RSSI寄存器值

cc2538我用读取RSSI寄存器的值是不是读取的结果就是RSSI的值呢?为什么每次我读取的值都差不多,距离远近都差不多。我读取的时候是先判断RSSI_VALID是否为1。RSSI_VALID第一次为1后会不会自动清零呢?我设置FRMCTRL0寄存器的值把AutoCrc和AutoAck以及ENERGY_SCAN都设置为0。会不会有影响呢?

Viki Shi:

1.建议用TI的per_test源码测试下,在per_test中的while(!basicRfPacketIsReady());  语句后面添加以下代码,可以实现RSSI读取。

while(!basicRfPacketIsReady());  

flagreg=RSSISTAT;if(flagreg==0x01){

temp_rssireg=RSSI;if(temp_rssireg<128) temp_rssireg=temp_rssireg-halRfGetRssiOffset();else temp_rssireg=(temp_rssireg-256)-halRfGetRssiOffset();

temp_rssireg=0-temp_rssireg;

 }

Viki Shi:

2.AutoCrc和AutoAck这两个参数一般不影响RSSI,但是ENERGY_SCAN会有影响:

There are two ways the radio can update the RSSI register after it has first become valid. If FRMCTRL0.ENERGY_SCAN = 0 (default), the RSSI register contains the latest value available, but if this bit is set to 1, a peak search is performed, and the RSSI register contains the largest value since the energyscan was enabled.你设置为0的操作是正确的。

赞(0)
未经允许不得转载:TI中文支持网 » CC2538读取RSSI寄存器值
分享到: 更多 (0)