cc2530 的rssi值为正了?
时间:10-02
整理:3721RD
点击:
一般rssi值0到-97 是个负数。并且rssi值是终端接收到协调的数据后,从rssi寄存器读出数值再减去偏移量 -73得到的。 我现在我做的是协调器收到终端数据后,读协调器rssi寄存器再减去偏移量73得到的值。现象是当终端距离协调器很近时候,这个rssi就会等于8,理论最大是0。 问题: 1。我做的是协调的rssi值,(正常都是计算终端的rssi再发给协调器,我实验查看过终端计算出来的rssi值是正确的,很接近0,意思是离得很近信号很好)。协调的rssi会比终端的值高吗甚至为正数? 2。偏移量-73是如何的来的呢?跟我的问题有关系吗? |
你是从协议栈里面得到RSSI值的吗,如果是的协议栈里面已经经过OFFSET处理的。
如果你是从RSSI的寄存器里面读出来的,那么需要做OFFSET处理,是减去73dBm,具体你可以参考CC2530的数据手册上有说明。
我在这里使用的,void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData,int8 rssi)
当然是减去73之后的数值了。
rssi值是接收到一条数据后得到的吧。我现在的rssi是在协调器这里读出来了,发现端末离协调器很近时候rssi会为正值。(例如0x08)
我在端末调试过,得到的rssi值此时是正常的,很接近0xff。
通信的双方得到的rssi可能不一样吗?或者说在协调器得到的rssi值由误差了呢?正常rssi值是以哪里读出来的为准呢?