Zephyr 中的 Particle 系列开发板支持:从 Mesh 板卡到 BLE Nano 的硬件适配与使用指南
2026/9/21 19:09:44 网站建设 项目流程

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_argonNordic nRF52840 + ESP32Wi-Fi + BLE + IEEE 802.15.4argon/doc/index.rst
particle_boronNordic nRF52840 + 蜂窝模组LTE / 2G/3G + BLE + 802.15.4boron/doc/index.rst
particle_xenonNordic nRF52840BLE + IEEE 802.15.4(低成本 Mesh 板)xenon/doc/index.rst
nrf51_blenanoNordic nRF51822BLE(第一代 Nano)nrf51_blenano/doc/index.rst
nrf52_blenano2Nordic nRF52832BLE(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,consolezephyr,shell-uartzephyr,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红色状态 LEDgpio0 13低电平有效
LED2绿色状态 LEDgpio0 14低电平有效
LED3蓝色状态 LEDgpio0 15低电平有效
SW0MODE 按键gpio0 11
SW1RESET 按键gpio0 18

I2C

  • TWI0:默认使能,映射到 Feather 排针上的 SDA/SCL(即arduino_i2c/feather_i2c,时钟频率为I2C_BITRATE_FAST)。
  • TWI1
    • Argon / Xenon:可通过 overlaymesh_feather_i2c1_twi1.dtsi映射到标有 SDA1/SCL1 的 Feather 引脚;
    • Boron:TWI1 默认使能,但专用于板载电源管理 IC(PMIC),不对用户开放。

SPI

实例状态说明
SPI0禁用与 TWI0 存在引脚冲突
SPI1Argon / 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 引脚)启用
SPI1Boron 禁用与 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)

particle_argon.dts 还定义了 Argon 专属的两个器件节点:

  • sky13351:Skyworks 射频开关,通过gpio0 25gpio0 2(均低电平有效)控制天线路径切换;
  • vbatt:电压分压采样节点,io-channels = <&adc 3>,分压电阻 2.1 MΩ 对 806 kΩ,用于测量电池电压。

另外,&reg1配置为NRF5X_REG_MODE_DCDC(DCDC 模式)以提升电源效率,&uicr设置了gpio-as-nreset,把未使用的引脚配置为 GPIO 而非复位线,详见 particle_argon.dts。

用 DTS overlay 扩展外设(mesh_feather 系列)

对于需要把外设映射到 Feather 排针的场景,Particle 板卡目录下预置了现成的 overlay 片段,可直接在应用层通过#includewest 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 debug

west 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_GPIOCONFIG_SERIALCONFIG_CONSOLECONFIG_UART_CONSOLE,保证基础运行环境;
  • *.yaml(如 particle_argon.yaml):声明ram: 512(kB)、flash: 1024(kB)、支持zephyrgnuarmemb工具链,以及i2cspigpiousb_devicebluetoothfeather_serialfeather_i2cfeather_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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询