Zephyr MAX32680 EVKIT 开发板支持详解:硬件资源、跳线配置与烧录调试实战
【免费下载链接】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 仓库中 MAX32680 EVKIT 官方板级文档 及其配套的设备树、默认配置与烧录脚本,系统讲解max32680evkit这块 ADI 超低功耗无线 SoC 评估板在 Zephyr 中的硬件能力、25 组板载跳线(JP1–JP25)的电气含义、设备树中预置的 UART/显示/按键/Flash 分区资源,以及通过 OpenOCD 完成west flash/west debug的完整流程。读完本文,读者可以直接在该板上编译并运行 Zephyr 固件,理解其调试接口的 1.8V 电平约束与全片擦除的实现机制。
1. 板级概览
MAX32680 评估套件(EV kit)是一个用于评估 MAX32680 微控制器能力的硬件平台。MAX32680 是一款面向工业与医疗传感器场景的先进 SoC,板载单电感多输出(SIMO)降压调节器系统负责供电管理,并集成了新一代Bluetooth 5.2 LE无线电。Zephyr 的移植即运行在该 MAX32680 MCU 之上。
在 Zephyr 中,该板对应的构建标识符(board qualifier)为max32680evkit/max32680/m4,其声明位于 boards/adi/max32680evkit/max32680evkit_max32680_m4.yaml:
vendor: adi、type: mcu、arch: arm;- 支持工具链:
zephyr与gnuarmemb; - 存储容量声明:
ram: 48、flash: 512(单位 KB)。
2. 硬件规格
2.1 MAX32680 MCU
- 超低功耗无线微控制器
- 片内 100MHz 振荡器
- 512KB Flash 与 128KB SRAM,其中一个 32KB SRAM 组可选 ECC
- Bluetooth 5.2 LE 无线电
- 专用超低功耗 32 位 RISC-V 协处理器,卸载时序敏感的蓝牙处理
- 支持 AoA、AoD、LE Audio 与 Mesh
- 高吞吐模式(2Mbps)、长距离模式(125kbps 与 500kbps)
- 接收灵敏度 -97.5dBm,发射功率 +4.5dBm
- 单端天线接口(50Ω)
- 智能集成,降低 BOM、成本与 PCB 面积
- 两个 16 位至 24 位 Sigma-Delta ADC,12 个通道可分配给任意 ADC,分辨率与采样率灵活(24 位 @ 0.4ksps,16 位 @ 4ksps)
- 4 路外部输入、10 位 Sigma-Delta ADC @ 7.8ksps
- 12 位 DAC
- 片上温度传感器
- 数字外设:2 路 SPI、2 路 I2C、最多 4 路 UART、最多 36 个 GPIO
- 定时器:6 个 32 位定时器、2 个看门狗定时器、2 路脉冲串输出、1-Wire 主机
- 电源管理,最大化电池寿命
- 2.0V 至 3.6V 供电电压范围
- 集成 SIMO 电源调节器
- 动态电压调节(DVS)
- 3.0V 下 ACTIVE 模式电流 23.8μA/MHz(Coremark)
- 3.0V 下 32KB SRAM 保持电流 4.4μA
- 低功耗模式下 SRAM 保持可配置
- 健壮的安全性与可靠性
- TRNG
- 安全非易失密钥存储与 AES-128/192/256
- 安全启动以保护 IP/固件
- 工作温度 -40 °C 至 +85 °C
2.2 EVKIT 板载外部器件
- SMA 连接器,用于外接蓝牙天线
- 128 x 128(1.45 英寸)彩色 TFT 显示屏,SPI 接口
- 两颗可选的高精度板载电压基准
- USB 2.0 Micro B 转串口 UART
- 通过板载跳线在 UART1 与 LPUART0 之间选择
- 所有 GPIO 信号通过 0.1 英寸排针引出
- 4 路模拟输入经 SMA 连接器接入(配置为差分)
- 8 路模拟输入经 0.1 英寸排针接入(配置为单端)
- 12 路模拟输入可选外挂离散滤波网络
- DAC 经 SMA 连接器或测试点引出
- 10 针 SWD 连接器(JH10)
- 10 针 RV JTAG 连接器
- 板电源由 USB 口提供
- 板载 3.3V LDO 为 MAX32680 内部 SIMO 供电
- 提供测试环路,可外接可选的 VCORE 电源
- 通过跳线可对全部 IC 电源轨进行独立电流测量
- 2 个通用 LED 与 2 个通用按键
2.3 Zephyr 声明支持的功能
根据 board.yml 中supported列表,该板在 Zephyr 中声明支持:gpio、serial、trng、i2c、dma、watchdog、spi、adc、counter、w1、flash、rtc_counter。
3. 连接与跳线配置(JP1–JP25)
该 EVKIT 上有 25 组跳线,分别控制电源、基准、I2C 上拉电平、LED 连接、HART/FSK 模拟电路以及 USB 串口桥接的目标 UART。以下为文档中完整定义的跳线行为表:
| 跳线 | 信号 | 设置 | 说明 |
|---|---|---|---|
| JP1 | VREGI | Open | 断开 MAX32680 SIMO 的 3.3V 供电 |
| JP1 | VREGI | Closed | 将 3.3V 连接到 MAX32680 SIMO |
| JP2 | REF0P | 2-1 | 将外部高精度电压基准连接到 REF0P |
| JP2 | REF0P | 2-3 | 将内部电压基准连接到 REF0P |
| JP3 | REF0N | Open | 将 REF0N 与地断开 |
| JP3 | REF0N | Closed | 将 REF0N 连接到地 |
| JP4 | VDDIO_AUX | Open | 将 VDDIO_AUX 与上拉及基准电压断开 |
| JP4 | VDDIO_AUX | Closed | 将 VDDIO_AUX 连接到上拉及基准电压 |
| JP5 | VDDIOH | Open | 将 VREGO_A 连接到 VDDIOH |
| JP5 | VDDIOH | Closed | 将外部 LDO 的 3.3V 连接到 VDDIOH |
| JP6 | REF1P | 2-1 | 将外部高精度电压基准连接到 REF1P |
| JP6 | REF1P | 2-3 | 将内部电压基准连接到 REF1P |
| JP7 | REF1N | Open | 将 REF1N 与地断开 |
| JP7 | REF1N | Closed | 将 REF1N 连接到地 |
| JP8 | I2C0_SDA / I2C0_SCL | 2-1 | I2C0 上拉连接到 VDDIO_AUX(1.8V) |
| JP8 | I2C0_SDA / I2C0_SCL | 2-3 | I2C0 上拉连接到 3.3V |
| JP9 | I2C1_SDA / I2C1_SCL | 2-1 | I2C1 上拉连接到 VDDIO_AUX(1.8V) |
| JP9 | I2C1_SDA / I2C1_SCL | 2-3 | I2C1 上拉连接到 3.3V |
| JP10 | P0_24 | Open | 断开红色 LED D1 与 P0_24 的连接 |
| JP10 | P0_24 | Closed | 将红色 LED D1 连接到 P0_24 |
| JP11 | P0_25 | Open | 断开绿色 LED D2 与 P0_25 的连接 |
| JP11 | P0_25 | Closed | 将绿色 LED D2 连接到 P0_25 |
| JP12 | FSK_IN | Open | 将 FSK_IN 与 HART 模拟电路断开 |
| JP12 | FSK_IN | Closed | 将 FSK_IN 连接到 HART 模拟电路 |
| JP13 | RCV_FSK | Open | 将 RCV_FSK 与 CC LOOP 断开 |
| JP13 | RCV_FSK | Closed | 将 RCV_FSK 连接到 CC LOOP |
| JP14 | FSK_OUT | Open | 将 FSK_OUT 与 HART 模拟电路断开 |
| JP14 | FSK_OUT | Closed | 将 FSK_OUT 连接到 HART 模拟电路 |
| JP15 | RCV_FSK | Open | 将 RCV_FSK 与 XFMR LOOP 断开 |
| JP15 | RCV_FSK | Closed | 将 RCV_FSK 连接到 XFMR LOOP |
| JP16 | RLOAD | Open | 将 249Ω 电阻分流器从 CC LOOP 断开 |
| JP16 | RLOAD | Closed | 将 249Ω 电阻分流器连接到 CC LOOP |
| JP17 | FSK AMP GAIN | Open | 启用 FSK 可变放大增益 |
| JP17 | FSK AMP GAIN | Closed | 禁用 FSK 可变放大增益 |
| JP18 | AMP BYPASS | 2-1 | 启用 FSK 放大器 |
| JP18 | AMP BYPASS | 2-3 | 旁路 FSK 放大器 |
| JP19 | FSK AMP GAIN | Open | 启用 FSK 固定放大增益 |
| JP19 | FSK AMP GAIN | Closed | 禁用 FSK 固定放大增益 |
| JP20 | HART_RTS | Open | 启用 HART_RTS 光耦收发器 |
| JP20 | HART_RTS | Closed | 旁路 HART_RTS 光耦收发器 |
| JP21 | RLOAD | Open | 将 249Ω 电阻分流器从 XFMR LOOP 断开 |
| JP21 | RLOAD | Closed | 将 249Ω 电阻分流器连接到 XFMR LOOP |
| JP22 | UART0_RX | 2-1 | 断开 USB 桥接器与 UART1_RX(P0.12) |
| JP22 | UART0_RX | 2-3 | 将 USB 桥接器连接到 LPUART_RX(P2.6) |
| JP23 | UART0_TX | 2-1 | 断开 USB 桥接器与 UART1_TX(P0.13) |
| JP23 | UART0_TX | 2-3 | 将 USB 桥接器连接到 LPUART_TX(P2.7) |
| JP24 | HART_IN | Open / 1-2 | 断开 / 连接 USB 桥接器 TX 与 HART_IN(P0.1) |
| JP24 | HART_OUT | Open / 2-3 | 断开 / 连接 USB 桥接器 RX 与 HART_OUT(P0.0) |
| JP24 | HART_RTS | Open / 3-4 | 断开 / 连接 USB 桥接器 TX 与 HART_RTS(P0.3) |
| JP24 | HART_OCD | Open / 4-5 | 断开 / 连接 USB 桥接器 TX 与 HART_OCD(P0.2) |
| JP25 | RSTN | Open | 将 DUT_3V3_RSTN 与 RSTN 断开 |
| JP25 | RSTN | Closed | 将 DUT_3V3_RSTN 连接到 RSTN |
其中对 Zephyr 用户最关键的有三组:JP1(SIMO 的 3.3V 供电通断)、JP22/JP23(决定 USB 串口桥接器接的是 UART1 还是 LPUART,直接影响控制台输出在哪一路)、以及JP10/JP11(决定 P0_24/P0_25 上的 LED 是否接入)。
4. 板级设备树:控制台、显示、按键与 Flash 分区
板级设备树 max32680evkit_max32680_m4.dts 在 SoC 基座adi/max32/max32680-m4.dtsi(位于 dts/arm/adi/max32/ 目录)之上做了板级配置,核心内容如下:
4.1 chosen 节点与外设启用
chosen { zephyr,code-partition = &code_partition; zephyr,console = &uart1; zephyr,shell-uart = &uart1; zephyr,sram = &sram2; zephyr,flash = &flash0; zephyr,display = &st7735; };- 控制台绑定到
uart1,引脚复用为uart1a_tx_p0_13/uart1a_rx_p0_12(即 P0.13/P0.12),与跳线表 JP22/JP23 中 “2-1” 位置的 USB 桥接器目标一致,参数为 115200 波特率、8 数据位、无校验:
&uart1 { pinctrl-0 = <&uart1a_tx_p0_13 &uart1a_rx_p0_12>; pinctrl-names = "default"; current-speed = <115200>; >led1: led_1 { gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; label = "Red LED"; }; led2: led_2 { gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; label = "Blue LED"; };两个 LED 位于gpio0的 24、25 号引脚,低电平有效,对应跳线 JP10/JP11 控制的 D1/D2 通路。按键pb1/pb2位于 P0_26/P0_27,上拉、低电平有效,分别映射为INPUT_KEY_0、INPUT_KEY_1。此外还预置了兼容样本工程的别名:led0/led1、sw0/sw1、watchdog0。
4.3 板载 ST7735 TFT 显示屏
设备树通过 MIPI DBI(SPI 3-wire 模式)驱动板上 128x128 的 ST7735R 彩屏,SPI 时钟上限 6MHz,并给出完整的初始化序列参数(colmod = <0x05>表示 16-bit 像素格式、madctl = <0xc0>行/列交换、gamctrp1/gamctrn1为 Gamma 表等)。zephyr,display指向该节点,因此启用CONFIG_DISPLAY后 Zephyr 的 display 子系统和 LVGL 可直接使用此屏。
配套的板级 Kconfig(Kconfig.defconfig)进一步说明:当DISPLAY开启时,MIPI_DBI_SPI_3WIRE默认置y;若同时启用LVGL,则LV_COLOR_16_SWAP默认置y——因为 ST7735 的 16-bit RGB 数据需要字节序交换才能正确显示。
4.4 Flash 分区
code_partition: partition@0 { compatible = "zephyr,mapped-partition"; reg = <0x0 DT_SIZE_K(448)>; read-only; }; storage_partition: partition@70000 { compatible = "zephyr,mapped-partition"; label = "storage"; reg = <0x70000 DT_SIZE_K(64)>; };512KB Flash 被划分为两段:0x0起的 448KB 代码分区(只读,由zephyr,code-partition选定)与0x70000起的 64KB 存储分区(可用于 Flash 存储子系统)。
5. 默认配置(defconfig)
默认配置 内容精简,只启用最基础的硬件能力:
# Enable MPU CONFIG_ARM_MPU=y # Enable GPIO CONFIG_GPIO=y # Console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y # Enable UART CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y CONFIG_USE_DT_CODE_PARTITION=y要点解读:
CONFIG_ARM_MPU=y:使能 MPU,为多域/受保护访问提供基础;CONFIG_CONSOLE=y+CONFIG_UART_CONSOLE=y:控制台走 UART(即第 4.1 节的 uart1);CONFIG_USE_DT_CODE_PARTITION=y:使固件只链接进 448KB 的code_partition,与设备树分区一致;- TRNG、I2C、SPI、DMA、看门狗等硬件虽在 DTS 中
status = "okay",但相应 Kconfig 按需由应用工程开启即可生效。
6. 编程与调试
6.1 烧录(west flash)
MAX32680 的烧录方式是:将外部调试探针连接到板上的SWD 端口(10 针 Cortex 连接器 JH10)。注意文档明确说明:SWD 逻辑电平为 1.8V(VDDIO_AUX),选择调试器时需确认其支持 1.8V VREF。
探针连接宿主机后,直接执行west flash即可把固件镜像写入 Flash;执行全片擦除时附加--erase选项。
从仓库的板级构建脚本 board.cmake 可以看到,烧录统一走 OpenOCD 运行器,并复用 boards/common/openocd-adi-max32.boards.cmake 中的 ADI MAX32 系列通用配置。对 ARM(Cortex-M4)目标,其关键行为是:
- 接口默认
cmsis-dap.cfg,目标默认${CONFIG_SOC}.cfg(即 max32680 对应 cfg),因此CMSIS-DAP 探针(如 DAP Link)是默认适配路径; --target-handle=_CHIPNAME.cpu锁定 CPU 核;- 对 Cortex-M 系列下发
allow_low_pwr_dbg(注释说明:部分板子在低功耗调试下复位会失败,max32660 被显式排除); - 全片擦除命令为
max32xxx mass_erase 0——这正是west flash --erase背后的 OpenOCD 命令。
若使用 J-Link 等其它探针,可在west flash时通过-DOPENOCD_ARGS覆盖接口/目标 cfg,或按该 cmake 文件的变量约定(MAX32_INTERFACE_CFG/MAX32_TARGET_CFG)传入自定义配置。
6.2 调试(west debug)
文档指引:调试时参照烧录章节连接探针,把west flash换成west debug即可进入 GDB 会话。其运行器参数与烧录完全同源(同一组 OpenOCD 接口与目标配置),因此 1.8V SWD 电平与 JH10 接口的注意事项同样适用。板上的 10 针 RV JTAG 连接器则面向 RISC-V 协处理器核,文档未提供 Zephyr 侧的使用说明。
6.3 典型构建命令
以仓库自带的 hello_world 样本为例(适用前提:已安装 Zephyr SDK 或 zephyr 工具链、west 已初始化工作区、调试探针经 JH10 连接):
west build -b max32680evkit/max32680/m4 samples/hello_world west flash # 或带全片擦除: west flash --erase # 或进入 GDB 调试: west debug串口终端建议使用 115200 波特率、8N1,与 DTS 中current-speed/data-bits/parity一致;若控制台无输出,首先检查 JP22/JP23 是否位于 2-1 位置(USB 桥接器接 UART1),以及 JP1 是否为 Closed(SIMO 供电接通)。
7. 小结与参考文件
| 主题 | 仓库路径 |
|---|---|
| 板级文档(本文主体来源) | boards/adi/max32680evkit/doc/index.rst |
| 板级设备树 | boards/adi/max32680evkit/max32680evkit_max32680_m4.dts |
| 默认 Kconfig | boards/adi/max32680evkit/max32680evkit_max32680_m4_defconfig |
| 板级元数据 | boards/adi/max32680evkit/max32680evkit_max32680_m4.yaml |
| 板级 Kconfig | boards/adi/max32680evkit/Kconfig.max32680evkit、boards/adi/max32680evkit/Kconfig.defconfig |
| 烧录脚本 | boards/adi/max32680evkit/board.cmake、boards/common/openocd-adi-max32.boards.cmake |
| SoC 基座 DTS 目录 | dts/arm/adi/max32/ |
综合来看,max32680evkit在 Zephyr 中的定位是一块以超低功耗无线传感器评估为核心的板子:设备树默认点亮 UART1 控制台与 ST7735 彩屏,Flash 划分出 448KB 代码区与 64KB 存储区,烧录/调试链路统一收敛到 OpenOCD + CMSIS-DAP +max32xxx mass_erase这一套 ADI MAX32 通用机制。掌握 JP1/JP10/JP11/JP22/JP23 这几组跳线的含义,再配合 1.8V SWD 电平这一硬性前提,即可顺利完成该板上的固件构建、烧录与调试全流程。
【免费下载链接】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),仅供参考