本调优指南提供了设置 MSPM0 MCU 和配套驱动器硬件板的分步指导,便于使用通用 FOC 电机控制库调优和旋转三相无刷直流电机。
通用 FOC 电机控制库是一个开源 FOC 库,支持广泛的转子位置估算算法。该初始版本的通用 FOC 支持增强型滑模观测器和有限 BEMF 估算方法,用于无传感器 FOC 中的转子位置估算。
LaunchPad™is a TM ofTI corporate name.
Arm® and Cortex®are reg TMs ofArm Limited.
Other TMs
MSPM0Gxxx 系列 80MHz Arm®-Cortex® M0+ MCU 可通过多种无传感器和带传感器 FOC 控制对三相无刷直流 (BLDC) 电机进行换向。
BLDC 电机由三相无刷直流 (BLDC) MOSFET 栅极驱动器或集成式 MOSFET 电机驱动器(标称直流轨)或电池组电压驱动。该驱动器通常集成了三个电流检测放大器 (CSA),用于检测 BLDC 电机的三相电流,从而实现出色的 FOC 控制。
图 1-1 所示为 MSPM0Gxxx MCU 和 BLDC 电机驱动器的简化原理图。
本调优指南提供了使用 MSPM0Gxxxx MCU 对三相 BLDC 电机进行调优的步骤。调优过程分为四个部分:硬件设置、软件设置、基本调优和高级调优。
使用本调优指南时需具备以下各项:
图 2-1 展示了无传感器 FOC 电机系统的连接方框图。此系统可由以下组件构建:
以下各节介绍了如何为无传感器 FOC 方框图的每个部分配置引脚。
系统配置工具 (SysConfig) 有助于配置电机控制系统中的引脚。为 EVM 硬件设置提供了默认引脚配置来旋转电机,但引脚可以在 SysConfig 中直观地重新映射到其他引脚。这对于重新配置定制 PCB 上的不同引脚(例如 PWM、ADC 或其他控制信号)或在 MSPM0 器件上扩展到不同的封装非常有用。
TI 提供用于评估 MSPM0 Arm Cortex-M0+ 微控制器的 LaunchPad™ 开发套件,以及用于评估 DRV83xx 系列无刷直流电机驱动器的评估模块 (EVM)。这些评估板可从 ti.com 上获取,并可用作通用 FOC 电机控制的系统评估平台。
有关支持的评估板,请参阅节 2.1.1。
表 2-1 展示了支持的 MSPM0 LaunchPad 套件和 EVM 以及用于三相通用 FOC 电机控制的连接指南。
MSPM0Gxxx LaunchPad™ 套件 | 电机驱动器硬件 | 硬件用户指南 | 电流检测放大器 | SPI 驱动器支持 | 建议的电机电压范围 | 建议的电机功率 |
---|---|---|---|---|---|---|
LP-MSPM0G3507 | BOOSTXL-DRV8323RS | BOOSTXL-DRV8323Rx EVM 用户指南 | 3 | 是 | 6V 至 60V | < 1000W |
LP-MSPM0G3519 | ||||||
LP-MSPM0G3507 | DRV8316REVM | DRV8316REVM 用户指南 | 3 | 是 | 4.5V 至 35V | < 80W |
LP-MSPM0G3519 | ||||||
LP-MSPM0G3507 | DRV8329EVM | DRV8329AEVM 用户指南 | 1 | 否 | 4.5V 至 60V | <1000W |
LP-MSPM0G3519 | ||||||
MSPM0G1507 | TIDA-010250 参考设计 | TIDA-010250 设计指南 | 1、2、3 | 否 | 265V 最大交流电源 | <1000W |
初始位置检测算法利用 ADC 电流检测路径来识别相电流上升时间,从而检测转子位置。ADC 的窗口比较器根据预设的 IPD 阈值电流限值持续监测相电流,从而生成电流脉冲。计时器用于捕获不同扇区的这些不同的脉冲上升时间,并进行比较以检测转子位置。计时器和 ADC 配置会在 IPD 初始化期间根据 Sysconfig 进行更新。算法会根据所选的电流检测和 节 8.3.1 配置所需的 WCOMP 设置。
表 2-16 展示了 PWM 输出的默认引脚配置。所需的连接为六个 PWM 输出信号,这些信号发送换向图形以实现通用 FOC 电机控制。TIMA 包括针对电机控制的特性,例如具有死区的互补 PWM 输出、响应时间 <40ns 的故障处理以及用于配置 FOC 环路速率的重复计数器。
TIMA0 是电机控制的首选计时器,因为它从同一计时器计数器(例如 TIMA0_C1 和 TIMA0_C1N)提供三对互补的 PWM 输出,但可以使用任何 TIMA0 或 TIMA1 输出对并进行交叉触发来提供六个 PWM 输出信号。
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
TIMA0_C0 | TIMA0 通道 0 输出引脚 | INHA | A 相高侧 PWM 输入 |
TIMA0_C0N | TIMA0 通道 0 互补输出引脚 | INLA | A 相低侧 PWM 输入 |
TIMA0_C1 | TIMA0 通道 1 输出引脚 | INHB | B 相高侧 PWM 输入 |
TIMA0_C1N | TIMA0 通道 1 互补输出引脚 | INLB | B 相低侧 PWM 输入 |
TIMA0_C2 | TIMA0 通道 2 输出引脚 | INHC | C 相高侧 PWM 输入 |
TIMA0_C2N | TIMA0 通道 2 互补输出引脚 | INLC | C 相低侧 PWM 输入 |
三相电流检测的 ADC 配置:表 2-16 和表 2-5 展示了三相电流检测的 ADC 电流的默认引脚配置,具体取决于所使用的 DRV 器件。需要将三个 ADC 输入连接到电机驱动器或外部 CSA 的三个 CSA 输出。
ADC0 和 ADC1 是两个同时采样的 4Msps 模数转换器,用于测量相电流和电压。ADC0 和 ADC1 在正常电机运行条件下同时测量相电流,并根据转子角度按顺序测量总线电压。
从 CSA 输出到 ADC 输入,可串联一个低通 RC 滤波器(可选),以滤除开关输出信号中的任何高频噪声,从而进行正确的 ADC 采样,如图 2-2 所示。
选择一个至少为 PWM 开关频率 (fPWM) 10 倍的滤波频率 fc。根据 RC 滤波器设计,使用方程式 1 计算 fc。
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A0_3 | ADC0,通道 3 输入 | SOA | A 相电流检测输出 |
A0_2 | ADC0,通道 2 输入 | SOB | B 相电流检测输出 |
A1_2 | ADC1,通道 2 输入 | SOB | B 相电流检测输出 |
A1_1 | ADC1,通道 1 输入 | SOC | C 相电流检测输出 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A1_13 | ADC1,通道 13 输入 | SOA | A 相电流检测输出 |
A1_14 | ADC1,通道 14 输入 | SOB | B 相电流检测输出 |
A0_12 | ADC0,通道 12 输入 | SOB | B 相电流检测输出 |
A0_2 | ADC0,通道 2 输入 | SOC | C 相电流检测输出 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A1_2 | ADC1,通道 2 输入 | SOA | A 相电流检测输出 |
A0_3 | ADC0,通道 2 输入 | SOB | B 相电流检测输出 |
A1_3 | ADC1,通道 3 输入 | SOC | C 相电流检测输出 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A1_14 | ADC1,通道 14 输入 | SOA | A 相电流检测输出 |
A1_13 | ADC1,通道 13 输入 | SOB | B 相电流检测输出 |
A0_4 | ADC0,通道 4 输入 | SOC | C 相电流检测输出 |
在单分流器电流检测中,ADC0/ADC1 中的任何一个用于在单个 PWM 周期的两个不同实例对相同的分流电流进行采样,以便估算三相电流。用户需要配置合适的 ADC 来从存储器"0"索引和存储器"1"索引采样电流检测输出,以实现 FOC 运行。请参阅通用 FOC 用户指南以了解有关单分流器电流检测的 ADC 配置的详细信息。
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A1_2 | ADC 1,通道 2 输入 | SOX | 直流总线电流检测 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A1_14 | ADC 1,通道 14 输入 | SOX | 直流总线电流检测 |
ADC 电压的默认引脚配置如下表所示。所需连接为四个 ADC 输入:
检测到的电压通过一个电阻分压器和一个可选的旁路滤波电容实现,如图 2-3 所示。调整电阻器的大小,使任何电机电压瞬变都不超过 ADC 输入的最大电压。有关电阻分压比的更多信息,请参阅节 6.1.6。
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A1_6 | ADC1,通道 6 输入 | VSENA | A 相检测电压输出 |
A0_7 | ADC0,通道 7 输入 | VSENB | B 相检测电压输出 |
A1_5 | ADC1,通道 5 输入 | VSENC | C 相检测电压输出 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A0_0 | ADC0,通道 0 输入 | VSENA | A 相检测电压输出 |
A0_1 | ADC0,通道 1 输入 | VSENB | B 相检测电压输出 |
A0_5 | ADC0,通道 5 输入 | VSENC | C 相检测电压输出 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A1_3 | ADC1,通道 3 输入 | VSEN -Vm | 直流总线电压输出 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A0_4 | ADC1,通道 3 输入 | VSEN -Vm | 直流总线电压输出 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A0_2 | ADC0,通道 2 输入 | VSEN -Vm | 直流总线电压输出 |
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
A0_12 | ADC0,通道 2 输入 | VSEN -Vm | 直流总线电压输出 |
电机驱动器或 MCU 可在硬件中检测故障。
通常,当检测到系统中存在故障时,电机驱动器会驱动低电平有效的开漏故障引脚 (nFAULT),比如,在驱动器内与 MOSFET 过流、栅极驱动或电源相关故障的连接中。
MSPM0 MCU 可以通过专用硬件路径检测故障输入,从而实现低延迟和快至 40ns 的响应速度。这比使用具有软件延迟的传统 GPIO 中断要快。故障输入路径可使用 TIMA 故障处理程序配置用于故障处理,例如在过流情况下关闭 PWM。TIMA 输入的示例包括外部故障引脚(例如 TIMA_FLT0)和使用比较器的低侧过流(例如 COMP0_IN0+)。
MSPM0 的许多 GPIO 输出功能可用于由逻辑电平引脚控制的电机驱动器特定功能。电机驱动器功能的示例包括:
SPI 连接的默认引脚配置如节 2.8 所示。一些电机驱动器包括可选的 SPI,用于配置控制寄存器和读取状态寄存器以进行故障诊断。SPI 寄存器的一些示例包括:
MSPM0 引脚 | 功能 | DRV 连接 | DRV 功能 |
---|---|---|---|
SPIx_CSy | SPI 芯片选择(y = 0、1、2、3) | nSCS | SPI 芯片选择 |
SPIx_SCK | SPI 时钟 | SCLK | SPI 时钟 |
SPIx_POCI | SPI 外设输出控制器输入 | SDO | SPI 数据输出 |
SPIx_PICO | SPI 外设输入控制器输出 | SDI | SPI 数据输入 |