本文介绍了意法半导体 Nucleo-WL55JC 开发板的通过 AT 指令实现 LoRa 调试的项目设计。
测试
打开官方 Demo 例程 LoRaWAN_AT_Slave,
- 路径 STM32Cube_FW_WL_V1.3.0\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_AT_Slave\
- 该工程的功能是通过串口发送 AT 指令配置 LoRa 从机。
根据前一篇关于工程测试的介绍,编译和上传 LoRaWAN_AT_Slave 工程至开发板。
硬件连接
Micro 数据线连接开发板 ST-LINK 和电脑;
AT指令
打开串口调试助手,波特率 9600 bps
AT
发送 AT 回车换行,回复 OK ,表明实现通信。
ATZ
发送 ATZ 指令,实现芯片复位,并串口打印初始化信息
AT?
发送 AT? 反馈相应的帮助信息 AT? to list all available functions
AT+<CMD>? : Helpon<CMD>
AT+<CMD> : Run<CMD>
AT+<CMD>=<value> : Setthevalue
AT+<CMD>=? : Getthevalue
AT+VERGettheFWversion
AT+VL=<Level><CR>. SettheVerboseLevel=[0:Off .. 3:High]
AT+LTIMEGetthelocaltimeinUTCformat
ATZTrigaMCUreset
AT+RFS: RestoreEEPROMFactorySettings
AT+CS: StorecurrentcontexttoEEPROM
AT+APPEUI=<XX:XX:XX:XX:XX:XX:XX:XX><CR>. GetorSettheAppEui
AT+NWKKEY=<XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX><CR>: GetorSettheNetworkKey
AT+APPKEY=<XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX><CR>: GetorSettheApplicationKey
AT+NWKSKEY=<XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX><CR>: GetorSettheNetworkSessionKey
AT+APPSKEY=<XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX><CR>: GetorSettheApplicationSessionKey
AT+DADDR=<XXXXXXXX><CR>. GetorSettheDeviceaddress
AT+DEUI=<XX:XX:XX:XX:XX:XX:XX:XX><CR>. GetorSettheDeviceEUI
AT+NWKID=<NwkID><CR>. GetorSettheNetworkID=[0..127]
AT+JOIN=<Mode><CR>. JoinnetworkwithMode=[0:ABP, 1:OTAA]
AT+LINKC. PiggybackaLinkCheckRequesttothenextuplink
AT+SEND=<Port>:<Ack>:<Payload><CR>. SendbinarydatawiththeapplicationPort=[1..199] andAck=[0:unconfirmed, 1:confirmed]
AT+ADR=<ADR><CR>. GetorSettheAdaptiveDataRatesettingADR=[0:off, 1:on]
AT+DR=<DataRate><CR>. GetorSettheTxDataRate=[0..7]
AT+BAND=<BandID><CR>. GetorSettheActiveRegionBandID=[0:AS923, 1:AU915, 2:CN470, 3:CN779, 4:EU433, 5:EU868, 6:KR920, 7:IN865, 8:US915, 9:RU864]
AT+CLASS=<Class><CR>. GetorSettheDeviceClass=[A, B, C]
AT+DCS=<DutyCycle><CR>. GetorSettheETSIDutyCycle=[0:disable, 1:enable] -Onlyfortesting
AT+JN1DL=<Delay><CR>. GetorSettheJoinAcceptDelaybetweentheendoftheTxandtheJoinRxWindow1inms
AT+JN2DL=<Delay><CR>. GetorSettheJoinAcceptDelaybetweentheendoftheTxandtheJoinRxWindow2inms
AT+RX1DL=<Delay><CR>. GetorSetthedelaybetweentheendoftheTxandtheRxWindow1inms
AT+RX2DL=<Delay><CR>. GetorSetthedelaybetweentheendoftheTxandtheRxWindow2inms
AT+RX2DR=<DataRate><CR>. GetorSettheRx2windowDataRate=[0..7]
AT+RX2FQ=<Freq><CR>. GetorSettheRx2windowFreqinHz
AT+TXP=<Power><CR>. GetorSettheTransmitPower=[0..15](validrangeaccordingtoregion)
AT+PGSLOT=<Period><CR>. SetorGettheunicastpingslotPeriod=[0:1s .. 7:128s](=2^Period)
AT+TTONEStartsRFTonetest
AT+TRSSIStartsRFRSSItonetest
AT+TCONF=<FreqinHz>:<PowerindBm>:<LoraBandwidth<0to6>, orRxFSKBandwidthinHz>:<LoraSForFSKdatarate (bps)>:<CodingRate4/5, 4/6, 4/7, 4/8>:
<Lna>:<PABoost>:<Modulation0:FSK, 1:Lora, 2:BPSK, 3:MSK>:<PayloadLeninBytes>:<FskDeviationinHz>:<LowDrOpt0:off, 1:on, 2:Auto>:
<BTproduct: 0:noGaussianFilterApplied, 1:BT=0,3, 2:BT=0,5, 3:BT=0,7, 4:BT=1><CR>. ConfigureRFtest
AT+TCONF=868000000:14:50000:50000:4/5:0:0:0:16:25000:2:3
AT+TCONF=868000000:14:10000:10000:4/5:0:0:3:16:25000:2:3
AT+TCONF=868000000:14:4:12:4/5:0:0:1:16:25000:2:3
AT+TTX=<PacketNb><CR>. StartsRFTxtest: Nbofpacketssent
AT+TRX=<PacketNb><CR>. StartsRFRxtest: Nbofpacketsexpected
AT+TTH=<Fstart>,<Fstop>,<Fdelta>,<PacketNb><CR>. StartsRFTxhoppingtestfromFstarttoFstopinHzorMHz, FdeltainHz
AT+TOFFStopson-goingRFtest
AT+CERTIF=<Mode><CR>. SetthemoduleinLoraWanCertificationwithJoinMode=[0:ABP, 1:OTAA]
AT+BATGetthebatteryLevelinmV
OK 复制代码
效果
发送 AT+VER? 回复
详见 AT 指令定义文件 lore_at.h ,路径 Application/User/LoRaWAN/App/
#define AT_VER "+VER"
#define AT_VL "+VL"
#define AT_LTIME "+LTIME"
#define AT_RESET "Z"
#define AT_RFS "+RFS"
#define AT_CS "+CS"
#define AT_JOINEUI "+APPEUI"
#define AT_NWKKEY "+NWKKEY"
#define AT_APPKEY "+APPKEY"
#define AT_NWKSKEY "+NWKSKEY"
#define AT_APPSKEY "+APPSKEY"
#define AT_DADDR "+DADDR"
#define AT_DEUI "+DEUI"
#define AT_NWKID "+NWKID"
#define AT_JOIN "+JOIN"
#define AT_LINKC "+LINKC"
#define AT_SEND "+SEND"
#define AT_ADR "+ADR"
#define AT_DR "+DR"
#define AT_BAND "+BAND"
#define AT_CLASS "+CLASS"
#define AT_DCS "+DCS"
#define AT_JN1DL "+JN1DL"
#define AT_JN2DL "+JN2DL"
#define AT_RX1DL "+RX1DL"
#define AT_RX2DL "+RX2DL"
#define AT_RX2DR "+RX2DR"
#define AT_RX2FQ "+RX2FQ"
#define AT_TXP "+TXP"
#define AT_PGSLOT "+PGSLOT"
#define AT_TTONE "+TTONE"
#define AT_TRSSI "+TRSSI"
#define AT_TCONF "+TCONF"
#define AT_TTX "+TTX"
#define AT_TRX "+TRX"
#define AT_TTH "+TTH"
#define AT_TOFF "+TOFF"
#define AT_REGW "+REGW"
#define AT_REGR "+REGR"
#define AT_CERTIF "+CERTIF"
#define AT_BAT "+BAT" 复制代码
通过发送 AT 指令,即可实现 LoRa 主从机的通信参数配置,并实现数据的远程传输和通信。
总结
本文介绍了意法半导体 Nucleo-WL55JC 开发板的通过 AT 指令实现 LoRa 调试的项目设计,为 STM32WL 系列芯片的开发和应用提供了参考。