
本应用笔记将指导用户完成基于STM32WL系列微控制器构建特定LoRa®应用程序所需的所有步骤。 ' c$ ]1 C S$ d6 f0 E LoRa®是一种无线通信网络,旨在以极低的比特率进行远距离通信,并延长电池供电型传感器的寿命。LoRaWAN®定义了通信和安全协议,此协议会确保与LoRa®网络的互操作性。 STM32CubeWL MCU软件包中的固件兼容LoRa Alliance®规范协议LoRaWAN®,并具有以下主要特性: + U1 @! U5 y$ ?* G5 {/ Y1 S
STM32CubeWL MCU软件包的固件基于STM32Cube HAL驱动程序。 + @; ]' I8 L- a4 x; x' G+ ] 本文提供了有关带STM32WL55JC的NUCLEO-WL55JC开发板(适于高频段的订购代码为NUCLEO-WL55JC1,适于低频段的订购代码为NUCLEO-WL55JC2)和带STM32WL5M的B-WL5M-SUB1连接扩展板的客户应用程序示例。 为了充分利用本应用笔记中的信息并创建应用程序,用户必须熟悉 STM32 系列微控制器、LoRa®技术,并了解低功耗管理和任务排序等系统服务。) t2 \" t6 f' p STM32CubeWL在基于Arm® Cortex®-M处理器的STM32WL系列微控制器上运行。 & |8 V+ U' Q8 q' y5 f; T 注意: Arm是Arm Limited(或其子公司)在美国和/或其他地区的注册商标。 i7 t# `% R( ?, O; f( G/ U F - i% i) G4 h& c7 E6 s/ {5 A* K/ X* k STM32CubeWL概述 c/ x2 [0 Y0 p* R- r. R STM32CubeWL MCU软件包的固件包括以下资源(参见图1): - R5 t& o& ]8 N5 S$ l1 H 板级支持包:
STM32WLxx_HAL_Driver 中间件: - LoRaWAN包含: ' \: b; v! b4 g, X- w' y+ ~7 |/ S* v
- 包含无线电和radio_driver接口的SubGHz_Phy层中间件 / ?8 E e4 \2 D" w9 e+ ~3 r LoRaWAN应用程序:
SubGHz_Phy应用程序:2 G1 m7 }1 _. a$ |. A8 z! `
另外,此应用程序还提供与以下设备的高效系统集成: ) S) G- }" h9 J
若需更多信息,请参见第9节。6 p" ~1 p1 |; S* W7 n4 Q: ~' V ![]() 本节主要介绍SubGHz HAL(未详述其他HAL功能,如定时器或GPIO)。 SubGHz HAL直接位于sub-GHz无线电外设上方(参见图3)。 . h2 d9 m( x$ }1 r4 o! a SubGHz HAL驱动程序基于简单的一次性面向指令架构(无完整过程)。因此,未定义LL驱动程序。 此SubGHz HAL驱动程序由以下主要部分组成: 6 a0 Q# c- x8 w8 M+ K9 ^- e" y
由于HAL API主要基于总线服务通过一次性操作发送指令,因此,除了复位/就绪HAL状态外,不使用功能状 态机。& G" g. r: y8 J7 P- D y 9 L/ C/ I2 W( [& C0 x 3.1 SubGHz资源 5 |$ y5 o% |. F& @ 初始化无线电时会调用以下HAL SubGHz API: 2 N* k9 Z- Q, V* w f$ }
- PWR配置:启用sub-GHz无线电外设的唤醒信号。 8 O" u% Y) [! g% p - NVIC配置: ☆ 启用NVIC无线电IRQ中断。 ☆ 配置sub-GHz无线电中断优先级。 4 ?7 _4 l D% [$ W, k: _( V 在stm32wlxx_it.c 文件中会调用以下HAL无线电中断:
3.2 SubGHz数据传输 Set 指令操作在轮询模式下使用HAL_SUBGHZ_ExecSetCmd(); API执行。 4 j4 F% P3 L6 g' g Get Status 操作在轮询模式下使用HAL_SUBGHZ_ExecGetCmd(); API执行。 1 [5 h, y' G* M* J) y7 M- c 读/写寄存器访问操作在轮询模式下使用以下API执行: $ e9 I, i/ x) x; t, _! {
4 BSP STM32WL板 - y r0 G& E X& p 本 BSP 驱动程序提供了一系列无线电射频服务管理功能,如射频开关设置和控制、TCXO 设置以及 DC/DC 设置。 注意: 无线电中间件(SubGHz_Phy)通过radio_board_if.c/h 接口文件连接无线电 BSP。当使用定制用户板时,建议执行一个以下选项: ! C9 R6 c9 n0 ]7 N# O
- 使用以下信息重命名并更新用户BSP API: ☆ 用户射频开关配置和控制(如引脚控制或端口编号) ☆ 用户TCXO配置 N7 v) o% ?9 V- X ☆ 用户DC/DC配置 ' }3 g6 H% z' \9 u8 a$ }5 z7 M& s - 将IDE项目中的STM32WLxx_Nucleo BSP文件替换为用户BSP文件。
% v# E# E0 D! x; ]0 `& F, ? 4.1 频段 STM32WL系列上可以使用两种Nucleo板: / b, `5 D5 C: i& i
如果用户试图在低频段板上运行在868 MHz下编译的固件,预计射频性能会非常差。 - K5 ^: F6 r# c- e) ?% z% m( N7 D 固件不会检查其所在的板的频段。 4.2 RF开关 ! r4 c$ ^: K3 z% Y1 O STM32WL Nucleo板内置一个射频3端口开关(SP3T),使用同一个板即可实现以下模式:
表3. BSP无线电开关 ![]() 表4. RF状态与开关配置 ![]() 产看更多该应用笔记详情,请点击附件下载查看>> ![]() |