1. 课程导入与开发环境搭建

Microchip 的 SAM 系列是基于 Arm Cortex-M 内核的 32 位微控制器产品线,在电机控制领域覆盖了从低成本有刷/步进驱动到高性能无传感器 FOC(磁场定向控制)的完整需求。本章的目标不是立刻写出控制算法,而是先把"选哪颗芯片、装哪套工具、用哪块板子"这三件事定下来,为后续章节的算法实现和调试打好基础。

一、SAM 产品线与电机控制选型逻辑

SAM 系列按内核和应用定位大致可分为几个家族:SAM D(Cortex-M0+/M23,低功耗通用)、SAM C(Cortex-M0+,带 CAN-FD 等连接外设)、SAM S(Cortex-M23/M4,带安全与高性能外设)、SAM E(Cortex-M4F,带以太网等)、SAM G(Cortex-M4F,面向低功耗高性能)、SAM V(Cortex-M7,高算力)以及经典的 SAM3/4(Cortex-M3/M4)。对电机控制而言,真正决定选型的是四个维度:算力、PWM 与 ADC 资源、模拟前端、以及是否内置电机控制专用外设。

以常见的三类应用为例:

  • 有刷直流 / 步进电机:控制算法简单,主要需求是多路 PWM 和定时器。SAM D21(Cortex-M0+,48MHz)即可胜任,成本低。
  • 无刷直流方波(六步换相):需要 3 路互补 PWM、霍尔或反电动势过零检测、ADC 采样。SAM D51(Cortex-M4F,120MHz)或 SAM E54 更合适,后者带 CAN-FD 便于多轴协同。
  • 无传感器 FOC:需要 Park/Clarke 变换、电流环 PI、SVPWM,对算力和 ADC 同步采样要求高。SAM S70/S71(Cortex-M4F,300MHz)或 SAM V71(Cortex-M7,300MHz)是主流选择,配合其高速 ADC 和事件系统可实现 PWM 与 ADC 的硬件级同步。

选型时有一个容易被忽略的关键点:PWM 与 ADC 的同步机制。FOC 要求电流采样时刻严格对齐 PWM 中心或谷底,否则采样值会包含开关噪声。SAM 系列的 TC/TCC 定时器和 ADC 之间通过 Event System 连接,可以在不占用 CPU 的情况下触发采样,这是选型时必须确认的外设能力,而不是只看主频。

二、开发环境:Atmel Studio 与 MPLAB X IDE

Microchip 收购 Atmel 后,SAM 系列的开发工具经历了从 Atmel Studio 到 MPLAB X IDE 的迁移。目前新项目建议直接使用 MPLAB X IDE,Atmel Studio 7 仍可用于维护旧工程,但不再作为主推。

MPLAB X IDE 的安装与配置流程:

  1. 从 Microchip 官网下载 MPLAB X IDE(当前主流为 v6.x),安装时勾选 XC32 编译器(用于 SAM 的 32 位 Arm 器件)。注意 XC32 有免费版和 Pro 版,免费版在优化等级上有限制,电机控制中若对代码体积和实时性敏感,需评估是否购买 Pro。
  2. 安装 MCC(MPLAB Code Configurator)插件。MCC 是 SAM 开发的核心工具,通过图形界面配置时钟、引脚、外设,并自动生成初始化代码。对于电机控制,MCC 中可直接配置 TCC 的 PWM 模式、ADC 的触发源、Event System 的路由。
  3. 安装 Harmony 3 或 MCC Melody 框架。Harmony 3 提供更完整的中间件(如 USB、TCP/IP),而 MCC Melody 更轻量,适合纯电机控制项目。两者不要混用同一工程。
  4. 连接调试器。SAM 系列常用 Atmel-ICE 或 PICkit 4/5,通过 SWD 接口连接。在 MPLAB X 中新建工程后,需在 Project Properties 中选择正确的调试器型号和器件型号,否则会出现"无法识别器件"的错误。
如果使用 Atmel Studio 7,工程文件为 .atsln,迁移到 MPLAB X 时不能直接打开,需要新建 MPLAB X 工程并重新导入源文件。建议新项目统一用 MPLAB X,避免后期迁移成本。

三、SAM 电机控制套件

Microchip 提供了多套针对电机控制的评估套件,最常用的是 MCLV-2(Motor Control Low Voltage) 和 MCHV-3(Motor Control High Voltage)。MCLV-2 支持低压(最高约 24V)三相 BLDC/PMSM,板载三相逆变桥、电流采样电阻、霍尔接口和反电动势检测电路,可直接与 SAM S70/S71 或 SAM D51 的电机控制扩展板对接。MCHV-3 面向高压(最高约 400V)应用,适合空调压缩机、工业风机等场景。

套件通常包含:主板(功率级)、控制板(MCU 核心板)、以及配套的电机(如带霍尔的无刷电机)。使用前需要确认三件事:功率级母线电压范围、电流采样方式(单电阻/双电阻/三电阻)、以及控制板与功率级的接口定义是否匹配。这些信息在套件的用户指南中有明确标注,选型时务必核对,否则可能出现采样通道接错导致电流环无法收敛。

SAM 电机控制选型与开发环境关系图 选型四维度 ① 算力:M0+ / M4F / M7 ② PWM:互补输出、死区 ③ ADC:同步采样、触发源 ④ 模拟前端:运放/比较器 ⑤ 通信:CAN-FD / 以太网 典型应用匹配 有刷/步进 → SAM D21 BLDC 六步 → SAM D51/E54 无感 FOC → SAM S70/S71 高算力 FOC → SAM V71 多轴协同 → SAM E54 + CAN 工具链 MPLAB X IDE v6.x XC32 编译器 MCC / Harmony 3 Atmel-ICE / PICkit 5 SWD 调试接口 评估套件 MCLV-2:低压 ≤24V,三相逆变桥 + 电流采样 + 霍尔接口 MCHV-3:高压 ≤400V,适合压缩机/工业风机 控制板:SAM S70/S71 或 SAM D51 电机:带霍尔 BLDC / PMSM 搭建顺序 ① 确定应用类型 → ② 按四维度选 SAM 型号 → ③ 安装 MPLAB X + XC32 + MCC → ④ 连接调试器 → ⑤ 选配套件并核对接口

四、第一个工程:从新建到点亮 LED

在正式进入电机控制之前,建议先用一个最小工程验证工具链是否正常。以 SAM D51 为例,在 MPLAB X 中新建 Standalone Project,选择 ATSAMD51J19A,调试器选 Atmel-ICE。然后在 MCC 中配置系统时钟为 120MHz(DFLL + DPLL),配置一个 GPIO 为输出,生成代码后在主循环中翻转该引脚。编译下载后,用示波器或 LED 观察翻转频率。如果频率与预期不符,优先检查时钟配置中的分频系数,而不是怀疑代码逻辑。

这个最小工程的意义在于:它验证了编译器、调试器、时钟配置三条链路都是通的。后续配置 TCC 产生 PWM、配置 ADC 触发采样时,如果出现异常,就可以排除工具链问题,直接聚焦外设配置本身。

常见问题:MPLAB X 中新建工程后编译报"xc32-gcc not found",通常是 XC32 未安装或路径未自动识别。在 Tools → Options → Embedded → Build Tools 中手动指定 XC32 的 bin 目录即可。另一个高频问题是调试器固件版本过旧,MPLAB X 会提示升级,按提示操作即可,不要跳过。

完成本章的环境搭建后,你应当具备:一台安装好 MPLAB X IDE、XC32 和 MCC 的电脑,一个能正常下载调试的 SAM 目标板(或套件),以及一个验证通过的最小工程。下一阶段将在此基础上配置 PWM 和 ADC,进入电机控制外设的实际使用。