
Zephyr 与 Particle BoronnRF52840 蜂窝开发板的板级支持、外设配置与烧录调试指南【免费下载链接】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 Boron 是 Particle Industries 推出的蜂窝网络开发板其核心是 Nordic nRF52840支持 BLE 与 IEEE 802.15.4/Thread 网格网络并集成 LTE 或 2G/3G 蜂窝调制解调器。本文以 Zephyr 仓库中的板卡文档 为主体结合该板卡在 Zephyr 中的设备树、引脚控制与板级初始化源码系统讲解如何在 Zephyr 下为 Particle Boron 配置外设LED、按键、I2C、SPI、UART、使用 DTS overlay 扩展 SPI3 与硬件流控以及完成应用的构建、烧录与调试。Particle Boron 开发板中央为 nRF52840 蜂窝调制解调器模块顶部为天线接口与电池插座边缘为 Adafruit Feather 兼容排针。板卡概览Particle Boron 是一块支持蜂窝网络的开发板板载 Nordic Semiconductor nRF52840用于网格网络mesh支持同时搭载 LTE 或 2G/3G 蜂窝调制解调器Boron 常见型号如 u-blox SARA-R4 / SARA-U2可直接接入蜂窝网络。该板卡的关键特性主控 SoCNordic nRF52840ARM® Cortex®-M4F集成 2.4 GHz 收发器支持 Bluetooth® Low Energy 与 IEEE® 802.15.4可用于 Thread 网格网络蜂窝能力板载 LTE如 LTE-M/NB-IoT或 2G/3G 调制解调器通过串口UARTE1与 nRF52840 通信编程接口板载 SWD 连接器可用于烧录与调试电源与充电板载 LiPo 充电电路可通过 USB 口为锂电池充电外形规格遵循 Adafruit Feather 板型可使用大量现成的 Feather 扩展板与面包板配件。在 Zephyr 中的板卡标识符为particle_boron。根据 particle_boron.yaml该板卡归类为 MCU 类型、ARM 架构具备 512 KB RAM 与 1024 KB Flash支持的子系统包括 I2C、SPI、GPIO、USB device、蓝牙以及 Feather 兼容的串口/I2C/SPI 排针。板级厂商信息vendor: particle记录在 board.yml 中。硬件资源详解板卡正面集成了 RGB-LED、LED 与 LiPo 充电电路。RGB-LED 由 nRF52840 通过 GPIO 引脚直接控制。电源方案该板卡面向低功耗应用优化支持两种供电配置电池板载 LiPo 充电电路电池可直接为系统供电Micro USB通过 USB 连接器供电同时可为 LiPo 电池充电。从设备树particle_boron.dts可以看到板级电源管理的两个细节主电源转换器reg1被配置为 DCDC 模式regulator-initial-mode NRF5X_REG_MODE_DCDC以提高运行效率、降低功耗串口 1 的电平转换器供电由固定稳压器en_buff_pwrcompatible regulator-fixed控制通过 P0.25 引脚低电平有效使能并在开机时默认开启regulator-boot-on。此外 particle_boron_defconfig 中设置了CONFIG_REGULATOR_FIXED_INIT_PRIORITY41注释明确指出这是为了在调制解调器驱动gsm_ppp 或 ublox-sara-r4启动之前先完成串口缓冲所需稳压器的初始化保证蜂窝通信串口的时序正确。受支持的外设功能Zephyr 板卡文档中通过zephyr:board-supported-hw指令自动列出支持的功能列表。结合源码与板卡元数据Particle Boron 在 Zephyr 下主要支持外设类别支持情况蓝牙nRF52840 2.4 GHzBLEIEEE 802.15.4支持chosen中zephyr,ieee802154指向该节点GPIOP0/P1 两组 GPIO 控制器启用I2CTWITWI0 排针、TWI1 内部电源管理SPISPI2 内部 Flash、SPI3 通过 overlay 可选UARTUARTEUARTE0 排针、UARTE1 蜂窝调制解调器USBnRF52840 USBD 设备控制器zephyr_udc0ADCFeather ADC 引脚AIN1–AIN6引脚分配与外设连接板卡排针引脚分配与所有 Feather 兼容的 Particle 板卡通用具体请参考 Particle Boron 数据手册。部分外设需要通过 DTS overlay include 指令启用仓库在 boards/particle/boron/dts/ 下提供了三个常用 overlaymesh_feather_spi_spi3.dtsi将 SPI3 映射到标注为 SPI 的 Feather 排针引脚mesh_feather_spi1_spi3.dtsi将 SPI3 映射到标注为 SPI1 的 Feather 排针引脚mesh_feather_uart1_rtscts.dtsi为标注为 UART 的 Feather 排针引脚添加硬件流控RTS/CTS。在应用工程中可通过-DEXTRA_DTS_OVERLAY...或dts/目录下的 overlay 机制引入这些文件它们同样被 Particle Argon、Xenon 等 Feather 系网格板卡复用。LED别名颜色说明LED0蓝色用户 LEDuser_ledP1.12高电平有效LED1红色状态灯P0.13低电平有效LED2绿色状态灯P0.14低电平有效LED3蓝色状态灯P0.15低电平有效在 mesh_feather.dtsi 中四个 LED 分别以别名led0–led3暴露应用可直接通过DT_ALIAS(led0)等宏访问。RGB 状态灯采用低电平有效这是驱动编写时需要注意的极性差异。按键别名对应按键说明SW0MODE模式键P0.11上拉 低电平有效输入事件码INPUT_BTN_MODESW1RESET复位键P0.18上拉 低电平有效输入事件码INPUT_KEY_1两个按键以gpio-keys节点描述并带有zephyr,code输入事件码可配合 Zephyr input 子系统直接使用。I2CTWI0在标注的排针SDA/SCL上启用对应 Feather I2Cfeather_i2c: i2c0快速模式400 kHzTWI1用于板载电源管理 IC位于 particle_boron.dts 的i2c1节点同样为快速模式。引脚映射见 particle_boron-pinctrl.dtsiSDAP0.24、SCLP1.9且定义了default与sleep两套引脚状态sleep 状态带low-power-enable用于低功耗场景。SPISPI0因与 TWI0 引脚冲突而禁用SPI1因与 TWI1 引脚冲突而禁用SPI2连接板载 32 Mb CFI 兼容 Flash型号 MX25L3233Fcompatible jedec,spi-nor最大 80 MHz设备树中已包含完整的 JEDEC ID、SFDP 参数以及深度掉电DPD时序配置SPI3可通过 overlay 选择映射到标注 SPI 或 SPI1 的排针引脚。两个 SPI3 overlay 的具体引脚映射mesh_feather_spi_spi3.dtsiSCKP1.15、MOSIP1.13、MISOP1.14片选cs-gpios gpio0 31 GPIO_ACTIVE_LOW实例feather_spimesh_feather_spi1_spi3.dtsiSCKP1.01、MOSIP1.02、MISOP1.08无片选指定需应用自行管理。UARTUARTE0在标注的排针UART1上启用 RX/TX默认 115200 波特率实例名feather_serial如需 RTS/CTS 硬件流控可叠加mesh_feather_uart1_rtscts.dtsiRTSP1.01、CTSP1.02UARTE1连接板载 u-blox 蜂窝调制解调器SARA-R4 或 SARA-U2默认启用硬件流控hw-flow-control引脚映射为 TXP1.05、RXP1.04、RTSP1.07、CTSP1.06。蜂窝调制解调器节点particle_boron.dts 中uart1节点内嵌了sara_r4子节点compatible u-blox,sara-r4并给出三个控制引脚mdm-power-gpios gpio0 16 0调制解调器电源控制mdm-reset-gpios gpio0 12 0调制解调器复位mdm-vint-gpios gpio0 2 0调制解调器中断/电压检测。这意味着应用可以直接使用 Zephyr 的 u-blox SARA-R4 调制解调器驱动参见 drivers/modem/ 目录下的 ublox-sara-r4 相关实现来管理蜂窝网络连接而无需自行接线。板级初始化的源码细节除了设备树Particle Boron 的板级 C 代码 board.c 展示了一个值得参考的初始化流程通过GPIO_DT_SPEC_GET(DT_NODELABEL(sky13351), vctl1_gpios)从设备树获取天线开关 SKY13351 的控制引脚P0.7在board_late_init_hook中调用external_antenna(false)将射频开关默认切换到 PCB 板载天线方向。设备树中sky13351节点还注释说明了硬件细节Boron 上 VCTL2 是通过 SN74LVC1G04 反相器对 VCTL1 取反得到的因此节点中同时定义了vctl2-gpiosP0.7 高电平有效与vctl1-gpiosP0.7 低电平有效但board.c只使用 VCTL1 引脚。这种设备树描述完整硬件、板级代码按需使用的写法是 Zephyr 板级开发的典型模式。编译、烧录与调试针对particle_boron板卡配置的应用可以按 Zephyr 标准流程构建与烧录详见 Zephyr 文档中的构建应用与运行应用章节。构建并烧录以 blinky 示例为例在 Zephyr 源码树根目录执行west build -b particle_boron samples/basic/blinky west flashwest build -b particle_boron指定目标板卡west flash使用板卡默认的烧录 runner通过 board.cmake 配置支持 SWD 调试器。调试以 hello_world 应用为例构建后进行调试west build -b particle_boron samples/hello_world west debugwest debug会启动默认调试器如 pyocd 或 J-Link并进入 GDB 会话可进行断点、单步与变量查看等常规调试操作。注意 hello_world 示例构建时无需额外配置maybe-skip-config直接按上述命令执行即可。用示例验证板卡功能Particle Boron 板卡文档推荐使用两个 Zephyr 示例验证板卡上的按键与 LED 是否正常工作blinkysamples/basic/blinky驱动 LED0 以一定频率闪烁验证 GPIO 与时钟链路buttonsamples/basic/button读取按键SW0/MODE状态并打印到控制台验证按键输入与串口输出。将这两个示例分别构建并烧录到板卡即可确认 Zephyr 在 Particle Boron 上正确运行并作为后续开发的基础冒烟测试。写在最后Particle Boron 在 Zephyr 中的支持相当完整从 板卡文档、设备树、引脚控制、板级初始化 到 默认配置 一应俱全。开发者既能把它当作一块普通的 Feather 规格 BLE/Thread 开发板使用也可以借助板载 u-blox 调制解调器与 Zephyr 的蜂窝网络驱动栈快速构建低功耗蜂窝物联网应用。其 DTS overlay 设计SPI3 复用、UART 硬件流控可选也为同类板卡的引脚复用提供了良好的参考范式。【免费下载链接】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),仅供参考