搜索
查看: 3810|回复: 0

CC1101之RSSI计算及测试结果

[复制链接]

181

主题

362

帖子

571

积分

高级会员

Rank: 4

积分
571
发表于 2015-8-20 13:26:37 | 显示全部楼层 |阅读模式

1RSSI:所选信道的信号功率电平的估值,该值与RX通道的电流增益设置或所测的信号电平有关。
RSSI状态寄存器读出的是2的补数,可以这样转换成绝对功率(dBm):
1)读RSSI状态寄存器;
2)把数从十六进制转换成十进制RSSI_dec
3)如果结果大于等于128,则RSSI_dBm=(RSSI_dec-256)/2-RSSI_offset
4)否则,如果RSSI_dec<128,则RSSI_dBm=(RSSI_dec)/2-RSSI_offset
RSSI_offset典型值如表所示:
11.png
CC1101datasheet中给的如下:
22.png
2
CC1100能读出RSSI的值,我是否可以将没有通讯时的RSSI值作为噪声,这样SNR=收到同步字后的RSSI/没有通讯时的RSSI值。问一下各位大侠,这是不是可行的?
In RX mode, the RSSI value can be readcontinuously from the RSSI status register untilthe demodulator detects a syncword (when sync word detection is enabled). At that point the RSSI readoutvalue is frozen until the next time the chip enters the RX state. The RSSI valueis in dB with½dB resolution.
看看这段话 只有在接受的时候RSSI才有用啊  不然就冻结了 我觉得直接用通讯时候的RSSI作为SNR就可以了
Hi.
I am using a CC1101 transciever chip with the SmartRF04board. I want to transmit packets and then when they are received, I find theRSSI value.
I set PKTCTRL1.APPEND_STATUS = 1 so thatwhen a packet is received, I can get the RSSI value which is appended to thepacket.
My problem is that I do not know how toobtain the value once the packet is received. I am using
halRfReceivePacket(rxBuffer, &length).
This function only returns a CRC_OK bit.
How can the RSSI value be obtained from thepacket?
Thanks
Hi Simon,
The RSSI value should be appended at theend of the data packet so it should end up in your rxBuffer, as the 2nd to lastbyte of the packet, with the last byte being the LQI + CRC_OK bit. Note thatthe RSSI has to be converted from 2s complement to dBm using the equation inthe datasheet. See page 43 of the datasheet.
Russ
(4)staute中的值(其中发送功率为10dBm,10dbm换算成mw就是10mw
本次试验说明
RSSI_dec:调用接收函数开始从寄存器RSSI0x34)中读取,RSSI_dBm为相应的分贝豪瓦
RSSI_dec1:从数据包中的末尾读取,RSSI_dBm1为相应的分贝豪瓦
RSSI_dec2:调用接收函数结束后从寄存器RSSI0x34)中读取,RSSI_dBm1为相应的分贝豪瓦
//*****************************************************************************************
//函数名:CalculateRssi(uint16RSSI_dec)
//输入:
//输出:
//功能描述:RSSI2的补码,使之转化成16进制数
//*****************************************************************************************
int16CalculateRssi(uint16 RSSI_dec)
{      
      int16temp;
      if(RSSI_dec>=128)
       {
              temp=(int16)((int16)(RSSI_dec-256)/2)-RSSI_offset;
       }
       else
       {
              temp=(RSSI_dec/2)-RSSI_offset;
       }/**/
       return temp;
}
1)2,有遮挡
33.png
2)2,无遮挡
44.png
3)0.2,无遮挡
55.png
4)超近距离,无遮挡
66.png
5)门外柜子半开
77.png
6)门外柜子闭
88.png

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|RF技术社区

GMT+8, 2024-9-12 11:15 , Processed in 0.081535 second(s), 9 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表