LoRa SX1276 参数调试测试


前言

  SX1276 LORA通信,按照默认的设置可以正常使用。存在问题是,但设置扩频因子或带宽组合成较低的数据传输速率时,两个节点之间无法通信。

一、测试数据

  室内近距离通信成功率测试结果表:

SF BW 成功率
7 125kHz 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
8 125kHz 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
9 125kHz 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
10 125kHz 100% 90% 98% 88% 94% 98% 94% 92% 96% 96% 92% 92%
11 125kHz 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
12 125kHz 发射机未正常发送数据

相关测试数据参考https://blog.csdn.net/zhouxiangjun11211/article/details/110110297

  • 其他条件不变,当SF=10时,近距离通信有丢包现象;
  • 其他条件不变,当SF=12时,发射机未正常发送数据,设置SF=11,BW=6时,发射机同样未正常发送数据;

二、LORA波形参数设置

  • 波形参数,代码接口
tLoRaSettings LoRaSettings =
{
    
    
	0,                // Setting change
    434 ,             // RFFrequency
    20,               // Power
    7,                // SignalBw [0: 7.8kHz, 1: 10.4 kHz, 2: 15.6 kHz, 3: 20.8 kHz, 4: 31.2 kHz,
                      // 5: 41.6 kHz, 6: 62.5 kHz, 7: 125 kHz, 8: 250 kHz, 9: 500 kHz, other: Reserved]
    7,                // SpreadingFactor [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096  chips]
    2,                // ErrorCoding [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8]
    true,             // CrcOn [0: OFF, 1: ON]
    false,            // ImplicitHeaderOn [0: OFF, 1: ON]
    1,                // RxSingleOn [0: Continuous, 1 Single]
    0,                // FreqHopOn [0: OFF, 1: ON]
    4,                // HopPeriod Hops every frequency hopping period symbols
    700,              // TxPacketTimeout
    100,              // RxPacketTimeout :8=100ms    7:80ms
    128,              // PayloadLength (used for implicit header mode)
};
  • 对应波形参数设置表格:
参数 描述
频率 434 频率设置434MHz
功率 20 SX1276输出功率20dBm
信号带宽 7 对应信号带宽125kHz
扩频因子 7 扩频因子SF=7
编码率 2 编码率4/6
校验位 ture 使能校验位
隐式header false 设置为显示header
单一接收 1 单一接收模式
跳频使能 0 关闭跳频功能
发射延时
接收延时
  • 接收延时设置太小会导致无法正常接收数据;
  • 注意接收延时的设置与符号传输时间的对应关系,符号传输时间与接收延时成正比;
  • SF=7,接收延时设置:1600;

三、相关参数说明

1. LORA相关设置

设置 描述
睡眠模式 低功耗模式,该模式下只能通过SPI和配置寄存器访问,LoRa FIFO不能访问。这是唯一允许FSK/OOK模式与LoRa模式切换的操作模式
待机模式 晶体振荡器和LoRa基带模式被开启,而射频部分和PLL则被关闭
RX连续模式 SX1276将打开所有所需模块,处理所有接收到的数据,直到客户请求变更操作模式
RX单一模式 SX1276将打开所有所需模块,在接收到有效数据包前保持此状态、随后切换回待机模式
CAD模式 在CAD模式下,设备将检测已知信道,已检测LoRa前导码信号
  • 单一接收模式:调制解调器在一段时间内搜索前导码,如果在一定时间段内没有检查到前导码,则触发RxTimeout中断,并回到待机模式;

  • 前导码检索时间的长度,通过“RegSymb Timeout”寄存器修改;

  • 连续接收模式:调制解调器在信道内连续搜索扫描前导码,当检查到前导码后,调制解调器继续接收,直到数据包接收完,继续等待下一个前导码。

2. 接收模式的使用场景

在这里插入图片描述

  • 单一接收模式通常应用在电池供电或对功耗要求敏感的系统中;
  • 连续工作模式通常应用于对无低功耗要求的通信系统中;

四、其他参数初始化

void SX1276LoRaInit( void )
{
    
    
    RFLRState = RFLR_STATE_IDLE;

    SX1276LoRaSetDefaults( );
    
	// We first load the device register structure with the default value (read from the device)
    SX1276ReadBuffer( REG_LR_OPMODE, SX1276Regs + 1, 0x70 - 1 );
    
//	Set the device in Sleep Mode
//  SX1276LoRaSetOpMode( RFLR_OPMODE_SLEEP );
	
    SX1276LR->RegLna = RFLR_LNA_GAIN_G1;
	SX1276LR->RegLna = RFLR_LNA_BOOST_LF_BOOST;		
	
	
    SX1276WriteBuffer( REG_LR_OPMODE, SX1276Regs + 1, 0x70 - 1 );

    // set the RF settings 
    SX1276LoRaSetRFFrequency( LoRaSettings.RFFrequency );         //set frequency
    SX1276LoRaSetSpreadingFactor( LoRaSettings.SpreadingFactor ); // SF6 only operates in implicit header mode.
    SX1276LoRaSetErrorCoding( LoRaSettings.ErrorCoding );
    SX1276LoRaSetPacketCrcOn( LoRaSettings.CrcOn );
    SX1276LoRaSetSignalBandwidth( LoRaSettings.SignalBw );

    SX1276LoRaSetImplicitHeaderOn( LoRaSettings.ImplicitHeaderOn );
    SX1276LoRaSetSymbTimeout( 0x3FF );
    SX1276LoRaSetPayloadLength( LoRaSettings.PayloadLength );
    SX1276LoRaSetLowDatarateOptimize( true );
    
    SX1276LoRaSetPAOutput( RFLR_PACONFIG_PASELECT_PABOOST ); //Ñ¡Ôñ PA_BOOST ¹Ü½ÅÊä³öÐźÅ
    SX1276LoRaSetPa20dBm( false );  //×î´óÊä³ö¹¦ÂÊ
    LoRaSettings.Power = 4;
    SX1276LoRaSetRFPower( LoRaSettings.Power );
    }
	
	// Set the device in Standby Mode
    SX1276LoRaSetOpMode( RFLR_OPMODE_STANDBY );
}

猜你喜欢

转载自blog.csdn.net/zhouxiangjun11211/article/details/111195692
今日推荐