本文介绍了意法半导体 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 ,表明实现通信。


AT_order.gif


ATZ

发送 ATZ 指令,实现芯片复位,并串口打印初始化信息


ATZ.jpg


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/*FSK*/
  • AT+TCONF=868000000:14:10000:10000:4/5:0:0:3:16:25000:2:3/*MSK*/
  • AT+TCONF=868000000:14:4:12:4/5:0:0:1:16:25000:2:3/*LORA*/
  • 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_question.jpg


    发送 AT+VER? 回复


    AT_VER.jpg


    详见 AT 指令定义文件 lore_at.h ,路径 Application/User/LoRaWAN/App/


    /* AT Command strings. Commands start with AT */
  • /* General commands */
  • #define AT_VER        "+VER"
  • #define AT_VL         "+VL"
  • #define AT_LTIME      "+LTIME"
  • #define AT_RESET      "Z"

  • /* Context Store */
  • #define AT_RFS        "+RFS"
  • #define AT_CS         "+CS"

  • /* Keys, IDs and EUIs management commands */
  • #define AT_JOINEUI    "+APPEUI" /*to match with V1.0.x specification- For V1.1.x "+APPEUI" will be replaced by "+JOINEUI"*/
  • #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"

  • /* LoRaWAN join and send data commands */
  • #define AT_JOIN       "+JOIN"
  • #define AT_LINKC      "+LINKC"
  • #define AT_SEND       "+SEND"

  • /* LoRaWAN network management commands */
  • #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"

  • /* Radio tests commands */
  • #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"

  • /* Radio access commands */
  • #define AT_REGW       "+REGW"
  • #define AT_REGR       "+REGR"

  • /* LoraWAN Certif command */
  • #define AT_CERTIF     "+CERTIF"

  • /* Information command */
  • #define AT_BAT        "+BAT"
  • 复制代码


    通过发送 AT 指令,即可实现 LoRa 主从机的通信参数配置,并实现数据的远程传输和通信。


    总结


    本文介绍了意法半导体 Nucleo-WL55JC 开发板的通过 AT 指令实现 LoRa 调试的项目设计,为 STM32WL 系列芯片的开发和应用提供了参考。