LoRa无线通信技术介绍(五)SX127X芯片初始化讲解
创始人
2025-05-28 07:20:49
0

IO初始化

根据上一章LoRa无线通信技术介绍(四)基于STM32的SPI驱动介绍的方式初始化SX127X的通信IO和SPI引脚

LORA芯片复位

调用SX1276Reset以下函数对LORA芯片进行复位,芯片复位后,所有寄存器都恢复成了默认初始状态,需要重新配置


void SX1276Reset( void )
{SX1276SetReset( RADIO_RESET_ON );// Wait 1msuint32_t startTick = GET_TICK_COUNT( );while( ( GET_TICK_COUNT( ) - startTick ) < TICK_RATE_MS( 1 ) );    SX1276SetReset( RADIO_RESET_OFF );// Wait 6msstartTick = GET_TICK_COUNT( );while( ( GET_TICK_COUNT( ) - startTick ) < TICK_RATE_MS( 6 ) );    
}

SX127X芯片LoRa寄存器初始化

SX127X的芯片可工作在LoRa模式或者FSK模式,这里只介绍LORA模式的初始化流程,以下参数的配置必须与对端的通信参数保持一致,不然会导致无线无法通信的情况

void SX1276LoRaSetDefaults( void )
{// REMARK: See SX1276 datasheet for modified default values.SX1276Read( REG_LR_VERSION, &SX1276LR->RegVersion );
}void SX1276LoRaInit( void )
{RFLRState = RFLR_STATE_IDLE;SX1276LoRaSetDefaults( );SX1276ReadBuffer( REG_LR_OPMODE, SX1276Regs + 1, 0x70 - 1 );SX1276LR->RegLna = RFLR_LNA_GAIN_G1;SX1276WriteBuffer( REG_LR_OPMODE, SX1276Regs + 1, 0x70 - 1 );// set the RF settings SX1276LoRaSetRFFrequency( LoRaSettings.RFFrequency );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 );#if( ( MODULE_SX1276RF1IAS == 1 ) || ( MODULE_SX1276RF1KAS == 1 ) )if( LoRaSettings.RFFrequency > 860000000 ){SX1276LoRaSetPAOutput( RFLR_PACONFIG_PASELECT_RFO );SX1276LoRaSetPa20dBm( false );LoRaSettings.Power = 14;SX1276LoRaSetRFPower( LoRaSettings.Power );}else{SX1276LoRaSetPAOutput( RFLR_PACONFIG_PASELECT_PABOOST );SX1276LoRaSetPa20dBm( true );LoRaSettings.Power = 20;SX1276LoRaSetRFPower( LoRaSettings.Power );} 
#elif( MODULE_SX1276RF1JAS == 1 )if( LoRaSettings.RFFrequency > 860000000 ){SX1276LoRaSetPAOutput( RFLR_PACONFIG_PASELECT_PABOOST );SX1276LoRaSetPa20dBm( true );LoRaSettings.Power = 20;SX1276LoRaSetRFPower( LoRaSettings.Power );}else{SX1276LoRaSetPAOutput( RFLR_PACONFIG_PASELECT_RFO );SX1276LoRaSetPa20dBm( false );LoRaSettings.Power = 14;SX1276LoRaSetRFPower( LoRaSettings.Power );} 
#endifSX1276LoRaSetOpMode( RFLR_OPMODE_STANDBY );
}

以上代码中

SX1276LoRaSetRFFrequency:是设置芯片的通信频率,

SX1276LoRaSetSpreadingFactor:设置LORA的扩频因子SF(7~12)

SX1276LoRaSetErrorCoding:设置CR编码率(1~4)

SX1276LoRaSetSignalBandwidth:设置LORA的信号带宽

[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]

SX1276LoRaSetImplicitHeaderOn:设置数据帧的隐式或显示功能,对于可变数据大小的应用,应当设置为0

SX1276LoRaSetPayloadLength :发送模式下,发送数据的长度;接收模式下,接收的最大数据长度

SX1276LoRaSetLowDatarateOptimize:对于速率比较低的情况,启动该模式,减少丢帧的概率

以上参数的配置,在无线收发模式下参数应该完全保持一致,任何一项参数不一致都会导致通信失败的情况。

参数初始化完成后,应调用LoRaSetOpMode( RFLR_OPMODE_STANDBY )将芯片设置为STANDBY模式,此时芯片不能接收和发送数据。

相关内容

热门资讯

基金净值涨68%,仅15%基民... 本文来源:时代周报 作者:黄宇昆近日,公募基金中报陆续披露,截至发稿时,已有同泰基金、中泰证券资管、...
胜宏科技上半年净利润同比增长3... 国内PCB龙头胜宏科技交出一份亮眼的中期成绩单,营收与利润双双实现两位数高增长,并完成赴港上市,资产...
伊朗阿曼外交斡旋初现成效,霍尔... 霍尔木兹海峡的石油流量正在悄然回升,外交斡旋带来的乐观情绪正在侵蚀此前因战争风险而积累的油价溢价。布...
锂价回暖叠加产能释放,天齐锂业... 锂价从底部区间强势修复、叠加产能持续释放,天齐锂业上半年业绩迎来爆发。2026年上半年,公司实现营业...
美债投资者该关注法债了!策略师... 法国预算危机再度升温,主权债务风险正在成为市场关注焦点。随着法国国债利差持续走阔,投资者对其财政可持...
海尔、苏泊尔、老板电器上半年量... 8月27日晚,海尔智家(600690.SH)、苏泊尔(002032.SZ)、老板电器(002508....
万科上半年营收701.7亿元,... 8月27日,万科企业股份有限公司(万科A,000002.SZ)发布2026年半年度报告。上半年,万科...
谁会是下一个40倍牛股? 推荐... 出品 | 妙投APP作者 | 张博 段明珠编辑 | 丁萍头图 | AI生成在2025年以来由AI驱动...
"增收不增利&quo... 8月28日,江苏苏讯新材料科技股份有限公司(下称"苏讯新材")将在北交所上会接受审议。这家国内镀铬薄...
“小学要求新生填报父母学历职务... 澎湃新闻记者 庄岸 实习生 胡丹 就“新生入学要求填写父母学历、职务和提供照片”,浙江省临海市教育局...