Zephyr 中 Nordic nRF54L15 TAG 开发板实战指南:引脚资源、板级特性与 DK 调试烧录
【免费下载链接】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
nRF54L15 TAG(Target Application GPIO)是 Nordic Semiconductor 面向 nRF54L15 SoC 设计的一款小型硬件开发平台,可用于快速原型开发与传感器评估。本文以 Zephyr 仓库中 nRF54L15 TAG 板级文档 为主线,结合板级源码(设备树、Kconfig、CMake 配置)深入讲解其引脚分配、支持的特性、多核构建目标,以及如何借助 nRF54L DK 的板载调试器完成编程、调试与日志输出,帮助读者在 Zephyr 中快速上手这块开发板。
开发板概览:一块面向 nRF54L15 SoC 的 TAG 平台
nRF54L15 TAG 是用于为 nRF54L15 SoC 设计和开发应用的硬件开发平台。与完整的开发套件(DK)不同,TAG 形态通常更为紧凑,聚焦于将 SoC 的关键引脚、天线与调试接口暴露出来,便于直接集成到用户自己的硬件原型中。
在 Zephyr 仓库中,该板卡的定义位于 boards/nordic/nrf54l15tag,板级标识为nrf54l15tag,完整名称 "nRF54L15 TAG",厂商为nordic,SoC 为nrf54l15(见 board.yml)。
值得注意的是,nRF54L15 是双核 SoC,因此 TAG 板在 Zephyr 中对应多个构建目标(变体)。从 board.yml 可以看到:
| 构建目标 | 说明 |
|---|---|
nrf54l15tag/nrf54l15/cpuapp | 应用核(Cortex-M33),默认目标 |
nrf54l15tag/nrf54l15/cpuapp/ns | 应用核非安全(Non-Secure)变体,配合 TF-M 使用 |
nrf54l15tag/nrf54l15/cpuflpr | 低功耗核(FLPR,RV32) |
nrf54l15tag/nrf54l15/cpuflpr/xip | FLPR 的 XIP(片上执行)变体 |
在 Kconfig.nrf54l15tag 中,这四个目标分别通过select SOC_NRF54L15_CPUAPP或select SOC_NRF54L15_CPUFLPR关联到对应的 SoC 配置,从而让同一套板级定义支撑不同核的构建。
硬件资源与默认引脚分配
原文档给出了 TAG 板在**默认状态下(用户未焊接任何可选组件)**可用的引脚清单。这些引脚专为应用定制用途暴露,整理如下:
| 引脚 | 默认状态 |
|---|---|
| P0.01 | 可用 |
| P0.02 | 可用 |
| P0.04 | 可用 |
| P1.02 | 可用 |
| P1.03 | 可用 |
| P1.11 | SCL(i2c21) |
| P1.12 | SDA(i2c21) |
| P1.13 | 可用 |
| P1.14 | 可用 |
| P2.05 | 保留(Reserved) |
| P2.06 | 可用 |
| P2.07 | 可用 |
注意:默认情况下,ANT1 天线通过 GPIO Hogs 连接到 SoC。这意味着天线开关的控制引脚在设备树中由 GPIO Hog 机制在启动早期直接拉高/拉低,无需应用代码干预。
结合 nrf54l15tag_common.dtsi 可以进一步看出 TAG 板上的板载资源分布:
- RGB LED(LED1):由
gpio2端口控制,红/蓝/绿分别位于 P2.08(led1_red)、P2.09(led1_blue)、P2.10(led1_green),均为低电平有效,led0别名指向蓝色灯; - LED2(RGB):红/绿/蓝分别位于 P0.02、P0.04、P2.07,设备树中默认
status = "disabled",需要用户自行焊接后启用; - 按键:
button0位于 P0.00(上拉、低电平有效),button1位于 P0.01 但默认禁用;sw0别名指向button0; - I2C 实例 i2c21:SCL=P1.11、SDA=P1.12,标准速率(
I2C_BITRATE_STANDARD),并预置了 BME688(地址 0x76)与 ADXL367(地址 0x1d)两个默认禁用的传感器节点; - SPI 实例 spi22:SCK=P1.08、MOSI=P1.06、MISO=P1.05,片选 CS=P1.07,并预置 BMI270 IMU 传感器节点(8 MHz 最大 SPI 速率,中断引脚 P1.04);
- 天线开关:由 Skyworks sky13348 控制,V1=P1.09、V2=P1.10。在 nrf54l15tag_cpuapp_common.dtsi 中,通过两个 GPIO Hog 将 V1 拉高、V2 拉低,从而把 ANT1 天线默认接通到 SoC。
设备树中还为i2c21、spi22分别定义了default与sleep两套 pinctrl 状态,睡眠态启用low-power-enable,便于低功耗场景下自动切换引脚配置。
支持的 Zephyr 特性
TAG 板的应用核目标在 nrf54l15tag_nrf54l15_cpuapp.yaml 中声明了如下支持的特性:
- ADC(模数转换)
- Counter(计数器/定时器)
- DMIC(数字麦克风)
- GPIO(通用输入输出)
- I2C(两线接口)
- I2S(数字音频接口)
- PWM(脉宽调制)
- Retained Memory(保持内存)
- SPI(串行外设接口)
- Watchdog(看门狗)
同时该目标还声明了ram: 188(KB)、flash: 664(KB)的可用资源量,并启用sysbuild: true,意味着构建时会走 sysbuild 流程(例如 cpuapp 与 bootloader 或 TF-M 的联合构建)。默认 defconfig(nrf54l15tag_nrf54l15_cpuapp_defconfig)只开启了CONFIG_GPIO与CONFIG_ARM_MPU,其余外设按需通过 prj.conf 或 overlay 打开。
针对 cpuapp/ns 非安全变体,Kconfig.defconfig 做了几项关键默认配置:
- 默认启用
BUILD_WITH_TFM,即以 TF-M 作为安全执行环境(Secure Execution Environment); HAS_BT_CTLR跟随BT使能,允许在非安全侧运行蓝牙控制器;- 选择
USE_DT_CODE_PARTITION,代码分区由设备树指定; - 当启用 MCUboot 时,SPI NOR 的 Flash 布局页大小默认为 4096;
- 硬件栈保护
HW_STACK_PROTECTION默认跟随ARCH_HAS_STACK_PROTECTION。
编程与调试:通过 nRF54L DK 板载调试器
nRF54L15 TAG 板上没有独立的调试器,其编程与调试依赖nRF54L DK 的板载调试器,连接方式如下图所示:
nRF54L15 TAG 调试连接示意(Credit: Nordic Semiconductor)
操作流程如下:
- 将 nRF54L15 TAG 插入 nRF54L DK 的
DEBUG OUT排针; - 此时 DK 板载调试器的 SWD 信号会从 DK 板上的 nRF54L15 SoC改道到 TAG 上的 nRF54L15 SoC;
- 上电后,TAG 上的 SoC 即可像 nRF54L DK 板上的 nRF54L15 SoC 一样被编程和调试(参见 nrf54l15dk)。
供电方式与安全警告
需要特别留意的是:TAG 默认不会从DEBUG OUT接口取电。要为其供电,有两种方式:
- 在电池座中装入一颗CR2032 纽扣电池;
- 或者在 nRF54L DK 的
VDD SWD0引脚上外接 3.3V。
如果使用 DK 供电,可以将 DK 配置为输出 3.3V VDD,然后在 DK 的任意VDDIO引脚与VDD SWD0引脚之间接一根跳线。
警告:如果 TAG 上已插入纽扣电池,切勿向
VDD SWD0或 TAG 上的VDD施加 3.3V,否则可能造成损坏。
支持的烧录/调试工具(Runners)
从 board.cmake 可以看到,TAG 板通过nrfutil与jlink两套 runner 体系进行烧录调试,并根据目标核自动选择器件型号:
- 应用核(CPUAPP):
--device=nRF54L15_M33 --speed=4000(J-Link 器件名为 nRF54L15_M33); - 低功耗核(CPUFLPR):
--device=nRF54L15_RV32。
同时,board.yml 中为--recover、--erase、--reset等一次性操作定义了 runner 组合(nrfjprog / jlink / nrfutil),覆盖全部四个构建目标。若启用了CONFIG_TFM_FLASH_MERGED_BINARY,烧录目标会切换为合并后的tfm_merged.hex,确保 TF-M 与应用程序一并烧入。
另外,pre_dt_board.cmake 会向设备树编译流程追加-Wno-unique_unit_address_if_enabled编译标志,用于屏蔽 nRF54L15 中 power/clock/xo/lfclk 等节点地址重叠带来的设备树校验告警。
控制台与日志输出
nRF54L15 TAG 没有默认的控制台 UART 直连方案,Zephyr 文档推荐使用以下两种 snippet 获取控制台与日志输出:
方式一:Segger RTT(推荐)
启用 rtt-console snippet 将控制台重定向到 Segger RTT,配合 nRF Connect for Desktop / J-Link RTT Viewer 查看日志:
west build -p always -b nrf54l15tag/nrf54l15/cpuapp samples/hello_world --snippet rtt-console west flash方式二:NUS(Nordic UART Service)BLE 透传
启用 nus-console snippet,将控制台通过 BLE NUS 服务透传,适合无线场景:
west build -p always -b nrf54l15tag/nrf54l15/cpuapp samples/hello_world --snippet nus-console west flash两条命令均以samples/hello_world为例:先以-p always做干净构建并指定板型,再用west flash通过 DK 板载调试器烧录到 TAG 的 nRF54L15 SoC。读者也可以将samples/hello_world替换为 samples/drivers 下与 I2C、SPI、ADC 等特性对应的示例程序,以验证 TAG 板的实际外设功能。
小结
nRF54L15 TAG 是一块紧凑、灵活的 nRF54L15 原型平台:默认暴露了 P0/P1/P2 端口共 12 个引脚(含 I2C21 的 SCL/SDA),板载 RGB LED、按键、天线开关与预置传感器节点,支持应用核(含非安全变体)与 FLPR 低功耗核共 4 个构建目标。借助 nRF54L DK 的DEBUG OUT接口即可完成编程调试,再配合 RTT 或 NUS snippet 解决控制台输出问题。上述全部实现细节均可在 boards/nordic/nrf54l15tag 目录下的设备树、Kconfig 与 CMake 文件中找到依据,可作为在 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),仅供参考