ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Zephyr 中的 Particle 系列开发板支持:从 Mesh 板卡到 BLE Nano 的硬件适配与使用指南

Zephyr 中的 Particle 系列开发板支持:从 Mesh 板卡到 BLE Nano 的硬件适配与使用指南 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/zephyrParticle 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.rstparticle_boronNordic nRF52840 蜂窝模组LTE / 2G/3G BLE 802.15.4boron/doc/index.rstparticle_xenonNordic nRF52840BLE IEEE 802.15.4低成本 Mesh 板xenon/doc/index.rstnrf51_blenanoNordic nRF51822BLE第一代 Nanonrf51_blenano/doc/index.rstnrf52_blenano2Nordic nRF52832BLENano v2nrf52_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/MeshESP32 负责 Wi-Fi二者通过板载 UART 通信详见下文源码分析。Mesh 系列Argon / Boron / Xenon通用硬件特征三块 Mesh 板卡在设计上高度同源文档反复强调以下几个共同点主控 SoCNordic Semiconductor nRF52840 ARM Cortex-M4F集成 2.4 GHz 收发器同时支持 Bluetooth Low Energy 与 IEEE 802.15.4Thread / 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用户 LEDgpio1 12高电平有效led1 红色状态 LEDgpio0 13低电平有效led2 绿色状态 LEDgpio0 14低电平有效led3 蓝色状态 LEDgpio0 15低电平有效sw0 MODE 按键gpio0 11上拉 低电平有效键码INPUT_BTN_MODEsw1 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红色状态 LEDgpio0 13低电平有效LED2绿色状态 LEDgpio0 14低电平有效LED3蓝色状态 LEDgpio0 15低电平有效SW0MODE 按键gpio0 11SW1RESET 按键gpio0 18I2CTWI0默认使能映射到 Feather 排针上的 SDA/SCL即arduino_i2c/feather_i2c时钟频率为I2C_BITRATE_FAST。TWI1Argon / Xenon可通过 overlaymesh_feather_i2c1_twi1.dtsi映射到标有 SDA1/SCL1 的 Feather 引脚BoronTWI1 默认使能但专用于板载电源管理 ICPMIC不对用户开放。SPI实例状态说明SPI0禁用与 TWI0 存在引脚冲突SPI1Argon / Xenon 可选用通过mesh_feather_spi_spi1.dtsi映射到 Feather SPI 引脚SPI2板载专用连接板载 32 Mb CFI NOR FlashMX25L3233FSPI 最高 80 MHzSPI3可选用通过mesh_feather_spi_spi3.dtsiSPI 引脚或mesh_feather_spi1_spi3.dtsiSPI1 引脚启用SPI1Boron 禁用与 TWI1PMIC存在引脚冲突从 mesh_feather.dtsi 源码可见SPI2 上挂载的mx25l3233f0节点完整描述了板载 Flash 的参数spi-max-frequency 80000000、jedec-id [c2 20 16]、has-dpd以及深功耗模式进出时序这些配置直接决定外部存储驱动的初始化行为。UARTUARTE0UART1默认使能RX/TX 映射到 Feather 排针标号波特率 115200即 Zephyr 默认控制台可通过mesh_feather_uart1_rtscts.dtsi追加硬件流控 RTS/CTS。UARTE1UART2Argon板载专用直连 ESP32 协处理器波特率 921600见 particle_argon.dts 中uart1节点compatible nordic,nrf-uarte; current-speed 921600Boron板载专用直连 u-blox 蜂窝模组Xenon通过mesh_xenon_uart2.dtsioverlay 可选映射到标有 UART2 的 Feather 引脚。额外板级外设Argonparticle_argon.dts 还定义了 Argon 专属的两个器件节点sky13351Skyworks 射频开关通过gpio0 25与gpio0 2均低电平有效控制天线路径切换vbatt电压分压采样节点io-channels adc 3分压电阻 2.1 MΩ 对 806 kΩ用于测量电池电压。另外reg1配置为NRF5X_REG_MODE_DCDCDCDC 模式以提升电源效率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 / Xenonmesh_feather_spi_spi1.dtsi把 SPI1 暴露到标有 SPI 的 Feather 引脚Argon / Xenonmesh_feather_spi_spi3.dtsi把 SPI3 暴露到标有 SPI 的 Feather 引脚mesh_feather_spi1_spi3.dtsi把 SPI3 暴露到标有 SPI1 的 Feather 引脚mesh_feather_uart1_rtscts.dtsi为 Feather UART 引脚追加硬件流控 RTS/CTSmesh_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 nRF51822BLE 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_blenano2Nano v2基于 Nordic 新一代 nRF52832 SoC32 位 ARM Cortex-M4F512 kB Flash 64 kB RAM被设计为 BLE Nano 的drop-in直接替换品外形完全一致。硬件资源清单11 路数字 IO1 路 UART含硬件流控占用 4 个 IO1 路 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.cmakeboron / xenon 与之相同可以看出Argon 配置了四种 runnerboard_runner_args(pyocd --targetnrf52840 --frequency4000000) board_runner_args(nrfjprog --softreset) board_runner_args(jlink --devicenRF52840_xxAA --speed4000) 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 在板卡上是否正常工作blinkysamples/basic/blinky周期性翻转 LED0用户蓝色 LED验证 GPIO、时钟与系统调度buttonsamples/basic/button按下 MODESW0按键时在控制台打印事件验证 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: 512kB、flash: 1024kB、支持zephyr与gnuarmemb工具链以及i2c、spi、gpio、usb_device、bluetooth、feather_serial、feather_i2c、feather_spi等硬件特性这些声明会被 twister 测试与west boards等工具解析board.yml如 board.yml登记板卡名称、厂商与 SoCnrf52840board.c板级初始化代码经 CMakeLists.txt 编入zephyr_library。小结Particle 系列在 Zephyr 中覆盖了从 BLE SoCnRF51822 / nRF52832到高端 Mesh SoCnRF52840的完整产品线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),仅供参考
返回列表