在 Zephyr 中使用 Ebyte E80-900MBL-01 评估板:STM32F103C8T6 + Semtech LR1121 双频 LoRa 开发指南
【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr
Ebyte E80-xxxMBL-01 系列评估板是亿佰特(Ebyte)新一代 LoRa 双频无线模块的快速评估平台,其板级支持已合入 Zephyr 主线仓库。本文以 boards/ebyte/e80_900mbl_01/doc/index.rst 为核心,结合板级设备树、默认配置与烧录脚本,完整讲解该板的硬件组成、Zephyr 支持特性、构建烧录与调试方法,帮助你从零开始在这块板上跑起 Zephyr 应用。
板卡概览:面向 LoRa 双频评估的硬件底座
E80-900MBL-01 评估板的设计目标是让开发者快速评估亿佰特新一代 LoRa 双频无线模块。它选用意法半导体通用型 MCUSTM32F103C8T6作为主控,并将绝大部分引脚通过两侧排针引出,便于外接传感器、扩展板或示波器测量。
板上核心射频器件是E80-900M2213S 模块,内部集成Semtech LR1121调制解调器,可工作在850–930 MHz 高频 LoRa 频段(覆盖 868 MHz、915 MHz 等)以及2.4 GHz LoRa 频段。这意味着该板天然适合评估 Sub-GHz 与 2.4 GHz 双频段 LoRa 组网、上行链路与卫星通信等应用场景。
从仓库中的板级元数据 boards/ebyte/e80_900mbl_01/e80_900mbl_01.yaml 可以看到官方对该板的定位:
identifier: e80_900mbl_01 name: Ebyte E80 Module Development Board (HF) type: mcu arch: arm toolchain: - zephyr - gnuarmemb ram: 20 flash: 64 supported: - gpio - spi - watchdog - lora vendor: ebyte该板拥有20 KB RAM、64 KB Flash(STM32F103C8T6 标准容量),Zephyr 中已声明支持 GPIO、SPI、看门狗与 LoRa 四类功能,其中 LoRa 支持正是本板区别于普通 STM32 开发板的核心卖点。
硬件组成与资源清单
根据板级文档,E80-900MBL-01 提供以下硬件组件:
- STM32 微控制器,LQFP48 封装(即 STM32F103C8T6);
- 三颗 LED:用户 LED1、用户 LED2 以及电源指示 LED(PWR);
- 三个按键:复位按键(RST)、用户按键 K1、用户按键 K2;
- CH340 USB 转 UART 适配器,用于串口调试与程序下载辅助;
- E80-900M2213S 模块,集成 Semtech LR1121,配置为 850–930 MHz 与 2.4 GHz LoRa 工作。
从设备树看引脚分配
板级设备树 boards/ebyte/e80_900mbl_01/e80_900mbl_01.dts 给出了精确的引脚映射,是编写应用 overlay 时的重要依据:
| 功能 | 节点 | GPIO | 有效电平 | 说明 |
|---|---|---|---|---|
| LED1 | blue_led_0 | PB13 | 低电平有效 | 别名led0 |
| LED2 | blue_led_1 | PB12 | 低电平有效 | 别名led1 |
| 按键 K1 | button_k1 | PB15 | 低电平有效 + 上拉 | 别名sw0,INPUT_KEY_0 |
| 按键 K2 | button_k2 | PB14 | 低电平有效 + 上拉 | 别名sw1,INPUT_KEY_1 |
| 串口控制台 | USART1 | PA9/PA10 | — | 115200 baud |
| LoRa SPI | SPI1 | PA5/PA6/PA7 | — | CS = PA4,spi-max-frequency = 1 MHz |
| LoRa 复位 | — | PB0 | 低电平有效 | reset-gpios |
| LoRa 忙状态 | — | PA3 | 高电平有效 | busy-gpios |
| LoRa 中断 | — | PB1 | 高电平有效 + 下拉 | irq-gpios |
设备树中chosen节点将zephyr,console与zephyr,shell-uart均指向 USART1,即 CH340 转出的串口默认为系统控制台与 Shell 端口;aliases中led0/led1/sw0/sw1保证了blinky、button等标准示例无需修改即可直接使用板级资源。
LR1121 射频前端配置解析
设备树中lora@0节点完整描述了 LR1121 在板上的连接方式与射频开关(RFSW)配置:
lora0: lora@0 { compatible = "semtech,lr1121"; status = "okay"; reg = <0>; spi-max-frequency = <1000000>; reset-gpios = <&gpiob 0 GPIO_ACTIVE_LOW>; busy-gpios = <&gpioa 3 GPIO_ACTIVE_HIGH>; irq-gpios = <&gpiob 1 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; lf-clk = "XTAL"; rfsw-enable = <0x07>; rfsw-standby = <0x00>; rfsw-rx = <0x02>; rfsw-tx = <0x03>; rfsw-tx-hp = <0x01>; rfsw-tx-hf = <0x00>; rfsw-gnss = <0x04>; rfsw-wifi = <0x00>; tcxo-voltage = <1800>; use-dcdc; rx-boosted; };其中几个关键配置项值得说明:
compatible = "semtech,lr1121"对应绑定文件 dts/bindings/lora/semtech,lr1121.yaml,该绑定要求reset-gpios、busy-gpios、irq-gpios、lf-clk四个属性为必填项,并继承semtech,lr11xx-base.yaml中的公共属性定义;lf-clk = "XTAL"表示 LR1121 使用外部晶振作为低频时钟源;- 一系列
rfsw-*属性是射频开关控制字,对应 LoRa 收发、高功率发射、HF 频段、GNSS 等不同射频通路下的开关状态组合; tcxo-voltage = <1800>设置 TCXO 供电电压为 1.8 V;use-dcdc与rx-boosted分别启用 DC-DC 模式与 RX 高增益(boosted)模式。
系统时钟:8 MHz 晶振 × 9 倍频 = 72 MHz
文档指出板载 8 MHz 晶振通过 PLL 倍频产生72 MHz 系统时钟。这一逻辑在设备树中可完整印证:
&clk_hse { clock-frequency = <DT_FREQ_M(8)>; status = "okay"; }; &pll { mul = <9>; clocks = <&clk_hse>; status = "okay"; }; &rcc { clocks = <&pll>; clock-frequency = <DT_FREQ_M(72)>; ahb-prescaler = <1>; apb1-prescaler = <2>; apb2-prescaler = <1>; /* usbpre not set: USB clock = 72 / 1.5: 48MHz */ };即 HSE 8 MHz、PLL 倍频 9 得到 72 MHz 系统主频;APB1 预分频 2(36 MHz 总线)、APB2 不分频(72 MHz 总线),同时保留 48 MHz USB 时钟的推导条件。此外clk_lsi(LSI 低速内部时钟)被使能,用于驱动独立看门狗&iwdg与&rtc(RTC 时钟源选择RTC_SEL(2),即 LSI)。
Zephyr 支持特性与默认配置
板级文档通过.. zephyr:board-supported-hw::指令自动列出该板在 Zephyr 中已测试支持的外设。结合 e80_900mbl_01.yaml 与 e80_900mbl_01_defconfig,板上默认使能了以下基础能力:
# Enable UART driver CONFIG_SERIAL=y # Enable console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y # Enable GPIO CONFIG_GPIO=y即默认打开UART 串口驱动、控制台输出与 GPIO,保证最小系统可直接输出日志、响应按键并点亮 LED。LoRa 驱动并不默认使能,需要应用自行开启(见下文)。
板级 Kconfig 还做了一件重要的事:当启用LORA子系统时,强制将 LoRa 模块后端锁定为原生(native)实现,避免与其他 LoRa 模块后端产生选择冲突,见 boards/ebyte/e80_900mbl_01/Kconfig.defconfig:
if BOARD_E80_900MBL_01 if LORA choice LORA_MODULE_BACKEND default LORA_MODULE_BACKEND_NATIVE endchoice endif # LORA endif # BOARD_E80_900MBL_01构建与烧录
E80-900MBL-01 的 SWD 调试口已引出到排针,Zephyr 侧同时提供了OpenOCD与J-Link两种烧录运行器。构建与烧录方式与 Zephyr 标准流程完全一致(详见 Zephyr 文档中的构建应用与运行应用章节)。
烧录 blinky 示例
以blinky为例,完整命令如下:
west build -b e80_900mbl_01 samples/basic/blinky west flash烧录完成后,板上的用户 LED 会以每 1 秒的频率闪烁一次。由于设备树中led0已指向 PB13(低电平有效),blinky 示例无需任何额外配置即可工作。
烧录原理:runner 配置
板级 CMake 脚本 boards/ebyte/e80_900mbl_01/board.cmake 声明了两种 runner:
board_runner_args(jlink "--device=STM32F103C8" "--speed=4000") include(${ZEPHYR_BASE}/boards/common/openocd-stm32.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)- J-Link:以
--device=STM32F103C8、--speed=4000(4 MHz SWD 时钟)调用; - OpenOCD:复用
openocd-stm32.board.cmake的通用 STM32 支持,同时可加载板级自定义脚本 boards/ebyte/e80_900mbl_01/support/openocd.cfg。
该 OpenOCD 脚本基于CMSIS-DAP 接口(实测兼容 WCH LinkE 调试器),将工作区大小设置为 0x5000(即 20 KB RAM),并挂载 STM32F1 系列目标配置;同时在 GDB attach 时执行reset halt并强制使用硬件断点,在 detach 时恢复运行,保证调试会话的干净起止。
构建注意事项
由于板载 64 KB Flash 与 20 KB RAM 容量有限,且 LoRa 驱动(LR11xx 系列)体积较大,实际项目建议:
- 仅使能应用真正需要的驱动与子系统;
- 使用
CONFIG_SIZE_OPTIMIZATIONS=y等尺寸优化选项; - 需要 LoRa 时显式开启
CONFIG_LORA=y与CONFIG_LORA_SEMTECH_LR11XX=y等相关配置。
调试
E80-900MBL-01 的 SWD 口支持标准的 GDB 调试流程。对blinky应用执行调试:
west build -b e80_900mbl_01 samples/basic/blinky west debugwest debug会调用west flash所用的同一套 runner 体系(OpenOCD 或 J-Link),启动 GDB 并连接目标板。配合 support/openocd.cfg 中 GDB attach 时自动reset halt的行为,你可以从复位点开始单步、设置断点(硬件断点)并查看外设寄存器。
调试时建议使用串口助手连接 CH340 转出的 USART1(115200 baud),同时观察 Zephyr 控制台日志,便于将断点状态与运行日志对照分析。
参考资源
更多硬件细节可查阅亿佰特官方资料(文档中给出的原始链接):
- E80-900MBL-01 产品页面与原理图(
E80-900MBL-01 Page、E80-900MBL-01 Schematic两个引用); - E80-900M2213S 模块页面(
E80-900M2213S Page); - ST 官方 STM32F103 参考手册与数据手册。
在 Zephyr 仓库内,可继续深入阅读:
- 板级文档原文:boards/ebyte/e80_900mbl_01/doc/index.rst
- 板级设备树:boards/ebyte/e80_900mbl_01/e80_900mbl_01.dts
- 板级定义文件:boards/ebyte/e80_900mbl_01/e80_900mbl_01.yaml
- LR1121 设备树绑定:dts/bindings/lora/semtech,lr1121.yaml
- LoRa 示例程序:samples/subsys/lorawan、samples/drivers/lora
【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考