2024.5.13 第一次编写
2024.5.17 加入说明sx1262接收情况说明E22-900M22S
目录
前言
个人纪录只做参考。用lora模式做拉距测试,其中RSSI值是必不可少的一个数值,用来评估接收方信号强度
一、SX1278_RSSI_SNR
在sx1278中查阅手册可以知道官方给了两个RSSI数值,一个是packet给出的解释是接收最后一个包的RSSI平均值,所以这个packet只有在接收到RXDONE中断后才能读出有效值。还有一个就是瞬时值,瞬时值无所谓了要在接收的过程中读取,RXDONE产生后就为0。下面附上手册,本次测试用的仍是ebyte家的E32-400M22S,注意EBYTE家官网所提供的文档版本较低并没有细节提及RSSI和SNR,仍需要从SEM官网下载,我用的V7文档。且EBYTE示例程序并没有计算RSSI和SNR,这部分网上有很多实例就不再展出代码。且计算数值跟snr和频率有关系。
其中rssi与接收方的RX_GAIN有关,可知道sx1278有两种模式一种是AGC自动增益控制这个是默认模式,还有一种是LNA要手动控制大小最大值0db
二、SX1262_RSSI_SNR
SX1262实例程序中有RSSI和SNR读取函数,且相比SX1278,sx1262采用指令的形式读取数据。
要注意的是相比于sx1278增加了一个叫做解扩后的RSSI数值,这个是由于LORA采用扩频技术。
剩下两个值都是一样的定义只不过计算方式可能有所差别。
同理RSSI与接收方的前向电路有关,相比于sx1278,sx1262仅有一种模式LNA,在LNA下有两个子模式一个是低功耗一个是高功耗,也就是一个精度小一个大,默认是低功耗。
给出手册中的表述,还有ebyte家的示例程序代码。
int8e_t E22x_GetRssiInst( void )
{
uint8e_t buf[1];
int8e_t rssi = 0;
E22x_ReadCommand( RADIO_GET_RSSIINST, buf, 1 );
rssi = -buf[0] >> 1;
return rssi;
}
void E22x_GetFskPacketStatus( PacketStatus_t *pktStatus )
{
uint8e_t status[3];
E22x_ReadCommand( RADIO_GET_PACKETSTATUS, status, 3 );
pktStatus->Params.Gfsk.RxStatus = status[0];
pktStatus->Params.Gfsk.RssiSync = -status[1] >> 1;
pktStatus->Params.Gfsk.RssiAvg = -status[2] >> 1;
pktStatus->Params.Gfsk.FreqError = 0;
}
void E22x_GetLoraPacketStatus( PacketStatus_t *pktStatus )
{
uint8e_t status[3];
E22x_ReadCommand( RADIO_GET_PACKETSTATUS, status, 3 );
pktStatus->Params.LoRa.RssiPkt = -status[0] >> 1;
( status[1] < 128 ) ? ( pktStatus->Params.LoRa.SnrPkt = status[1] >> 2 ) : ( pktStatus->Params.LoRa.SnrPkt = ( ( status[1] - 256 ) >> 2 ) );
pktStatus->Params.LoRa.SignalRssiPkt = -status[2] >> 1;
pktStatus->Params.LoRa.FreqError = FrequencyError;
}
三、实验测试
默认模式、带宽7.8k、频率434M、发射功率20dbm、前导码20,sx1262省电模式LNA,sx1278AGC.
1.sx1262收
2024.5.17 更正一下实验均采用434MHz,但采用的模块为E22-900M22S其中中心频率为934MHz,其中EBYTE在sx1262基础上加入了滤波器导致一下(434MHz)数据对应不上,再次对934MHz做出进一步实验
一下为934MHz满足E22-900M22S,发射功率20dBm
衰减器dBm | 数据包平均RSSI | 解扩后RSSI |
70 | -54 | -55 |
60 | -42 | -43 |
50 | -32 | -33 |
40 | -22 | -23 |
30 | -10 | -11 |
1)扩频因子12
发送一个字节和发送n个字节都是一样的。
流程图:sx1262/sx1278 发送-------->>>>衰减器--------->>>>>sx1262接收
衰减器dBm | 数据包平均RSSI | 解扩后RSSI |
70 | -82 | -81 |
60 | -75 | -75 |
50 | -63 | -63 |
40 | -52 | -53 |
30 | -44 | -44 |
2)扩频因子7
流程图:sx1262/sx1278 发送-------->>>>衰减器--------->>>>>sx1262接收
衰减器dBm | 数据包平均RSSI | 解扩后RSSI |
70 | -82 | -81 |
60 | -72 | -72 |
50 | -62 | -63 |
40 | -52 | -53 |
30 | -44 | -46 |
20 | -35 | -38 |
2.SX1278收
1)sx1278发送,扩频因子7
流程图:sx1278------>>>>>衰减器------->>>>>>>sx1278接收
衰减器 | 发送1个字节,RSSI最后一包平均值 | 发送4个字节 | 发送6个字节 | 发送8个 | 发送10个 |
70 | -68 | -62 | -60 | -60 | -57 |
60 | -58 | -54 | -50 | -52 | -49 |
50 | -50 | -46 | -42 | -43 | -41、-38 |
40 | -17 | -23 | -25 | -27 | -27 |
30 | -9 | -14 | -17 | -18 | -18 |
20 |
2)sx1262发送,扩频因子7
流程图:sx1262------>>>>>衰减器------->>>>>>>sx1278接收
衰减器 | 发送1个字节 | 3个 | 6个 | 10个 |
70 | -60 | -60 | -53 | -52 |
60 | -50 | -52 | -42 | -40 |
50 | -41 | -40 | -32 | -27 |
40 | -6 | -7、-14 | -15 | -15 |
30 | 2 | -6 | -6 |