Zephyr 中的 Particle 系列开发板支持:从 Mesh 板卡到 BLE Nano 的硬件适配与使用指南
【免费下载链接】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
Particle Industries 出品的多款物联网开发板(Argon、Boron、Xenon 以及 RedBear 的 BLE Nano 系列)在 Zephyr 中均有官方板级支持。本文以 boards/particle 目录下的板级文档为核心,结合仓库内真实的 DTS、defconfig 与构建脚本,系统梳理这些板卡的硬件特性、引脚与外设分配、DTS overlay 扩展方式,以及完整的构建、烧录、调试与 LED/按键验证流程,帮助你快速在 Zephyr 上基于 Particle 板卡完成从点灯到量产固件的开发。
Particle 板卡家族在 Zephyr 中的布局
Zephyr 仓库的 boards/particle/index.rst 是 Particle 板卡的文档入口,其下共收录 5 块开发板,按芯片代际可分为两组:
| 板卡目标 | 核心 SoC | 连接能力 | 板级文档 |
|---|---|---|---|
particle_argon | Nordic nRF52840 + ESP32 | Wi-Fi + BLE + IEEE 802.15.4 | argon/doc/index.rst |
particle_boron | Nordic nRF52840 + 蜂窝模组 | LTE / 2G/3G + BLE + 802.15.4 | boron/doc/index.rst |
particle_xenon | Nordic nRF52840 | BLE + IEEE 802.15.4(低成本 Mesh 板) | xenon/doc/index.rst |
nrf51_blenano | Nordic nRF51822 | BLE(第一代 Nano) | nrf51_blenano/doc/index.rst |
nrf52_blenano2 | Nordic nRF52832 | BLE(Nano v2) | nrf52_blenano2/doc/index.rst |
前三块(Argon / Boron / Xenon)属于 Particle 的 Gen3 Feather 系列,后两块则是 RedBear 出品的 BLE Nano 系列。文档结构上,每块板卡目录下的doc/index.rst均遵循 Zephyr 板级文档的标准框架:Overview(概述)→ Hardware(硬件)→ Supported Features(支持特性)→ Connections and IOs(连接与 IO)→ Programming and Debugging(编程与调试)。
Argon 是其中唯一带 Wi-Fi 的型号,nRF52840 负责 BLE/Mesh,ESP32 负责 Wi-Fi,二者通过板载 UART 通信(详见下文源码分析)。
Mesh 系列(Argon / Boron / Xenon)通用硬件特征
三块 Mesh 板卡在设计上高度同源,文档反复强调以下几个共同点:
- 主控 SoC:Nordic Semiconductor nRF52840 ARM Cortex-M4F,集成 2.4 GHz 收发器,同时支持 Bluetooth Low Energy 与 IEEE 802.15.4(Thread / Zigbee 物理层)。
- 形态规范:符合 Adafruit Feather 引脚规范,可直接兼容大量 Feather 生态扩展板与面包板。
- 供电与充电:板载 LIPO 锂电池充电电路,支持电池与 micro USB 两种供电方式,USB 口可为锂电充电;整板针对低功耗应用做了优化。
- 编程接口:板载 SWD 连接器,用于烧录与调试。
- 正面电路:RGB-LED、单色 LED 以及 LIPO 充电电路均位于板卡正面,RGB-LED 由 nRF52840 通过 GPIO 直接控制。
从板级源码看,三块板共享同一套dts/mesh_feather.dtsi(该文件在 argon / boron / xenon 三处均有副本,文件头注释明确要求同步修改),其中通过aliases把 LED 与按键统一映射为 Zephyr 标准别名:
led0= User LED(用户 LED,gpio1 12,高电平有效)led1= 红色状态 LED(gpio0 13,低电平有效)led2= 绿色状态 LED(gpio0 14,低电平有效)led3= 蓝色状态 LED(gpio0 15,低电平有效)sw0= MODE 按键(gpio0 11,上拉 + 低电平有效,键码INPUT_BTN_MODE)sw1= RESET 按键(gpio0 18,上拉 + 低电平有效,键码INPUT_KEY_0)
同时chosen节点把zephyr,console、zephyr,shell-uart、zephyr,uart-mcumgr都指向uart0,并把zephyr,ieee802154指向板载 802.15.4 收发器,意味着开箱即用串口控制台与 IEEE 802.15.4 协议栈。源码见 mesh_feather.dtsi。
Mesh 系列引脚与外设分配详解
文档对三块板卡的 LED、按键、I2C、SPI、UART 给出了逐项说明,核心要点如下(以 Argon 为例,Boron / Xenon 仅在差异处标注):
LED 与按键(三板一致)
| 别名 | 引脚 | 说明 |
|---|---|---|
| LED0 | 用户 LED | 蓝色,gpio1 12高电平有效 |
| LED1 | 红色状态 LED | gpio0 13低电平有效 |
| LED2 | 绿色状态 LED | gpio0 14低电平有效 |
| LED3 | 蓝色状态 LED | gpio0 15低电平有效 |
| SW0 | MODE 按键 | gpio0 11 |
| SW1 | RESET 按键 | gpio0 18 |
I2C
- TWI0:默认使能,映射到 Feather 排针上的 SDA/SCL(即
arduino_i2c/feather_i2c,时钟频率为I2C_BITRATE_FAST)。 - TWI1:
- Argon / Xenon:可通过 overlay
mesh_feather_i2c1_twi1.dtsi映射到标有 SDA1/SCL1 的 Feather 引脚; - Boron:TWI1 默认使能,但专用于板载电源管理 IC(PMIC),不对用户开放。
- Argon / Xenon:可通过 overlay
SPI
| 实例 | 状态 | 说明 |
|---|---|---|
| SPI0 | 禁用 | 与 TWI0 存在引脚冲突 |
| SPI1 | Argon / Xenon 可选用 | 通过mesh_feather_spi_spi1.dtsi映射到 Feather SPI 引脚 |
| SPI2 | 板载专用 | 连接板载 32 Mb CFI NOR Flash(MX25L3233F,SPI 最高 80 MHz) |
| SPI3 | 可选用 | 通过mesh_feather_spi_spi3.dtsi(SPI 引脚)或mesh_feather_spi1_spi3.dtsi(SPI1 引脚)启用 |
| SPI1 | Boron 禁用 | 与 TWI1(PMIC)存在引脚冲突 |
从 mesh_feather.dtsi 源码可见,SPI2 上挂载的mx25l3233f@0节点完整描述了板载 Flash 的参数:spi-max-frequency = <80000000>、jedec-id = [c2 20 16]、has-dpd以及深功耗模式进出时序,这些配置直接决定外部存储驱动的初始化行为。
UART
- UARTE0(UART1):默认使能,RX/TX 映射到 Feather 排针标号;波特率 115200,即 Zephyr 默认控制台;可通过
mesh_feather_uart1_rtscts.dtsi追加硬件流控 RTS/CTS。 - UARTE1(UART2):
- Argon:板载专用,直连 ESP32 协处理器,波特率 921600(见 particle_argon.dts 中
&uart1节点,compatible = "nordic,nrf-uarte"; current-speed = <921600>); - Boron:板载专用,直连 u-blox 蜂窝模组;
- Xenon:通过
mesh_xenon_uart2.dtsioverlay 可选映射到标有 UART2 的 Feather 引脚。
- Argon:板载专用,直连 ESP32 协处理器,波特率 921600(见 particle_argon.dts 中
额外板级外设(Argon)
particle_argon.dts 还定义了 Argon 专属的两个器件节点:
sky13351:Skyworks 射频开关,通过gpio0 25与gpio0 2(均低电平有效)控制天线路径切换;vbatt:电压分压采样节点,io-channels = <&adc 3>,分压电阻 2.1 MΩ 对 806 kΩ,用于测量电池电压。
另外,®1配置为NRF5X_REG_MODE_DCDC(DCDC 模式)以提升电源效率,&uicr设置了gpio-as-nreset,把未使用的引脚配置为 GPIO 而非复位线,详见 particle_argon.dts。
用 DTS overlay 扩展外设(mesh_feather 系列)
对于需要把外设映射到 Feather 排针的场景,Particle 板卡目录下预置了现成的 overlay 片段,可直接在应用层通过#include或west build的-DEXTRA_DTC_OVERLAY_FILE引入(文件位于boards/particle/{argon,boron,xenon}/dts/下):
| overlay 文件 | 作用 |
|---|---|
mesh_feather_i2c1_twi1.dtsi | 把 TWI1 暴露到标有 SDA1/SCL1 的 Feather 引脚(Argon / Xenon) |
mesh_feather_spi_spi1.dtsi | 把 SPI1 暴露到标有 SPI 的 Feather 引脚(Argon / Xenon) |
mesh_feather_spi_spi3.dtsi | 把 SPI3 暴露到标有 SPI 的 Feather 引脚 |
mesh_feather_spi1_spi3.dtsi | 把 SPI3 暴露到标有 SPI1 的 Feather 引脚 |
mesh_feather_uart1_rtscts.dtsi | 为 Feather UART 引脚追加硬件流控 RTS/CTS |
mesh_xenon_uart2.dtsi | 把 UARTE1 暴露到标有 UART2 的 Feather 引脚(仅 Xenon) |
以 SPI3 为例,在应用 overlay 中加入:
#include <boards/particle/argon/dts/mesh_feather_spi_spi3.dtsi>即可让 Zephyr 的 SPI 驱动实例化到对应引脚组。这种"基础 DTS + 按需 overlay"的设计,使同一块板卡能够灵活适配 I2C、SPI、UART 三种总线外设,而不会因为引脚冲突影响板载功能的稳定性。
BLE Nano 系列:nRF51 / nRF52 两代超小尺寸板卡
nrf51_blenano(第一代 Nano)
基于 Nordic nRF51822(BLE SoC),板卡配有两颗外部晶振:慢时钟 32.768 kHz、主时钟 16 MHz。其编程方式较为特殊:需要配合 RedBear 的 DAPLink 底板使用——DAPLink USB 板在主机上会以 USB 磁盘形式出现,同时通过板载 LDO 把 USB 的 5V 降压为 3.3V 为 Nano 供电。
安装注意事项(文档明确警告):务必正确安装 BLE Nano,带 VIN 和 GND 引脚的一侧要朝向USB 连接器,否则无法正常供电与通信。组装流程详见板级文档 nrf51_blenano/doc/index.rst。
nrf52_blenano2(Nano v2)
基于 Nordic 新一代 nRF52832 SoC(32 位 ARM Cortex-M4F,512 kB Flash + 64 kB RAM),被设计为 BLE Nano 的"drop-in"直接替换品,外形完全一致。硬件资源清单:
- 11 路数字 IO;
- 1 路 UART(含硬件流控,占用 4 个 IO);
- 1 路 I2C(占用 2 个 IO)。
同样依赖 DAPLink 底板供电与烧录,安装方向与 nrf51_blenano 一致(VIN/GND 侧朝 USB 口)。
两代 Nano 均通过 DAPLink 底板以 USB 磁盘 + 拖拽文件的方式完成固件烧录,配合 Zephyr 的nrf51_blenano/nrf52_blenano2目标可直接复用标准构建流程。
构建、烧录与调试
所有 Particle 板卡都遵循 Zephyr 标准的west构建与烧录流程(详见 构建应用文档 与 运行应用文档)。
构建并烧录(以 Argon 为例)
west build -b particle_argon samples/basic/blinky west flash或者一步完成:
west build -b particle_argon samples/basic/blinky --pristine west flash --runner pyocd支持的烧录/调试后端
从 board.cmake(boron / xenon 与之相同)可以看出,Argon 配置了四种 runner:
board_runner_args(pyocd "--target=nrf52840" "--frequency=4000000") board_runner_args(nrfjprog "--softreset") board_runner_args(jlink "--device=nRF52840_xxAA" "--speed=4000") include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake) include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)即支持 pyOCD(目标nrf52840)、nrfjprog、J-Link(设备号nRF52840_xxAA)以及 Nordic 新一代的 nrfutil 四种烧录通道,可用--runner显式指定。nrf51_blenano / nrf52_blenano2 则经由 DAPLink 以拖拽方式烧录。
调试
以 hello_world 为例启动调试会话(需连接 SWD 调试器):
west build -b particle_argon samples/hello_world west debugwest debug会按 runner 配置拉起对应的调试器(如 pyocd / jlink)并进入 GDB 会话。Boron、Xenon 及两代 Nano 的操作方式完全一致,仅将-b参数替换为目标板名即可。
验证板卡工作状态:LED 与按键测试
文档推荐用两个官方 sample 快速验证 Zephyr 在板卡上是否正常工作:
- blinky(samples/basic/blinky):周期性翻转 LED0(用户蓝色 LED),验证 GPIO、时钟与系统调度;
- button(samples/basic/button):按下 MODE(SW0)按键时在控制台打印事件,验证 gpio-keys 输入子系统与串口控制台。
由于mesh_feather.dtsi已把 LED 与按键通过aliases统一映射,这两个 sample 无需任何改动即可在全部 5 块 Particle 板卡上直接运行:
west build -b particle_xenon samples/basic/blinky west flash板级配置与硬件能力声明
每块板卡目录下的配置文件共同定义了其硬件能力:
*_defconfig(如 particle_argon_defconfig):开启CONFIG_ARM_MPU(内存保护单元)、CONFIG_GPIO、CONFIG_SERIAL、CONFIG_CONSOLE与CONFIG_UART_CONSOLE,保证基础运行环境;*.yaml(如 particle_argon.yaml):声明ram: 512(kB)、flash: 1024(kB)、支持zephyr与gnuarmemb工具链,以及i2c、spi、gpio、usb_device、bluetooth、feather_serial、feather_i2c、feather_spi等硬件特性,这些声明会被 twister 测试与west boards等工具解析;board.yml(如 board.yml):登记板卡名称、厂商与 SoC(nrf52840);board.c:板级初始化代码(经 CMakeLists.txt 编入zephyr_library)。
小结
Particle 系列在 Zephyr 中覆盖了从 BLE SoC(nRF51822 / nRF52832)到高端 Mesh SoC(nRF52840)的完整产品线:Argon / Boron / Xenon 三块 Gen3 Feather 板卡共享mesh_feather.dtsi基础设备树,通过预置 overlay 灵活扩展 I2C / SPI / UART 外设;BLE Nano 两代则依赖 DAPLink 底板完成编程。所有板卡均遵循统一的west build/west flash/west debug工作流,并支持 pyOCD、nrfjprog、J-Link、nrfutil 多种烧录后端。无论你是要做低功耗传感器节点、Thread/Zigbee 网关还是经典 BLE 外设原型,都可以从 boards/particle 目录的文档与设备树出发,快速搭建可复现的 Zephyr 工程。
【免费下载链接】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),仅供参考