用STM32WL做LoRaWAN节点,SX1262射频芯片,遇到入网失败的问题。LoRaWAN需要Join过程,我配置的是OTAA模式,但每次发送Join Request后,网关一直不响应。
首先,检查频段:我用的CN470频段,频率470MHz,扩频因子SF7,带宽125kHz,这些是合规的。但LoRaWAN的信道掩码需要配置,CN470有96个上行信道,Join只能用前8个,我一开始没设信道掩码,网关可能没监听那个频率。
另外,DevEUI、AppEUI、AppKey要正确,我用的IEEE的MAC地址作为DevEUI,但顺序要注意,是小端还是大端。我一开始填反了,网关验证不通过。
还有,LoRaWAN的DR(Data Rate)和功率要匹配,我设的DR0(SF12),功率14dBm,但在城市环境可能信号太弱,网关收不到。后来改DR2(SF10),成功率提高了。
SX1262的芯片配置在STM32WL里是通过Radio Driver,要选对芯片型号,我选的是SX1262,但一开始选成了SX1276,导致射频参数不对。SX1262支持更高的发射功率,但电流也更大,要注意电源设计。
调试时,用LoRaWAN的Class A模式,发送完上行后要等两个接收窗口(RX1和RX2),RX1默认是上行后1秒,RX2是固定频率869.525MHz(EU868),但CN470的RX2是505.3MHz。我一开始没改RX2频率,导致下行收不到。
现在入网成功了,能发数据到服务器。希望ST能提供LoRaWAN的AT指令示例,现在用代码写太复杂,AT指令更适合快速原型。
|
|