ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Zephyr 平台下 Holyiot 25008 板卡指南:基于 nRF54L15 的 BLE/802.15.4 无线模块开发

Zephyr 平台下 Holyiot 25008 板卡指南:基于 nRF54L15 的 BLE/802.15.4 无线模块开发 Zephyr 平台下 Holyiot 25008 板卡指南基于 nRF54L15 的 BLE/802.15.4 无线模块开发【免费下载链接】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 RTOS 官方仓库中 Holyiot 25008 板卡文档 的深度解读与源码级扩展。Holyiot 25008 是一款基于 Nordic Semiconductor nRF54L15 SoC 的小型无线模块板载 32 MHz HFXO、32.768 kHz LFXO 晶振、一颗 RGB LED、一个按键以及 LIS2DH12 加速度传感器。读完本文你将掌握该板卡的硬件资源分布、引脚连接、Zephyr 设备树中的外设使能方式以及如何通过外部 SWD 探针完成构建与烧录并在此基础上运行blinky等示例应用。板卡概览Holyiot 25008 由 Holyiot 设计核心为 Nordic SemiconductornRF54L15SoC属于 nRF54L 系列集成 Arm Cortex-M33 应用核心Zephyr 中以nrf54l15/cpuapp形式呈现支持 BLE 与 IEEE 802.15.4 无线协议同时具备低功耗特性。该模块以小型化封装面向可穿戴、传感节点等电池供电场景。从 board.yml 可以看出 Zephyr 对该板卡的正式定义板卡标识符holyiot_25008/nrf54l15/cpuapp名称HOLYIOT-25008-nRF54L15-Application架构armCortex-M33SoCnrf54l15支持的 Zephyr 工具链gnuarmemb、zephyr启用sysbuildRAM 约 188 KB、Flash 约 1428 KBsupported列表声明支持的外设adc、counter、gpio、pwm、retained_mem、sensor、spi、watchdogKconfig 层面Kconfig.holyiot_25008 通过select SOC_NRF54L15_CPUAPP将板卡与 nRF54L15 应用核 SoC 绑定而 Kconfig.defconfig 额外开启了硬件栈保护HW_STACK_PROTECTION默认继承自ARCH_HAS_STACK_PROTECTION进一步强化了 Cortex-M33 的 TrustZone/MPU 栈防护能力。板载硬件资源与引脚连接根据板卡文档Holyiot 25008 板载资源如下32 MHz 高频晶振HFXO与32.768 kHz 低频晶振LFXO为无线协议栈与低功耗计时提供时钟基准RGB LEDP2.09红、P1.10绿、P2.07蓝按键P1.13LIS2DH12 加速度计SPI 接口P2.01SCK、P2.02MOSI、P2.04MISO、P2.05CS、P2.00INT1、P2.03INT2UARTP1.04TX、P1.05RX。在 holyiot_25008_common.dtsi 中这些硬件被一一映射为 Zephyr 设备树节点leds { compatible gpio-leds; led_red: led_r { gpios gpio2 9 GPIO_ACTIVE_LOW; label LED R; }; /* 绿、蓝 LED 同理 */ }; buttons { compatible gpio-keys; button0: button_0 { gpios gpio1 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW); label KEY; zephyr,code INPUT_KEY_0; }; }; aliases { led0 led_red; led1 led_green; led2 led_blue; led0-red led_red; led0-green led_green; led0-blue led_blue; accel0 lis2dh; sw0 button0; watchdog0 wdt31; };值得注意的实现细节三颗 LED 均配置为GPIO_ACTIVE_LOW即 GPIO 输出低电平点亮 LED这与模块上 LED 的共阳/灌电流接法对应led0-red/led0-green/led0-blue别名方便 RGB 应用通过标准别名直接控制颜色分量。按键配置为GPIO_PULL_UP | GPIO_ACTIVE_LOW即内部上拉、按下为低电平有效并提供zephyr,code INPUT_KEY_0以支持 Zephyr input 子系统。LIS2DH12 在spi00总线上挂载为子设备lis2dh0兼容st,lis2dh, st,lis2dh12SPI 时钟上限 8 MHz并通过两个irq-gpios接入P2.00INT1与P2.03INT2中断引脚spi00 { status okay; cs-gpios gpio2 5 GPIO_ACTIVE_LOW; pinctrl-0 spi00_default; pinctrl-1 spi00_sleep; pinctrl-names default, sleep; lis2dh: lis2dh0 { compatible st,lis2dh, st,lis2dh12; reg 0; spi-max-frequency 8000000; irq-gpios gpio2 0 GPIO_ACTIVE_HIGH, gpio2 3 GPIO_ACTIVE_HIGH; status okay; }; };引脚复用Pinctrl细节引脚复用文件 定义了 UART 与 SPI 的默认/休眠两套引脚状态uart20_defaultUART_TX→P1.04UART_RX→P1.05RX 带bias-pull-upuart20_sleepTX/RX 均启用low-power-enable进入低功耗引脚保持spi00_defaultSPIM_SCK→P2.01、SPIM_MOSI→P2.02、SPIM_MISO→P2.04spi00_sleep三线均启用low-power-enable。上述节点均标注/omit-if-no-ref/即未被引用时不会生成从而避免在未使用 UART/SPI 的固件中白白占用引脚配置。设备树中uart20通过pinctrl-names default, sleep在运行与休眠状态间自动切换引脚状态。外设使能与时钟、电源配置holyiot_25008_common.dtsi 同时使能了该板卡上的一系列外设与系统资源包括gpio0/1/2、gpiote20/30、wdt31看门狗、radio、ieee802154802.15.4 无线、temp、clock、cpuapp_sram以及主/次电源调节器vregmain。在 nRF54L 系列特有的配置上需要注意lfxo { load-capacitors internal; load-capacitance-femtofarad 16000; status okay; }; hfxo { load-capacitors internal; load-capacitance-femtofarad 15000; status okay; }; vregmain { status okay; regulator-initial-mode NRF5X_REG_MODE_DCDC; }; grtc { owned-channels 0 1 2 3 4 5 6 7 8 9 10 11; /* Channels 7-11 reserved for Zero Latency IRQs, 3-4 for FLPR */ child-owned-channels 3 4 7 8 9 10 11; status okay; };HFXO/LFXO 使用内部负载电容HFXO 配置 15000 fF、LFXO 配置 16000 fF以匹配模块实际晶体主电压调节器vregmain初始化为DCDC 模式NRF5X_REG_MODE_DCDC提升供电效率利于低功耗场景grtc全局实时计数器声明了owned-channels与child-owned-channels其中通道 3–4 保留给 FLPR快速低功耗处理器7–11 保留给零延迟中断Zero Latency IRQ这部分通道划分是 nRF54L 双核/多核协作的关键配置。应用核设备树与内存分区应用核设备树 定义了板级模型与运行时选择/ { model HOLYIOT 25008; compatible holyiot,holyiot_25008-nrf54l15-cpuapp; chosen { zephyr,console uart20; zephyr,shell-uart uart20; zephyr,uart-mcumgr uart20; zephyr,bt-mon-uart uart20; zephyr,bt-c2h-uart uart20; zephyr,flash-controller rram_controller; zephyr,flash cpuapp_rram; zephyr,code-partition slot0_partition; zephyr,sram cpuapp_sram_app; zephyr,ieee802154 ieee802154; }; };chosen节点将uart20同时指定为控制台、Shell、mcumgr 与 BLE 监控/主机通信串口即一套 UART 复用于调试与 BLE 诊断Flash 使用cpuapp_rramRRAM 非易失存储器代码分区为slot0_partitionSRAM 为cpuapp_sram_app。文件末尾通过#include nordic/nrf54l15_cpuapp_partition.dtsi引入默认内存分区配置为 MCUboot 等引导加载方案预留插槽布局。应用核默认配置holyiot_25008_nrf54l15_cpuapp_defconfig开启了 UART、控制台与 GPIO 驱动并启用 ARM MPUCONFIG_SERIALy CONFIG_CONSOLEy CONFIG_UART_CONSOLEy CONFIG_GPIOy CONFIG_ARM_MPUy编程与调试Holyiot 25008没有板载调试器必须使用外部 SWD 探针如 J-Link、nRF5340-DK 自带调试器、pyOCD 支持的 CMSIS-DAP 设备等连接模块的SWDIO、SWCLK、VDD、GND四个引脚进行编程与调试。Zephyr 对该板卡支持的 runner 由 board.cmake 定义if(CONFIG_SOC_NRF54L15_CPUAPP) board_runner_args(jlink --devicenRF54L15_M33 --speed4000) endif() if(CONFIG_TFM_FLASH_MERGED_BINARY) set_property(TARGET runners_yaml_props_target PROPERTY hex_file tfm_merged.hex) endif() # Use system reset since the SWD header does not expose the reset pin. board_runner_args(nrfutil --softreset) include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)实现要点J-Link目标设备指定为nRF54L15_M33SWD 速度 4000 kHznrfutil使用--softreset软件复位而非硬件复位因为模块 SWD 排针未引出 RESET 引脚若启用 TrustZone 固件保护CONFIG_TFM_FLASH_MERGED_BINARY烧录文件会自动切换为合并后的tfm_merged.hex保证非安全固件与 TF-M 镜像一并写入。构建与烧录示例以blinky示例为例构建并烧录到该板卡目标标识为holyiot_25008/nrf54l15/cpuappwest build -b holyiot_25008/nrf54l15/cpuapp samples/basic/blinky west flashwest build会基于 Zephyr 环境自动完成设备树编译、Kconfig 配置与链接若本机已安装 nrfutil 或 J-Link 工具west flash会自动选择对应 runner 完成烧录由于该板卡启用了sysbuild使用 TrustZone/多镜像场景时构建系统会一并生成并烧录相关安全镜像运行后RGB LED 中至少一路默认led0即红色通道将按示例代码周期闪烁可通过该现象快速验证板卡与烧录链路是否正常。参考资料与后续深入板卡文档原文boards/holyiot/holyiot_25008/doc/index.rst板卡通用设备树boards/holyiot/holyiot_25008/holyiot_25008_common.dtsi应用核设备树与分区boards/holyiot/holyiot_25008/holyiot_25008_nrf54l15_cpuapp.dts引脚复用配置boards/holyiot/holyiot_25008/holyiot_25008_nrf54l15-pinctrl.dtsi烧录与调试配置boards/holyiot/holyiot_25008/board.cmake板卡元数据boards/holyiot/holyiot_25008/board.yml 与 板卡支持能力清单进一步探索可参考samples/sensor/lis2dh加速度计、samples/bluetooth系列BLE 无线、samples/net/ieee802154802.15.4 无线以及samples/boards/nordicNordic 板级示例在该板卡上的适配运行。需要注意的是具体外设支持与示例兼容性请以当前仓库源码为准不同 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),仅供参考
返回列表