Zephyr 开发板指南:Electronut Labs Blip 与 Papyr(nRF52840)板级支持、引脚映射与 Black Magic Probe 调试实战

发布时间:2026/9/17 1:55:29
Zephyr 开发板指南:Electronut Labs Blip 与 Papyr(nRF52840)板级支持、引脚映射与 Black Magic Probe 调试实战 Zephyr 开发板指南Electronut Labs Blip 与 PapyrnRF52840板级支持、引脚映射与 Black Magic Probe 调试实战【免费下载链接】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本指南以 Zephyr 仓库中 boards/electronut 目录下的板级文档与配置源码为核心系统讲解 Electronut Labs 出品的两款 nRF52840 开发板 ——Blip与Papyr—— 在 Zephyr 中的完整支持情况从 SoC 特性、外设可用性、引脚映射到基于 Black Magic ProbeBMP的构建、烧录与调试流程。读完本文你将能够为这两块板正确选择板名nrf52840_blip/nrf52840_papyr读懂其设备树与引脚配置并独立完成样例程序的编译烧录与 GDB 调试。一、板块总览Blip 与 Papyr 在 Zephyr 中的定位Electronut Labs 是一个以小巧、低功耗、面向创客与可穿戴场景著称的硬件团队。在 Zephyr 的板级支持树中boards/electronut/index.rst 作为该厂商板卡的聚合索引页通过 toctree 收录了两块开发板的完整文档板卡Zephyr 板名核心特征板级文档Blipnrf52840_blip紧凑型、带天线与排针适合小型化原型boards/electronut/nrf52840_blip/doc/index.rstPapyrnrf52840_papyr带电子墨水屏e-paper的便携显示板boards/electronut/nrf52840_papyr/doc/nrf52840_papyr.rst两块板均基于 Nordic Semiconductor nRF52840ARM Cortex-M4F因此在 Zephyr 中外设能力高度一致但引脚分配与板载硬件Papyr 额外带 e-paper 显示屏有明显差异。下文分别展开。二、Blipnrf52840_blip紧凑型 nRF52840 开发板Electronut Labs Blip 开发板实物图2.1 硬件概述与支持的设备Blip 硬件基于 Nordic nRF52840 ARM Cortex-M4F 处理器Zephyr 中为该板启用了以下设备ADC模数转换器CLOCK时钟FLASH片上闪存GPIO通用输入输出I2C内部集成电路总线MPU内存保护单元NVIC嵌套向量中断控制器PWM脉冲宽度调制RADIO蓝牙低功耗 BLE 与 802.15.4RTCnRF RTC 系统时钟Segger RTTRTT 控制台SPI串行外设接口UART通用异步收发器USB通用串行总线WDT看门狗定时器这些能力在板级设备树 boards/electronut/nrf52840_blip/nrf52840_blip.dts 中有完整体现其中chosen节点将uart0指定为 Zephyr 控制台zephyr,console、Shell UART、mcumgr 与蓝牙 monitor/control UART并将ieee802154设为 802.15.4 协议栈的默认控制器。2.2 双外部晶振Blip 板载两颗外部晶振慢速时钟slow clock32.768 kHz通常作为 RTC / 低功耗定时基准主时钟main clock32 MHz作为系统高频时钟源。这两组频率是 nRF52840 常见的外部晶振配置相关时钟树由 Nordic SoC 设备树nordic/nrf52840_qiaa.dtsi描述板级文件在此基础上使能相应外设。2.3 引脚连接Connections and IOsLED引脚功能板级定义P0.13LED1绿色led0GPIO_ACTIVE_LOWP0.14LED2红色led1GPIO_ACTIVE_LOWP0.15LED3蓝色led2GPIO_ACTIVE_LOW注意三颗 LED 均为低电平有效GPIO_ACTIVE_LOW这一细节定义在 nrf52840_blip.dts 的leds节点中使用gpio-ledscompatible。按键Push buttonsBUTTON1 SW1 P1.07对应设备树中button0zephyr,code INPUT_KEY_0Reset SW5 P0.18该引脚亦可复用为 GPIOUART板载 Black Magic ProbeBMP不支持硬件流控因此仅引出 RX/TXTX P0.6RX P0.8UART 节点在设备树中配置为nordic,nrf-uart默认波特率current-speed 115200。需要说明的是虽然文档标注 BMP 不支持流控但 pinctrl 文件 nrf52840_blip-pinctrl.dtsi 中仍为uart0配置了 RTS/CTS 引脚P0.5/P0.7便于按需扩展。I2CI2C 引脚连接至板载传感器I2C0SDA P0.12SCL P0.11设备树中i2c0使用nordic,nrf-twicompatible 并启用此外还预配置了i2c1SDAP0.2、SCLP0.3与spi0但两者在默认配置下未启用status注释掉原因是 nRF52840 外设存在引脚复用冲突详见下文。SPISPI1 连接板载 MicroSD 卡槽SCK P0.25MOSI P1.02MISO P0.24CS片选P0.17MicroSD设备树中spi1、spi2、spi3均处于status okay状态且每个 SPI 实例都配了独立的 pinctrl 引脚组spi1SCKP0.25、MOSIP1.02、MISOP0.24spi2SCKP0.26、MOSIP0.23、MISOP0.27spi3SCKP0.29、MOSIP0.30、MISOP0.312.4 从源码看板级配置Blip 的板级支持由五个核心文件组成理解它们即可掌握 Zephyr 板卡移植的基本套路文件作用nrf52840_blip.dts设备树主文件定义模型、compatible、LED/按键/别名、使能外设nrf52840_blip-pinctrl.dtsi引脚控制为各外设定义default/sleep两套 psel 引脚组nrf52840_blip_defconfig默认 Kconfig开启 MPU、GPIO、串口与控制台board.cmake烧录器适配include(blackmagicprobe.board.cmake)board.yml板卡元数据name、vendor、SoC 类型几点值得注意的实现细节电源模式reg1 { regulator-initial-mode NRF5X_REG_MODE_DCDC; }将内部稳压器初始化为 DCDC 模式以提升电池供电场景下的能效。复位引脚uicr { gpio-as-nreset; }将 GPIO 用作复位配合按键定义。外设互斥注释明确提示spi0与i2c0不能同时启用、i2c1与spi1不能同时启用这是 nRF52840 引脚分配受限所致用户通过 overlay 扩展外设时需注意避免冲突。默认配置nrf52840_blip_defconfig仅启用最基础的CONFIG_ARM_MPU、CONFIG_GPIO、CONFIG_SERIAL、CONFIG_CONSOLE、CONFIG_UART_CONSOLE其余外设BLE、USB、IEEE 802.15.4由应用层按需开启保证默认镜像精简。板卡元数据board.yml声明架构为arm工具链支持 Zephyr SDK 与 GNU Arm Embeddedsupported列表包含adc、i2c、usb_device、bluetooth。三、Papyrnrf52840_papyr带电子墨水屏的便携显示板Electronut Labs Papyr 开发板实物图3.1 硬件概述与支持的设备Papyr 与 Blip 共用 nRF52840 平台Zephyr 中启用设备列表与 Blip 基本一致ADC、CLOCK、FLASH、GPIO、I2C、MPU、NVIC、PWM、RADIO、RTC、SPI、UART、USB、WDT额外还支持COUNTER计数器。其最大特点是板载一块通过 SPI 连接的电子墨水屏e-paper display因此引脚资源大量投向显示控制。3.2 双外部晶振与 Blip 相同慢速时钟32.768 kHz主时钟32 MHz3.3 引脚连接Connections and IOsLED引脚功能板级定义P0.13LED1绿色led0GPIO_ACTIVE_LOWP0.15LED2蓝色led1GPIO_ACTIVE_LOWP0.14LED3红色led2GPIO_ACTIVE_LOW与 Blip 相比Papyr 的蓝、红 LED 引脚对调。此外 Papyr 还在设备树中定义了PWM LEDpwm-ledscompatible基于pwm0周期 20 ms、极性反转并通过别名pwm-led0/1/2与green/blue/red-pwm-led暴露给样例程序可用于呼吸灯等 PWM 亮度调节场景。按键Push buttonsReset SW0 P0.18同时可作 GPIO注意 Papyr 文档仅列出一个复位/用户按键设备树中button0INPUT_KEY_0即挂在该引脚上。UARTTX P0.8RX P0.7与 Blip 不同Papyr 的 UART TX/RX 引脚定义相反P0.8 为 TX、P0.7 为 RX配置为nordic,nrf-uart波特率 115200。I2CI2C0I2C 引脚连接板载传感器SDA P0.5SCL P0.6设备树中i2c0以nordic,nrf-twi启用。SPISPI1电子墨水屏接口e-paper 显示屏通过 SPI1 连接SCK P0.31MOSI P0.29MISO P1.1显示屏未使用按绝对引脚枚举为第 33 脚除 SPI 数据线外显示屏还占用如下控制引脚E-ink enable P0.11通过 MOSFET 切断显示屏供电CS P0.30BUSY P0.3D/C P0.28RES P0.2Papyr 的 pinctrl 文件 nrf52840_papyr-pinctrl.dtsi 为uart0、i2c0、spi1、pwm0提供了对应的引脚组全部采用defaultsleep双态睡眠态开启low-power-enable以降低漏电。3.4 从源码看板级配置Papyr 的板级文件结构与 Blip 完全一致nrf52840_papyr.dts定义模型Papyr、LED/按键/PWM-LED/别名并启用adc、gpiote、gpio0/1、uart0、i2c0、spi1、pwm0、ieee802154、usbdnrf52840_papyr_defconfig与 Blip 相同的五条基础配置MPU、GPIO、SERIAL、CONSOLE、UART_CONSOLEboard.cmake同样include(blackmagicprobe.board.cmake)默认使用 Black Magic Probe 兼容调试器board.yml声明nrf52840_papyr板名与 nRF52840 SoC。与 Blip 的差异点Papyr 没有启用额外的 SPI2/SPI3 与 I2C1而是将引脚资源集中到 e-paper 显示屏SPI1 5 个 GPIO 控制线与 PWM LED 上两块板的chosen节点同样把uart0设为 console/Shell/mcumgr/蓝牙调试串口。四、编程与调试基于 Black Magic Probe 的完整工作流两块板都板载Black Magic ProbeBMP调试器因此在 Zephyr 中的构建、烧录、调试流程完全一致。BMP 的最大优势是GDB 可直接连接其串口设备无需额外的 GDB Server。4.1 串口设备识别Linux连接开发板后BMP 会以两个 USB 串口设备出现常见为/dev/ttyACM0调试器端口供 GDB 使用/dev/ttyACM1串口端口直连 SoC供应用输出使用GDB 免 GDB Server 直连调试器的关键命令target external /dev/ttyACM04.2 构建并烧录 hello_world完整步骤如下。第一步先用你习惯的终端工具监听串口输出$ minicom -D tty_device -b 115200将tty_device替换为 BMP 的串口端口Linux 下即/dev/ttyACM1。第二步以标准方式构建并烧录hello_world样例# Blip 板 $ west build -b nrf52840_blip samples/hello_world $ west flash # Papyr 板 $ west build -b nrf52840_papyr samples/hello_world $ west flash对应的hello_world样例源码位于 samples/hello_world。由于 board.cmake 已声明blackmagicprobe作为烧录器west flash会通过 BMP 的调试串口完成固件下载。注意west flash之后可能需要手动按一次复位Reset键程序才会开始执行使用west debug或west attach则无需手动复位。4.3 调试与会话BMP 支持完整的调试与会话挂接可直接使用$ west debug # 启动调试会话 $ west attach # 挂接到正在运行的目标两种方式都会自动复用板级默认的 BMP 调试器配置zephyr,debug相关配置来源于blackmagicprobe.board.cmake配合上文的target external /dev/ttyACM0即可在 GDB 内进行断点、单步、寄存器查看等操作。4.4 测试板载 LED 与按键Zephyr 提供两个开箱即用的样例用于验证板卡硬件是否工作正常blinky控制 LED 闪烁验证 GPIO/LED 驱动与设备树别名led0button读取按键事件验证按键中断与sw0别名。构建烧录后观察 LED 是否按预期闪烁、按键是否触发事件即可确认 Zephyr 在这块板上的运行状态。Blip 的 LED 与按键定义位于 nrf52840_blip.dtsleds与buttons节点Papyr 的对应定义位于 nrf52840_papyr.dts可作为排查硬件映射问题的第一参考。五、延伸阅读与上手建议板级文档原文Blip 见 boards/electronut/nrf52840_blip/doc/index.rstPapyr 见 boards/electronut/nrf52840_papyr/doc/nrf52840_papyr.rst设备树与引脚配置boards/electronut/nrf52840_blip/与boards/electronut/nrf52840_papyr/目录下的.dts、-pinctrl.dtsi、_defconfig、board.cmake、board.yml五件套是理解板卡移植的核心SoC 级定义两块板都引用nordic/nrf52840_qiaa.dtsi与nordic/nrf52840_partition.dtsi其中分区表定义了 MCUboot 等场景下的 Flash 布局上手顺序建议先用hello_world验证串口输出minicom 监听/dev/ttyACM1再用blinky/button验证 GPIO最后通过west debug/west attach熟悉 BMP 调试流程。若使用 Papyr可进一步研究其 e-paper 显示链路SPI1 E-ink enable/CS/BUSY/D/C/RES 控制线与 PWM LED 呼吸效果。【免费下载链接】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),仅供参考