这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【DSPIC33CURIOSITYPLATFMDEVBRD】1-在Mac上玩转d

共1条 1/1 1 跳转至页

【DSPIC33CURIOSITYPLATFMDEVBRD】1-在Mac上玩转dsPIC33ACuriosity:环境搭建与命令行开发实录

菜鸟
2026-10-06 20:32:05     打赏

一、先看硬件:一块底板,主控随便换

这次试用的板子挺有意思,是 Microchip dsPIC33A Curiosity 平台,由两部分组成:

  • 底板 EV74H48A:红色的经典 Microchip 风格,板载调试器 PKOB4(USB 一插就行,不用装驱动)、RGB LED、一个 10KΩ 电位器、三颗实体按键、三颗电容触摸按键,还有 CAN FD、QSPI Flash、两个 mikroBUS 插槽,资源给得很足

  • DIM 主控模块:一块 120Pin 双列直插的小卡,往底板上一插就完事。我手里有两块——EV02G02A(dsPIC33AK128MC106,16 位 DSC,带 DSP,PWM 资源丰富)和 EV25Z08A(PIC32AK1216GC41064,32 位通用 MCU)

【配图 1】开发板全家福:EV74H48A 红色底板 + EV02G02A DIM 模块

这个 DIM 设计是我觉得最妙的地方:底板不用动,拔插小卡就换了一个内核,一套装备能玩两种架构,比买两套开发板划算多了。这次项目我先用 dsPIC33AK128MC106,做个经典的小东西——「电位器调光台灯」:拧旋钮 → ADC 采样 → PWM 驱动 RGB LED。

二、macOS 上装工具链,比想象中顺利

说实话,开工前我挺担心 Mac 兼容性,结果发现 Microchip 对 macOS 的支持相当可以,三个组件全都有原生安装包:

组件干嘛的备注

MPLAB X IDE v6.35工程管理/调试后端官方 macOS dmg,Intel 和 Apple Silicon 都有
XC-DSC v4.00dsPIC33A 的编译器免费版就够用,PRO 不必买
XC32 v5.10PIC32A 的编译器(备用)等玩那块 32 位模块才用得上

【配图 2】软件版本截图:MPLAB X 的 About 对话框

1_2_software_version.jpg

装的过程中有两个点值得念叨一下:

1. Microchip 自己也在"逃离"MPLAB X。 安装器里专门有一页广告,说功能正在往 VS Code 扩展迁移。想想也不奇怪——MPLAB X 是基于 Java/NetBeans 的老架构,在新系统上兼容性尴尬(macOS 15 刚出那会儿就出过 JavaFX 问题),官方干脆换个赛道。对我这种 Mac 用户反而是好消息:VS Code 有官方中文包,等 MPLAB 扩展成熟了,体验肯定比现在好。

2. 组件按需勾选,别全装。 安装器会让你选编译器和器件支持包。dsPIC33AK128MC106 属于「dsPIC DSCs and 16-bit PIC24 MCUs」这一类;你要是想连 PIC32A 模块一起体验,顺手把「32-bit MCUs」也勾上就行。

【配图 3】安装器组件选择界面

1_3_installer_select.png

三、全程命令行:IDE 是什么,能吃吗?

装完 MPLAB X 之后,我做了一个决定:这次开发全程不打开它的 GUI。

能不能做到?能。MPLAB X 工程说到底就是一堆文本文件,工具链个个都有命令行接口:

# 1. 生成 Makefile(工程目录当参数)
/Applications/microchip/mplabx/v6.35/mplab_platform/bin/prjMakefilesGenerator.sh <工程目录>

# 2. 编译
cd <工程目录> && make CONF=default

# 3. 烧录(走板载 PKOB4)
printf 'device dsPIC33AK128MC106\nhwtool PKOB4 -p\nprogram "xxx.production.hex"\nrun\n' | \
  /Applications/microchip/mplabx/v6.35/mplab_platform/bin/mdb.sh

编译背后是 XC-DSC 的 xc-dsc-gcc,烧录用的是 mdb(MPLAB 自带的命令行调试器)。我把这三步封装成两个脚本 build.sh 和 program.sh,之后一条命令搞定编译烧录。

【配图 4】终端截图:编译 + 烧录成功的输出

1_4_build_program.png

两个脚本的核心也贴出来,想抄作业的直接拿。build.sh 就两步——生成 Makefile、跑 make:

#!/bin/sh# 命令行构建 MPLAB X 工程PROJ=${1:?用法: build.sh <工程目录>}/Applications/microchip/mplabx/v6.35/mplab_platform/bin/prjMakefilesGenerator.sh "$PROJ" >/dev/null 2>&1cd "$PROJ" && make CONF=default 2>&1 | tail -5

program.sh 的讲究多一点,关键在烧录序列。坑都放在这里了,我挨个说:

坑 1:烧录成功,灯却不亮。 mdb 的 program 命令烧完、校验也过了,但芯片停在调试暂停态——它可不像 MPLAB IPE 那样烧完自动跑。必须显式发 run,不然板子就跟被冻结了一样,按 MCLR 或者重新上电才动。命令行新手几乎必踩。

坑 2:mdb 的 quit 会挂死。 quit 之后 mdb 经常停在 Halting... 永远不退出,还占着调试器不放——下次连接直接报 ToolReservedByExternalProcess。我的解法有点粗暴但有效:检测到 Running 之后直接杀掉 mdb 进程,等于安全断开,芯片继续跑:

# mdb 脚本:device -> 选工具 -> 烧录 -> run
printf 'device dsPIC33AK128MC106\nhwtool PKOB4 -p\nprogram "%s"\nrun\n' "$HEX" > "$CMDFILE"
mdb.sh "$CMDFILE" > "$OUTFILE" 2>&1 &
MPID=$!

# 轮询等 "Running"(最多 300 秒,PKOB4 枚举有点慢,别急)
while [ $i -lt 150 ]; do
    grep -qa "Running" "$OUTFILE" && { ok=1; break; }
    sleep 2; i=$((i+1))
done

# 结束 mdb:杀进程而不是 quit,芯片脱离调试器继续运行
kill $MPID 2>/dev/null; pkill -f "mdb.jar" 2>/dev/null


坑 3:示例工程里的依赖版本会过期。 官方 OOB 工程引用的器件支持包(DFP)版本是 1.1.109,我机器上装的是 1.5.263,prjMakefilesGenerator 上来就报 "Device pack missing"。改法很简单:nbproject/configurations.xml 里的版本号改成本机装的那版就行。类似的还有 MCC 生成的配置值改名:FWDT_RCLKSEL = BFRC256 在新版 DFP 里已经叫 BFRC244 了,编译报 "unknown value" 的时候,去 DFP 自带的 config 文档里查一下当前合法值就好。

四、M0 验收:让板子跑起来

环境好不好使,烧个程序就知道。我把官方 OOB(out-of-box)演示编译烧进去,板子原地复活——RGB LED 亮、旋钮能调亮度、按键有反应。「编译 → 烧录 → 运行」全链路打通,全程零 GUI。

【配图 5】烧录后板子运行状态

1_5_board_running.jpg

五、小结 + 下篇预告

一圈搞下来,我的结论是:在 macOS 上做 Microchip 开发完全可行。要点就三条——工具链装对、接受 MPLAB X 只是"后台工具"的定位、把编译烧录固化成脚本。走命令线还有一个意外收获:一切可脚本化——build.sh / program.sh 写好之后,编译烧录就是敲一条命令的事,干净利落。





关键词: DSPIC33CURIOSITYPLATFMDEV    

共1条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]