3. 开发环境与调试工具搭建

nRF54 系列(如 nRF54L15、nRF54H20)的射频调试不是“装个 IDE 就能跑”的简单任务。它涉及三层连接:工具链层(nRF Connect SDK + nRF Util + VS Code)、调试探针层(J-Link 与 SWD 物理链路)、射频测量层(频谱仪/综测仪与射频口)。这三层任何一层配置错误,都会表现为“程序能烧进去但射频指标测不出来”或“仪器读数与固件设置不符”。本节按“先搭工具链、再通调试链路、最后接射频仪器”的顺序展开,并给出可复现的配置样例与判断依据。

一、工具链的职责划分与安装顺序

三者不是并列关系,而是有明确分工:nRF Util 是底层命令行工具与包管理器,负责安装 SDK、工具链、J-Link 驱动;nRF Connect SDK(NCS) 是包含 Zephyr、协议栈、示例与构建系统的源码集合;VS Code + nRF Connect 扩展 是图形化入口,调用前两者完成构建、烧录与调试。因此安装顺序必须是:nRF Util → 通过 nRF Util 安装 toolchain 与 SDK → 安装 VS Code 扩展并指向已安装的 SDK。

典型命令流程(Windows/macOS/Linux 通用,示例版本号仅作演示):

# 1. 安装 nRF Util(以 macOS/Linux 为例)
curl -L https://developer.nordicsemi.com/.pc-tools/nrfutil/... -o nrfutil
chmod +x nrfutil && sudo mv nrfutil /usr/local/bin/

# 2. 安装 device 与 toolchain 命令
nrfutil install device
nrfutil install toolchain-manager

# 3. 安装工具链(示例版本 v2.9.0)
nrfutil toolchain-manager install --ncs-version v2.9.0

# 4. 安装 SDK
nrfutil sdk-manager install v2.9.0

# 5. 查看已安装环境
nrfutil toolchain-manager list
nrfutil sdk-manager list

安装完成后,VS Code 中安装 nRF Connect for VS Code 扩展,在设置里把 nRF Connect › Toolchain 指向 ~/.nrfutil/toolchains/ 下的版本目录,把 nRF Connect › SDK 指向 SDK 路径。此时新建应用(Create a new application)应能正常列出 samples/bluetooth/peripheral_uart 等示例,说明工具链已打通。

二、J-Link 与 SWD 物理链路配置

nRF54 使用 SWD 两线调试(SWDIO + SWCLK),外加 VTG 参考电压与 GND。J-Link 通过 10-pin 或 20-pin 排针连接目标板。关键配置点有三个:

  • 接口电压:nRF54L15 的 VDD 通常为 1.8 V 或 3.3 V,J-Link 的 VTG 必须与目标板 I/O 电压一致,否则 SWD 通信不稳定甚至无法识别。
  • 复位方式:nRF54 支持 RESET 引脚复位与 nRESET 软复位。若目标板未引出 RESET,需在 J-Link 配置中关闭硬件复位,改用 Connect under reset 或纯 SWD 连接。
  • 调试口保护:nRF54 支持 APPROTECT(访问端口保护)。若芯片被锁,J-Link 会报 Cannot connect to target,需通过 nrfutil device recover 执行恢复(会擦除芯片)。

验证链路是否正常的命令:

# 列出已连接的 J-Link
nrfutil device list

# 读取目标芯片信息(应返回 nRF54L15 等型号与内核信息)
nrfutil device read --serial-number <SN> --family NRF54L

# 若被锁,执行恢复
nrfutil device recover --serial-number <SN>

在 VS Code 中,选择 Connected Devices 面板,应能看到 J-Link 序列号与目标芯片型号。若只显示 J-Link 而无芯片型号,说明 SWD 链路或供电有问题,优先检查 VTG 与 GND。

三、射频测试仪器的连接配置

射频测量层是本节最容易出错的部分。nRF54 的射频口通常为单端 50 Ω,通过匹配网络引出到 SMA 或 U.FL 连接器。连接频谱仪/综测仪时需注意:

  • 线缆与衰减:使用 50 Ω 同轴线,若发射功率接近仪器输入上限(如 +10 dBm),需加 20~30 dB 衰减器,避免损坏前端。
  • 参考电平:频谱仪参考电平设为略高于预期峰值(例如预期 0 dBm,参考电平设 +5 dBm),避免削顶。
  • 触发与同步:测量蓝牙 LE 广播包时,可用仪器的 Bluetooth LE 解调选件,或使用外部触发(GPIO 打脉冲)对齐发射窗口。

一个典型的传导测试连接链为:nRF54 射频口 → 匹配网络 → U.FL → 同轴线 → 衰减器 → 频谱仪 RF IN。若使用综测仪(如 CMW500),则通过 RF1 COM 口连接,并在仪器侧设置 Bluetooth LE 测量模式,选择对应信道(2402/2426/2480 MHz)。

建议在正式测量前,先用 nrfutil device 确认芯片已烧录射频测试固件(如 radio_test 示例),再连接仪器。这样可排除“固件未发射”与“仪器未收到”两类问题的混淆。

四、三层链路的联合验证

把三层串起来验证,最直接的方式是烧录 samples/radio/radio_test 示例,让芯片在指定信道持续发射单载波,然后用频谱仪观察。示例参数:信道 2402 MHz、发射功率 0 dBm、调制关闭(CW)。若频谱仪在 2402 MHz 处看到约 0 dBm 的峰值,且频偏在 ±20 ppm 内,说明工具链、J-Link、射频链路全部正常。

若峰值明显偏低(如 -20 dBm),依次排查:固件发射功率设置、匹配网络焊接、衰减器数值、仪器参考电平。若频率偏移过大,检查晶振负载电容与 CONFIG_CLOCK_CONTROL_NRF 相关配置。

nRF54 射频调试三层连接架构 ① 工具链层 nRF Util 包管理 / 设备命令 toolchain / sdk nRF Connect SDK Zephyr + 协议栈 示例 / 构建系统 VS Code nRF Connect 扩展 图形化构建/烧录 ② 调试探针层 J-Link 探针 SWDIO / SWCLK VTG / GND / RESET nRF54 目标板 APPROTECT 状态 VDD 1.8V / 3.3V nrfutil device list / read / recover 链路验证命令 ③ 射频测量层 射频口 50 Ω 单端 U.FL / SMA 衰减器 20~30 dB 保护前端 频谱仪 / 综测仪 参考电平 +5 dBm BLE 解调选件 判读依据(示例) 2402 MHz 峰值 ≈ 0 dBm 频偏 ≤ ±20 ppm 无杂散超标 烧录/调试 射频输出 常见断点:VTG 电压不匹配 → SWD 无法识别;衰减器缺失 → 仪器前端过载;APPROTECT 未恢复 → 无法连接目标

五、配置检查清单

在开始任何射频测量前,按以下顺序逐项确认,可避免绝大多数“测不到”问题:

检查项正确状态异常表现
nRF Util 版本≥ 5.x,device 命令可用命令不存在或报错
Toolchain 与 SDK 版本两者版本号一致构建时报找不到 Zephyr
J-Link VTG与目标板 VDD 一致设备列表只显示 J-Link
APPROTECT已解锁或已恢复Cannot connect to target
射频线缆50 Ω,衰减器已接峰值偏低或仪器报警
仪器参考电平略高于预期峰值波形削顶或底噪抬高
执行 nrfutil device recover 会擦除芯片全部内容,包括 APPROTECT 配置与已烧录固件。恢复后需重新烧录测试固件,并重新确认调试口保护策略。