ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Zephyr 上的 Microchip PIC32CM PL10 Curiosity Nano 开发板:硬件特性、设备树解析与 PyOCD 烧录实战

Zephyr 上的 Microchip PIC32CM PL10 Curiosity Nano 开发板:硬件特性、设备树解析与 PyOCD 烧录实战 Zephyr 上的 Microchip PIC32CM PL10 Curiosity Nano 开发板硬件特性、设备树解析与 PyOCD 烧录实战【免费下载链接】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 仓库中pic32cm_pl10_cnano板卡文档为骨架系统讲解 Microchip PIC32CM PL10 Curiosity NanoEV10P22A评估板的硬件规格、在 Zephyr 中的设备树配置与支持的外设并给出从west build编译 Blinky 示例到使用 PyOCD / MPLAB IPE 烧录固件的完整实战流程。读完本文你将掌握如何基于该板卡进行 Zephyr 应用开发、调试环境搭建与固件验证。板卡概述PIC32CM PL10 Curiosity Nano 是 Microchip 推出的低成本评估套件型号 EV10P22A面向 PIC32CM PL10 系列微控制器板载主控为PIC32CM6408PL10048。该板卡定位于低功耗、低成本场景适合用于评估 PIC32CM PL10 系列的核心性能、开发原型产品并可直接用于 Zephyr RTOS 应用开发。该板卡在 Zephyr 中的板级标识符为pic32cm_pl10_cnano于 Zephyr 4.4 版本中作为 Microchip 新增板卡被引入见 release-notes-4.4.rst。板卡的机器描述model为 PIC32CM PL10 Curiosity Nanocompatible 字符串为pic32cmpl10,cnano见 pic32cm_pl10_cnano.dts。硬件规格板载 PIC32CM6408PL10048 微控制器的核心特性如下与板卡文档 index.rst 所列硬件清单一致处理器Arm Cortex-M0 内核最高 24 MHz支持 1.8–5.5V 供电电压范围存储64 KB 片上自编程 FlashIn-System Self-Programmable Flash 8 KB SRAM封装48 引脚 TQFP 与 48 引脚 VQFN WF 两种封装低功耗特性支持 Idle 与 Standby 睡眠模式以及 Sleep Walking 外设外设可在睡眠期间自主唤醒Multi-Voltage I/OMVIO支持多电压 I/O 电平Peripheral Touch ControllerPTC25 路自电容触摸通道ADC1 个 12 位、800 ksps 的模数转换器模拟比较器AC2 个支持窗口比较Window Compare功能定时器/计数器4 个 16 位定时器其中 3 个为基本定时器TC0–TC21 个为带 4 路 PWM 通道的控制型定时器TCC0实时时钟RTC32 位带时钟/日历功能串行通信接口SERCOM2 个可配置为USART全双工与单线半双工ISO7816 UART智能卡接口I2CSERCOM0 最高 1 MHzSPILIN 主机/从机RS-485DMA2 通道直接内存访问控制器DMAC内置 CRC 生成器事件系统EVSYS4 通道可配置自定义逻辑CCL4 个查找表LUTPDID编程与调试接口禁用Programming and Debugging Interface Disable功能看门狗WDT硬件看门狗定时器外部晶振带失效检测Failure Detection功能集成温度传感器从 Zephyr 设备树的角度这些资源的地址布局定义在 SoC 级描述文件 pic32cm_pl.dtsi 中例如Flash 位于0xc000000共 64 KBflash0SRAM 位于0x20000000sram0DMAC 位于0x41006000配置 2 个 DMA 通道dma-channels 0x2SERCOM0 / SERCOM1 分别位于0x42000400与0x42000800通用时钟控制器GCLK、主时钟控制器MCLK及 PORT 控制器等外设地址均在clock节点下统一组织Zephyr 支持的板级功能板卡的 pic32cm_pl10_cnano.yaml 文件声明了该板卡在 Zephyr 中正式支持的功能即板卡文档中Supported Features小节渲染的内容功能supported说明clock_control时钟控制驱动基于microchip,pic32cm-pl-clock兼容节点dmaDMA 控制器基于microchip,dmac-g2-dmagpioGPIO 驱动基于microchip,port-g1-gpiopinctrl引脚控制基于microchip,port-g1-pinctrluart串口驱动板载 SERCOM1 配置为 115200 波特率控制台同时该文件还声明了板级元数据type: mcu、arch: arm、工具链为zephyr即 Zephyr SDK 内置 Arm 工具链、Flash 64 KB、RAM 8 KB。板卡厂商在 board.yml 中登记为microchip对应 SoC 为pic32cm6408pl10048。连接与 IO板卡文档指出详细的板级连接信息以 Microchip 官方的《PIC32CM PL10 Curiosity Nano User Guide》为准。结合仓库内板级设备树 pic32cm_pl10_cnano.dts可以从源码层面确认如下关键连接LED0定义在aliases中led0 led0实际为 PORTB 第 2 脚gpios portb 2 GPIO_ACTIVE_HIGH高电平点亮见 pic32cm_pl10_cnano.dts。这也是 Blinky 示例闪烁的目标 LED。串口控制台SERCOM1chosen节点将zephyr,console与zephyr,shell-uart均指向sercom1即板级默认控制台走 SERCOM1。SERCOM1 引脚复用由 pic32cm_pl10_cnano-pinctrl.dtsi 定义sercom1_uart_default组将PB0D_SERCOM1_PAD0与PB1D_SERCOM1_PAD1复用为 USART 收发引脚。串口参数板级设备树中 SERCOM1 的默认串口配置如下见 pic32cm_pl10_cnano.dts波特率1152008 数据位、无校验、1 停止位data-bits 8、parity none、stop-bits 1rxpo 1、txpo 0收发引脚输出极性配置需与sercom1_uart_default引脚复用一致时钟源来自 GCLK0gclkperiph-src gclk0时钟拓扑设备树中的clock节点揭示了板卡的时钟树设计见 pic32cm_pl10_cnano.dtsOSCHF24 MHz 内部高速振荡器作为 GCLK0 的时钟源XOSC32K / OSC32K32.768 kHz 外部/内部低速振荡器外部晶振启用失效检测xosc32k-cfd-en 1启动时间为16K16K 个时钟周期GCLKGEN0分频因子 1运行在待机standby模式下继续工作CPU 主频固定为 24 MHzclock-frequency 24000000编程与调试板卡文档提供了两套烧录/调试方案PyOCD通过板载 EDBG 调试器与MPLAB IPEMicrochip 官方烧录工具。两者在 board.cmake 中均有对应的 runner 配置board_runner_args(pyocd --targetpic32cm6408pl10048 --frequency100000) board_runner_args(mplab_ipe --tool nEDBG --part 32CM6408PL10048 --erase --verify) include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) include(${ZEPHYR_BASE}/boards/common/mplab_ipe.board.cmake)其中 PyOCD runner 指定目标芯片pic32cm6408pl10048、SWD 频率 100 kHzMPLAB IPE runner 使用nEDBG工具、器件型号32CM6408PL10048并在烧录时执行擦除与校验。两个 runner 均由 Zephyr 通用的 pyocd.board.cmake 与 mplab_ipe.board.cmake 提供默认行为默认 flasher/debugger 优先使用 pyocd。PyOCD 环境搭建按板卡文档的步骤进行安装器件包为 PIC32CM 系列设备安装 PyOCD 支持包pyocd pack install pic32cm验证器件支持确认目标被识别pyocd list --targets输出中应出现类似如下条目pic32cm6408pl10048 Microchip PIC32CM6408PL10048 PIC32CM-PL pack连接板卡将板卡上的DEBUG USB 端口连接到主机。该连接同时为板卡供电并提供对板上Embedded DebuggerEDBG的访问EDBG 负责通过 PyOCD 对目标 MCU 进行编程与调试。MPLAB IPE 烧录若使用 Microchip 的 MPLAB IPEIntegrated Programming Environment可参考仓库文档中microchip-mplab-ipe-flashing的通用说明使用nEDBG作为工具、器件型号32CM6408PL10048与 board.cmake 中的 runner 参数一致并在烧录选项中开启擦除与校验以保证固件完整性。编译并烧录示例应用板卡文档给出了基于west的完整流程核心命令如下。1. 编译 Blinky 示例在 Zephyr 工作区根目录执行west build -b pic32cm_pl10_cnano -p -s samples/basic/blinky-b pic32cm_pl10_cnano指定目标板卡-p执行 pristine 构建清空上一次构建产物-s samples/basic/blinky指定示例源码目录编译成功后会在构建目录中生成固件镜像。2. 烧录固件west flashwest flash会根据板卡配置自动选择 runner本板默认 PyOCD也可通过--runner mplab_ipe切换到 MPLAB IPE完成固件下载。3. 观察运行结果烧录完成后板载LED0应开始周期性闪烁表明 Blinky 应用正常运行。板级默认构建配置板卡默认defconfig见 pic32cm_pl10_cnano_defconfig启用了以下关键配置保证示例开箱即用CONFIG_BUILD_OUTPUT_HEXy # 生成 HEX 烧录文件 CONFIG_USE_DT_CODE_PARTITIONy # 使用设备树定义的应用代码分区 CONFIG_CONSOLEy # 启用内核控制台 CONFIG_SERIALy # 启用串口驱动 CONFIG_UART_CONSOLEy # 控制台输出走 UART其中CONFIG_USE_DT_CODE_PARTITIONy与设备树中的zephyr,code-partition关联Blinky 等应用固件被写入 Flash 的slot0_partition分区从地址 0x0 起 60 KB剩余 4 KB 划为storage_partition0xF000 起详见 pic32cm_pl10_cnano.dts。参考Microchip 官方提供了 PIC32CM6408PL10048 产品页、PIC32CM PL10 Curiosity Nano 评估套件EV10P22A页面及《PIC32CM PL10 Curiosity Nano User Guide》PDF用于获取完整的引脚定义、原理图与硬件连接细节详见板卡文档 index.rst 的 References 一节。板级设备树与元数据 pic32cm_pl10_cnano.dts、pic32cm_pl10_cnano-pinctrl.dtsi、pic32cm_pl10_cnano.yaml、board.cmakeSoC 级外设定义 pic32cm_pl.dtsi、pic32cm_pl_048.dtsi、pic32cm6408pl10048.dtsi【免费下载链接】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),仅供参考
返回列表