Zephyr MAX32655FTHR 开发板指南:硬件架构、双核(M4 + RV32)构建与 DAPLink 烧录调试
2026/9/14 10:02:26 网站建设 项目流程

Zephyr MAX32655FTHR 开发板指南:硬件架构、双核(M4 + RV32)构建与 DAPLink 烧录调试

【免费下载链接】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 仓库中 MAX32655FTHR 板级文档 编写,系统讲解这款面向超低功耗无线应用的 Analog Devices 开发板:硬件与外设规格、Zephyr 板级目标(max32655fthr/max32655/m4max32655fthr/max32655/rv32)的设备树与默认配置要点、按键/LED 引脚定义,以及基于板载 DAPLink 的west flash/west debug烧录调试流程。读完后可直接在该板上完成构建、烧录与双核(Cortex-M4 + RISC-V RV32)开发。

MAX32655FTHR 开发板正面

板卡概述

MAX32655FTHR 是 Analog Devices 推出的快速开发平台,帮助工程师基于MAX32655(Arm Cortex-M4F + Bluetooth 5.2 LE)快速实现超低功耗无线方案。板载MAX20303 PMIC负责电池与电源管理。板型采用 0.9in × 2.6in 双排针脚位,兼容 Adafruit Feather Wing 外设扩展板。板上集成了数字麦克风、低功耗立体声音频 CODEC、128Mb QSPI Flash、micro SD 卡座、RGB 指示灯和按键等外设,定位为快速概念验证(PoC)与早期软件开发平台。

MAX32655FTHR 板载模块

MAX32655FTHR 背面

Zephyr 的移植运行在 MAX32655 的Cortex-M4F 主核上;从 Kconfig.max32655fthr 可以看到,板级 Kconfig 会根据目标限定符自动选择SOC_MAX32655_M4SOC_MAX32655_RV32两个 SoC 配置。

硬件规格

MAX32655 MCU

  • 超低功耗无线微控制器
    • 片内 100MHz 振荡器
    • 灵活的低功耗模式,可选 7.3728MHz 系统时钟
    • 512KB Flash、128KB SRAM(其中一个 32KB SRAM Bank 可选 ECC)
    • 16KB 指令缓存

Bluetooth 5.2 LE 射频

  • 专用超低功耗 32 位RISC-V 协处理器,卸载时序敏感的蓝牙处理
  • 完全开源的 Bluetooth 5.2 协议栈
  • 支持 AoA、AoD、LE Audio、Mesh
  • 高速模式(2Mbps)、长距模式(125kbps / 500kbps)
  • 接收灵敏度 -97.5dBm,发射功率 +4.5dBm
  • 单端天线接口(50Ω)

电源管理(最大化电池寿命)

  • 2.0V~3.6V 供电范围
  • 集成 SIMO 电源调节器
  • 动态电压缩放(DVS)
  • 3.0V 下 23.8μA/MHz 工作电流;32KB 保持电流 4.4μA @ 3.0V
  • 低功耗模式下 SRAM 保持 + RTC 可选

系统控制外设

  • 最多 2 组高速 SPI 主/从
  • 最多 3 组高速 I2C 主/从(3.4Mbps)
  • 最多 4 组 UART、1 组 I2S 主/从
  • 最多 8 输入、10 位 Σ-Δ ADC,7.8ksps
  • 最多 4 个微功耗比较器
  • 定时器:最多 2 个 4×32 位定时器、2 个 LP 定时器、2 个看门狗定时器
  • 1-Wire 主机
  • 最多 4 个 Pulse Train(PWM)引擎
  • 带唤醒定时器的 RTC
  • 最多 52 个 GPIO

安全与完整性

  • 可选安全启动(Secure Boot)
  • TRNG 种子生成器
  • AES 128/192/256 硬件加速引擎

板上外部器件

  • 立体声音频 CODEC 接口
  • 数字麦克风
  • PMIC 与电池充电电路
  • 128Mb(16MB)QSPI Flash
  • micro SD 卡接口
  • RGB LED
  • 按键

Zephyr 板级目标与支持特性

该板在 board.yml 中注册于adi厂商下,SoC 为max32655,并提供两个构建目标(board qualifier):

目标架构工具链支持的子系统RAM / Flash
max32655fthr/max32655/m4armzephyr、gnuarmembgpio、serial、trng、i2c、dma、watchdog、spi、adc、counter、rtc_counter、feather_i2c、feather_spi、pwm、flash64KB / 352KB(片内)
max32655fthr/max32655/rv32riscvzephyrgpio、serial、flash、spi64KB / 128KB(分区)

上表数据来自 max32655fthr_max32655_m4.yaml 与 max32655fthr_max32655_rv32.yaml:M4 目标支持面更广(含 trng、dma、adc、watchdog、pwm 等),RV32 目标为次核裁剪后的最小集。

默认 Kconfig 配置差异同样清晰(见 max32655fthr_max32655_m4_defconfig 与 max32655fthr_max32655_rv32_defconfig):

  • M4:启用ARM_MPU(内存保护单元)、GPIO、UART 控制台、中断驱动 UART、USE_DT_CODE_PARTITION(使用设备树中的代码分区);
  • RV32:系统时钟滴答CONFIG_SYS_CLOCK_TICKS_PER_SEC=5000(5kHz 心跳),同样启用 GPIO、UART 控制台与代码分区,但未启用 MPU。

设备树中的关键配置

板级公共配置集中在 max32655fthr.dtsi,M4 与 RV32 的目标 DTS 分别位于 max32655fthr_max32655_m4.dts 和 max32655fthr_max32655_rv32.dts。几个值得注意的设计:

1. 双核 SRAM 划分。M4 主核使用SRAM0(32KB) + SRAM1(32KB)拼出 64KB(0x20000000),RV32 次核使用SRAM2(48KB) + SRAM3(16KB)共 64KB(0x20010000):

soc { /* M4: SRAM0(32KB) + SRAM1(32KB) */ m4_sram: memory@20000000 { compatible = "mmio-sram"; reg = <0x20000000 DT_SIZE_K(64)>; }; /* RV32: SRAM2(48KB) + SRAM3(16KB) */ rv32_sram: memory@20010000 { compatible = "mmio-sram"; reg = <0x20010000 DT_SIZE_K(64)>; }; };

2. 128Mb QSPI Flash 三分区。外部 flash(w25q128jv@1,JEDEC IDef 70 18,16MB,SPI0 CS1,最高 10MHz)在设备树中被划为三个 mapped partition:

分区标签起始地址大小用途
m4_partitionimage-m40x0320KBM4 固件镜像
storage_partitionstorage-m40x5000064KBM4 存储(如 settings)
rv32_partitionimage-rv320x60000128KBRV32 固件镜像

M4 的chosen节点同时声明zephyr,code-partition = &m4_partitionzephyr,code-rv32-partition = &rv32_partition,为双核 sysbuild 构建提供分区依据。

3. 双串口 + Feather 排针。M4 控制台默认使用uart0(TX=P0.1、RX=P0.0,115200-8N1,并配置了 DMA 收发通道);uart3(TX=P2.7、RX=P2.6)作为feather_serial映射到 Feather 排针 TX/RX,是RV32 核的默认控制台。两个目标均启用了zephyr,shell-uart

4. Feather 排针引脚映射。feather_connector节点实现了adafruit-feather-header兼容标准,将 0~16 号排针映射到具体 GPIO(如 SDA→P0.31、SCL→P0.30、TX→P2.7、RX→P2.6、MISO→P0.22、MOSI→P0.21、SCK→P0.23、AIN0~AIN5→GPIO2 的 0~5 号引脚),因此标准 Feather Wing 扩展板可直接插用。此外板上i2c2(Feather I2C,P0.30/P0.31)、spi1(Feather SPI)、i2s0(音频,P1.2~P1.5)、trngdma0wdt0rtc_counter均已在设备树中置为okay。SPI/I2C 部分引脚显式选择了MAX32_VSEL_VDDIOH供电域,保证与 3.3V 外设的互操作。

按键(Push Buttons)

板上有 6 个按键。其中 SW2、SW3 与唤醒键在 max32655fthr.dtsi 中注册为gpio-keys(内部上拉、低电平有效),SW2/SW3 经过板上消抖 IC:

  • SW1 — PMIC 电源键。开机状态下长按 12 秒执行硬关断;关机状态下按下则开机。该按键状态也可被 MAX32655 固件读取:PMIC_PFN2信号连接到Port 0.13(带缓冲的输入),按下时信号拉低。
  • SW2 — 用户可编程功能键。经消抖 IC 连接到Port 0.2。设备树中定义为pb1,上报输入事件INPUT_KEY_0
  • SW3 — 用户可编程功能键。经消抖 IC 连接到Port 0.3,定义为pb2,上报INPUT_KEY_1
  • SW4 — 唤醒键。连接到Port 3.1,定义为pb_wakeup,上报INPUT_KEY_WAKEUP;该引脚在设备树中额外配置了MAX32_GPIO_VSEL_VDDIOH电平域。
  • SW5 — 复位键。通过 MAX32655 的RSTN输入复位芯片。
  • SW6 — DAPLink 适配器键。上电时按住此键可将板载 DAPLink 适配器(MAX32625)进入 MAINTENANCE 模式,用于更新 DAPLink 固件。

兼容性别名sw0 = &pb1sw1 = &pb2已提供,便于复用官方 sample 代码。

指示灯(LEDs)

板上有 3 颗 RGB LED:

  • LED1 (D1) — 用户可控。直接接 MAX32655 GPIO,可被用户固件控制:

    • Port 0.18:红色
    • Port 0.19:绿色
    • Port 0.26:蓝色

    设备树中注册为gpio-leds(低电平点亮),并给出别名led0/led1/led2以兼容标准示例。需要留意:设备树里三个节点的颜色标签(Red/Blue/Green)与官方文档的引脚颜色描述顺序不一致(文档为 0.18=红、0.19=绿、0.26=蓝),若按颜色命名 LED 请以引脚号为准自行核对。

  • LED2 (D2) — PMIC 指示灯。接 MAX20303 PMIC 的LEDx输出,通过I2C 命令控制,也可配置为充电状态指示。

  • LED3 (D3) — DAPLink 状态灯。由板载 DAPLink 适配器(MAX32625)控制,不可作为用户 LED 使用。

编程与调试

烧录(Flashing)

板上 MAX32625 微控制器出厂已刷入DAPLink固件,它提供了通过 USB 对 MAX32655 主核进行调试与烧录的能力(对应cmsis-dapOpenOCD 接口)。流程非常简单:

  1. 用 USB 线连接主机;
  2. 直接运行west flash将固件镜像写入 Flash;
  3. 若需全片擦除,加--erase选项执行west flash --erase

从 board.cmake 引用的 openocd-adi-max32.boards.cmake 可以看到底层细节:M4 目标走cmsis-dap.cfg接口 +max32655.cfg目标,擦除命令为max32xxx mass_erase 0,并针对 M4/M33 系列启用了allow_low_pwr_dbg

调试(Debugging)

调试方式与烧录相同,只需把west flash换成:

west debug

即可通过同一 DAPLink 链路挂接调试器并暂停程序执行。

RV32 RISC-V 次核

MAX32655 SoC 的次级 RV32(RISC-V)核通过max32655fthr/max32655/rv32板级限定符支持,默认使用 Feather 排针的 TX/RX(即feather_serial/uart3,115200)作为控制台。

利用sysbuild可以一次构建两个核的镜像,官方示例位于 samples/sysbuild/hello_world:

# 以 M4 为目标板构建,sysbuild 会同时生成 M4 与 RV32 两个核的镜像 west build -p -b max32655fthr/max32655/m4 samples/sysbuild/hello_world # 目前将镜像烧录到两个核需要 jlink runner 及外接 J-Link 编程器 west flash --runner jlink

从源码结构看,RV32 核的 OpenOCD 配置与 M4 不同:RISC-V 侧使用${SOC}_riscv.cfg目标、FTDI 调试接口(ftdi/olimex-arm-usb-ocd-h.cfg)以及 CMSIS-DAP 的 Flash 接口(cmsis-dap.cfg),这解释了为什么双核烧录当前要求 J-Link 而非纯 USB DAPLink 链路。

参考与延伸阅读

  • 板级文档原文:boards/adi/max32655fthr/doc/index.rst(硬件规格、按键/LED 定义、烧录调试流程)
  • 硬件详细资料请查阅 Analog Devices 官方的 MAX32655FTHR 产品页面
  • 双核构建示例:samples/sysbuild/hello_world
  • 板级源码入口:Kconfig.max32655fthr、board.cmake、max32655fthr.dtsi
  • 同系列开发板(不同 SoC,可对照其 文档 结构)如 MAX32650EVB、MAX32672FTHR 等,位于 boards/adi 目录下

适用前提与限制:以上所有引脚、分区与命令均以当前仓库中的设备树/板级配置为准;RV32 目标的支持面(gpio/serial/flash/spi)小于 M4 目标;双核烧录需外接 J-Link,纯 USB DAPLink 链路仅覆盖 M4 主核的west flash/west debug

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询