Zephyr 上的 PIC32CX SG61 Curiosity Ultra 评估板:硬件特性、设备树配置与 J-Link / MPLAB IPE 烧录指南
【免费下载链接】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
PIC32CX SG61 Curiosity Ultra(部件号 EV09H35A)是 Microchip 官方推出的评估套件,用于评估 PIC32CX SG60/SG61 微控制器,并帮助开发者理解如何在自有设计中集成该器件。本文以 Zephyr 仓库中该板的官方文档为主体,结合 板级设备树、板级 YAML 定义 与 board.cmake 等源码,系统讲解该评估板的硬件资源、Zephyr 中的使能情况、外设连接细节,以及使用 J-Link 与 MPLAB IPE 两种方式完成编译与烧录的完整流程。读完后你将能够在 Zephyr 工作区中一键构建并烧录该板的示例应用(如 Blinky),并掌握其时钟、分区与关键外设的底层配置。
一、开发板概览
PIC32CX SG61 Curiosity Ultra 是 Zephyr 官方支持的 Microchip 评估平台,板载 128 引脚 TQFP 封装的PIC32CX SG61 微控制器。在 Zephyr 中,该板的标识符(identifier)为pic32cx_sg61_cult,对应 SoC 为pic32cx1025sg61128,架构为 ARM,Flash 为 1024 KiB、RAM 为 256 KiB——这些信息可在板级 YAML 中直接确认(见 pic32cx_sg61_cult.yaml 的flash: 1024/ram: 256字段)。
该评估套件提供了一组丰富的外设与接口,方便用户快速上手 PIC32CX SG60/SG61 的各种外设:
- 128 引脚 TQFP PIC32CX SG61 微控制器
- 32.768 kHz 晶体振荡器(低功耗 RTC 时基)
- 12 MHz 晶体振荡器(主时钟基准)
- 1024 KiB Flash 与 256 KiB RAM
- 两颗黄色用户 LED
- 一颗绿色板载电源 LED
- 一颗机械用户按键
- 一颗复位按键
- USB 接口(可作为 Host 或 Device)
- 一颗触摸按键(shield 驱动)
- 虚拟串口(Virtual COM port,CDC)
- 通过 Serial Wire Debug (SWD) 对板载 PIC32CX SG60/SG61 进行编程与调试
- Arduino UNO 兼容连接器
板级完整名称与厂商信息定义在 board.yml 中,而 Kconfig.pic32cx_sg61_cult 中通过select SOC_PIC32CX1025SG61128将板与 SoC 绑定。
二、Zephyr 中已支持的特性
Zephyr 会通过板级 YAML 的supported列表对外声明该板支持的外设子系统。查看 pic32cx_sg61_cult.yaml 可知,本板支持以下特性:
| 类别 | 支持情况 |
|---|---|
| 模拟外设 | adc、dac、comparator |
| 时钟与电源 | clock_control、reset |
| 定时/计数 | counter、pwm、rtc、watchdog |
| 数据传输 | dma、spi、i2c、uart、netif:eth |
| 基础系统 | gpio、entropy、flash、hwinfo、pinctrl、interrupt_controller |
这些能力均有对应的设备树节点支撑。例如 pic32cx_sg61_cult.dts 中显式启用了sercom4(UART 控制台)、sercom6(I2C)、sercom0(SPI)、tcc0/tcc1/tc0/tc5(PWM 与计数器)、adc0/adc1、dac、gmac(以太网)、trng(熵源)等节点。
此外,板级默认配置 pic32cx_sg61_cult_defconfig 中开启了CONFIG_ARM_MPU=y(ARM 内存保护单元)、CONFIG_BUILD_OUTPUT_HEX=y(生成 HEX 烧录镜像,供 MPLAB IPE 等工具使用),以及CONFIG_CONSOLE/CONFIG_SERIAL/CONFIG_UART_CONSOLE(串口控制台)。而 Kconfig.defconfig 则在启用 NVMEM 时默认使能EEPROM,并默认启用以太网驱动ETH_DRIVER。
三、连接与 IO
关于板级连接的详细信息,原文档指向 PIC32CX SG61 Curiosity Ultra 官方用户指南。从仓库内的设备树 pic32cx_sg61_cult.dts 中可以确认板载资源与引脚的对应关系,这对编写自己的 overlay 或驱动调试非常关键:
LED 与按键(gpio-leds / gpio-keys)
- LED1:挂载在
portc引脚 21,低电平有效(GPIO_ACTIVE_LOW),别名为led0; - LED2:挂载在
porta引脚 16,低电平有效; - SW 1(button0):
portd引脚 00,GPIO_PULL_UP | GPIO_ACTIVE_LOW,对应sw0别名与输入事件码INPUT_KEY_0; - SW 2(button1):
portd引脚 01,同样上拉低有效,事件码INPUT_KEY_1; - PWM LED(pwm_led0):由
tcc0通道 5 驱动,周期 20 ms,默认使能——这是实现呼吸灯等效果的基础。
串口控制台(chosen)
设备树的chosen节点将zephyr,console与zephyr,shell-uart均指向sercom4,即板载虚拟串口(CDC)对应的 UART 实例。其配置为 115200-8-N-1:
&sercom4 { compatible = "microchip,sercom-g1-uart"; current-speed = <115200>; >board_runner_args(mplab_ipe "--tool" "PKOB4" "--part" "32CX1025SG61128" "--erase" "--verify") board_runner_args(jlink "--device=PIC32CX1025SG61128" "--speed=4000") include(${ZEPHYR_BASE}/boards/common/mplab_ipe.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)其中 MPLAB IPE runner 使用板载调试器PKOB4、目标器件型号32CX1025SG61128,烧录前自动擦除并校验;J-Link runner 则指定器件PIC32CX1025SG61128与 4000 kHz 调试时钟。
使用 MPLAB IPE 烧录
MPLAB IPE 是 Microchip 提供的独立编程环境,可通过命令行工具ipecmd与 Zephyr 的west flash无缝集成,具体说明见 boards/microchip/common/microchip-mplab-ipe-flashing.rst。
安装与验证:MPLAB IPE 随 MPLAB X IDE 一起安装,Linux 下安装后可执行ipecmd.sh -?验证;Windows 下为ipecmd.exe -?。确保ipecmd所在目录(Linux 通常为/opt/microchip/mplabx/vX.XX/mplab_platform/bin/)已加入系统PATH。
烧录流程:
构建应用(以 Blinky 为例):
west build -b pic32cx_sg61_cult -p -s samples/basic/blinky用 USB 线连接板卡调试口(该连接同时为板卡供电并暴露板载调试器 PKOB4);
执行烧录:
west flash如需显式指定 runner:
west flash -r mplab_ipe
Zephyr 构建系统会调用ipecmd,使用构建产物build/zephyr/zephyr.hex(由CONFIG_BUILD_OUTPUT_HEX=y生成)对目标器件编程。
常见问题排查:
ipecmd未找到:确认 MPLAB X IDE / MPLAB IPE 已安装且其目录在PATH中;- 工具未被检测到:检查 USB 连接、关闭正在占用调试工具的 MPLAB X IDE / MPLAB IPE GUI、更新探针固件、断开重连;Linux 下确认已安装 Microchip 工具对应的
udev规则; - 器件未被识别:在 MPLAB IPE GUI 的 Pack Manager 中安装/更新对应器件包,确认目标板已上电且调试连接可靠,并核对目标器件与板级定义一致。
使用 J-Link 烧录
若使用 Segger J-Link 调试器,请按以下步骤操作:
安装 J-Link 软件:从 Segger 官网下载并安装 J-Link 软件工具包,确保
JLink、JLinkGDBServer等可执行文件已加入系统PATH。连接板卡:
- 将J32 调试探针连接到板卡的CORTEX DEBUG排针;
- 将 J32 调试探针另一端通过 USB 连接到主机;
- 将板卡的DEBUG USB 端口连接到主机,为板卡上电。
构建应用:在 Zephyr 工作区中执行:
west build -b pic32cx_sg61_cult -p -s samples/basic/blinky该命令为
pic32cx_sg61_cult板构建 Blinky 示例。烧录固件:构建完成后执行:
west flash此时会使用默认的
jlinkrunner 将应用烧录到板卡(runner 已预置器件型号与 4000 kHz 速率,无需额外参数)。观察结果:烧录成功后,板载LED1应开始闪烁,表明应用正常运行。
五、快速上手指南
将上述流程整合为一次完整的体验路径:
# 1. 安装 J-Link 软件并将 JLink 加入 PATH(或安装 MPLAB X IDE 并将 ipecmd 加入 PATH) # 2. 连接 J32 调试探针与板卡 CORTEX DEBUG 排针,并用 DEBUG USB 给板上电 # 3. 构建 Blinky 示例 west build -b pic32cx_sg61_cult -p -s samples/basic/blinky # 4. 烧录(默认使用 jlink runner;也可用 west flash -r mplab_ipe 切换到 MPLAB IPE) west flash # 5. 观察板载 LED1 开始闪烁若要在该板上开发自有应用,建议以 pic32cx_sg61_cult.dts 为参考编写 overlay,重点关注文中列出的 LED(led0/led1)、按键(sw0)、串口(sercom4)、I2C(sercom6 上的 EEPROM)、SPI(sercom0)、ADC/DAC、PWM(tcc0)与以太网(gmac)节点,并依据 Flash 分区表规划引导与存储方案。
参考资源
- PIC32CX SG61 产品页(Microchip 官网)
- PIC32CX SG61 Curiosity Ultra 评估套件页(Microchip 官网,EV09H35A)
- PIC32CX SG41/SG61 Curiosity Ultra 用户指南(DS70005520)
- Segger J-Link 软件下载页
- J32 调试探针(Microchip,DV164232)
上述外部资料提供了板级原理图、引脚定义与调试器硬件说明;本文所引用的所有 Zephyr 侧配置均以当前仓库内文件为准,可直接打开 board 目录 进行核对。
【免费下载链接】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),仅供参考