ZHDU069 March   2026 MSPM0G1507 , MSPM0G1519 , MSPM0G3507 , MSPM0G3519

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
  5. 电机控制理论
    1. 2.1 BLDC 电机基础知识
    2. 2.2 数学模型和 FOC 结构
    3. 2.3 无传感器场定向控制
      1. 2.3.1 FOC 基础知识
      2. 2.3.2 增强型滑模观测器
      3. 2.3.3 有限差分 BEMF 估算器
      4. 2.3.4 转子位置和转速估算
  6. MSP FOC 系统
    1. 3.1 设计资源
    2. 3.2 FOC 特性概述
    3. 3.3 FOC 基准
  7. MSP FOC 硬件
    1. 4.1 PWM 引脚配置
    2. 4.2 ADC 引脚配置
      1. 4.2.1 直流总线电压
      2. 4.2.2 电机相电压
      3. 4.2.3 电机相电流
        1. 4.2.3.1 单分流器电流检测
        2. 4.2.3.2 双或三分流器电流检测
        3. 4.2.3.3 采用同步采样的三分流器电流检测
    3. 4.3 故障引脚配置
    4. 4.4 霍尔 GPIO 引脚配置
    5. 4.5 GPIO 引脚配置
    6. 4.6 SPI 引脚配置
    7. 4.7 UART 引脚配置
    8. 4.8 评估板的外部连接
  8. MSP FOC 软件
    1. 5.1 工程结构
    2. 5.2 软件概述
      1. 5.2.1 应用层
        1. 5.2.1.1 FOC 库
        2. 5.2.1.2 电机控制应用
        3. 5.2.1.3 主应用程序
      2. 5.2.2 HAL 层
        1. 5.2.2.1 栅极驱动器接口
        2. 5.2.2.2 电流检测电路
        3. 5.2.2.3 硬件接口
        4. 5.2.2.4 通信接口
      3. 5.2.3 MSPM0 Driverlib 层
    3. 5.3 寄存器映射(无传感器 FOC)
      1. 5.3.1 用户控制寄存器(基址 = 0x20200400h)
        1. 5.3.1.1 速度控制寄存器(偏移 = 0h)[复位 = 00000000h]
        2. 5.3.1.2 算法调试控制 1 寄存器(偏移 = 4h)[复位 = 00000000h]
        3. 5.3.1.3 算法调试控制 2 寄存器(偏移 = 8h)[复位 = 00000000h]
        4. 5.3.1.4 算法调试控制 3 寄存器(偏移 = Ch)[复位 = 00000000h]
        5. 5.3.1.5 DAC 配置寄存器(偏移 = 10h)[复位 = 00000000h]
      2. 5.3.2 用户输入寄存器(基址 = 0x20200000h)
        1. 5.3.2.1  SYSTEM_PARAMETERS(偏移 = 0h)
        2. 5.3.2.2  MOTOR_STARTUP1 寄存器(偏移 = 3Ch)[复位 = 00000000h]
        3. 5.3.2.3  MOTOR_STARTUP2 寄存器(偏移 = 40h)[复位 = 00000000h]
        4. 5.3.2.4  CLOSED_LOOP1 寄存器(偏移 = 44h)[复位 = 00000000h]
        5. 5.3.2.5  CLOSED_LOOP2 寄存器(偏移 = 48h)[复位 = 00000000h]
        6. 5.3.2.6  FIELD_CTRL 寄存器(偏移 = 4Ch)[复位 = 00000000h]
        7. 5.3.2.7  FAULT_CONFIG1 寄存器(偏移 = 50h)[复位 = 00000000h]
        8. 5.3.2.8  FAULT_CONFIG2 寄存器(偏移 = 54h)[复位 = 00000000h]
        9. 5.3.2.9  MISC_ALGO 寄存器(偏移 = 58h)[复位 = 00000000h]
        10. 5.3.2.10 PIN_CONFIG 寄存器(偏移 = 5Ch)[复位 = 00000000h]
        11. 5.3.2.11 PERI_CONFIG 寄存器(偏移 = 60h)[复位 = 00000000h]
      3. 5.3.3 用户状态寄存器(基址 = 0x20200430h)
  9. 快速入门指南
    1. 6.1 CCS IDE
      1. 6.1.1 工程设置
      2. 6.1.2 工程调试
    2. 6.2 GUI
  10. 电机调优指南
    1. 7.1 硬件板参数
      1. 7.1.1 基极电压 (V)
      2. 7.1.2 基极电流 (A)
    2. 7.2 电机参数
      1. 7.2.1 电机相电阻 (mΩ)
      2. 7.2.2 电机相电感 (μH)
      3. 7.2.3 IPMSM 电机的凸极
      4. 7.2.4 电机极点对
      5. 7.2.5 电机 BEMF 常数 (mV/Hz)
      6. 7.2.6 最大电机频率 (Hz)
      7. 7.2.7 最大电机功率 (W)
    3. 7.3 控制环路参数
      1. 7.3.1 速度/功率环路
      2. 7.3.2 电流环路
    4. 7.4 霍尔角度表
      1. 7.4.1 霍尔校准
      2. 7.4.2 寄存器表
    5. 7.5 旋转电机 (LVBLDC)
    6. 7.6 旋转带霍尔传感器的电机
    7. 7.7 调优电机 (LVBLDC)
      1. 7.7.1 基本调优
        1. 7.7.1.1  启动模式
          1. 7.7.1.1.1 对齐模式
            1. 7.7.1.1.1.1 电流环路中的强制对齐模式
            2. 7.7.1.1.1.2 PWM 环路中的强制对齐模式
          2. 7.7.1.1.2 双对齐模式
          3. 7.7.1.1.3 初始位置检测 (IPD) 模式
            1. 7.7.1.1.3.1 高分辨率 IPD
          4. 7.7.1.1.4 慢速首循环 (SFC) 模式
        2. 7.7.1.2  开环模式
          1. 7.7.1.2.1 自动转换
          2. 7.7.1.2.2 强制开环模式
        3. 7.7.1.3  从开环转换到闭环
        4. 7.7.1.4  闭环模式
          1. 7.7.1.4.1 调优控制参数
          2. 7.7.1.4.2 调优 PI 参数
        5. 7.7.1.5  停止模式
          1. 7.7.1.5.1 滑行(高阻态)模式
          2. 7.7.1.5.2 主动降速模式
          3. 7.7.1.5.3 制动模式
            1. 7.7.1.5.3.1 低侧制动
            2. 7.7.1.5.3.2 对齐制动
        6. 7.7.1.6  故障处理
          1. 7.7.1.6.1 MOTOR_STALL
            1. 7.7.1.6.1.1 ABN_SPEED_FAULT
            2. 7.7.1.6.1.2 ABN_BEMF_FAULT
            3. 7.7.1.6.1.3 NO_MOTOR_FAULT
          2. 7.7.1.6.2 VOLTAGE_OUT_OF_BOUNDS
          3. 7.7.1.6.3 LOAD_STALL
          4. 7.7.1.6.4 HARDWARE_OVER_CURRENT
          5. 7.7.1.6.5 HV_DIE
        7. 7.7.1.7  电机旋转方向
        8. 7.7.1.8  PWM 配置
          1. 7.7.1.8.1 PWM 频率
          2. 7.7.1.8.2 PWM 死区时间
        9. 7.7.1.9  FOC 环路频率
        10. 7.7.1.10 用于基本调优的硬代码
      2. 7.7.2 高级调优
        1. 7.7.2.1 控制模式设置
          1. 7.7.2.1.1 闭环速度控制模式
          2. 7.7.2.1.2 闭环功率控制模式
          3. 7.7.2.1.3 闭环扭矩控制模式
          4. 7.7.2.1.4 开环电压控制模式
            1. 7.7.2.1.4.1 超前角控制
        2. 7.7.2.2 每安培最大扭矩 (MTPA) 控制
        3. 7.7.2.3 弱磁控制 (FWC)
        4. 7.7.2.4 死区时间补偿
        5. 7.7.2.5 PWM 生成模式
        6. 7.7.2.6 过调制模式
        7. 7.7.2.7 初始速度检测 (ISD) 模式
          1. 7.7.2.7.1 电机重新同步
          2. 7.7.2.7.2 反向驱动
          3. 7.7.2.7.3 快速 ISD
        8. 7.7.2.8 防电压浪涌
    8. 7.8 覆盖用户输入寄存器表
  11. 硬件迁移指南
    1. 8.1 硬件层概述
    2. 8.2 栅极驱动器模块
      1. 8.2.1 选择参考工程
      2. 8.2.2 修改预定义符号
      3. 8.2.3 添加自定义源文件
        1. 8.2.3.1 栅极驱动器通信文件夹
        2. 8.2.3.2 HAL 层文件
      4. 8.2.4 添加自定义通信接口
      5. 8.2.5 覆盖默认宏定义
        1. 8.2.5.1 main.h 文件
          1. 8.2.5.1.1 电流检测路径中的延迟分量
        2. 8.2.5.2 gateDriver.h 文件
    3. 8.3 MCU 外设配置
      1. 8.3.1 PWM 模块
        1. 8.3.1.1 用于 PWM 输出的不同引脚
        2. 8.3.1.2 用于 PWM 故障输入的不同引脚
        3. 8.3.1.3 与 PWM 输出通道的不同映射
      2. 8.3.2 ADC 模块
        1. 8.3.2.1 电流检测类型
        2. 8.3.2.2 电流检测方法
          1. 8.3.2.2.1 三分流器配置
          2. 8.3.2.2.2 采用同步采样的三分流器配置
          3. 8.3.2.2.3 双分流器配置
          4. 8.3.2.2.4 单分流器配置
        3. 8.3.2.3 CSA 偏移比例因子
        4. 8.3.2.4 通道映射
          1. 8.3.2.4.1 相电流通道
            1. 8.3.2.4.1.1 三分流器配置
            2. 8.3.2.4.1.2 双分流器配置
            3. 8.3.2.4.1.3 单分流器配置
          2. 8.3.2.4.2 总线电压通道
          3. 8.3.2.4.3 相电压通道
        5. 8.3.2.5 触发模式
          1. 8.3.2.5.1 三或双分流器配置
          2. 8.3.2.5.2 单分流器配置
      3. 8.3.3 GPIO 引脚
      4. 8.3.4 HALL 模块
      5. 8.3.5 UART 模块
      6. 8.3.6 DAC12 模块
      7. 8.3.7 IPD 模块(捕获计时器)
    4. 8.4 自定义板验证
  12. 常见问题解答 (FAQ)
    1. 9.1 MSPM0 无法连接
    2. 9.2 以硬编码形式启动电机
    3. 9.3 减少 1 个用于同步采样的 ADC 引脚
    4. 9.4 调优实时控制参数
    5. 9.5 跟踪实时变量
      1. 9.5.1 DAC12 输出
      2. 9.5.2 J-Scope 工具
  13. 10总结
  14. 11参考资料
  15. 12修订历史记录

DAC12 输出

可通过 DAC12 模块从 MCU 实时输出 32 位算法变量。通过将 pUserCtrlRegs->dacCtrl.dacEn 设置为 1b,即可启用 DAC12 输出。MSPM0 中的 DAC12 为 12 位 DAC 模块,因此需要在输出之前进行比例调节。按照以下步骤配置 DAC12 输出:

  1. 对于全局 IQ 格式的变量 (IQ27),请参阅方程式 48。将 pUserCtrlRegs->dacCtrl.dacScalingFactor 设置为 IQ(1.0),可使 DAC12 输出在 0V 至 3.3V 之间,表示 IQ(1.0) 至 IQ(-1.0) 之间的数据。要表示超过值 IQ(1.0) 的数据,可使用更高的 dacScalingFactor。例如,要表示 IQ(2.0) 至 IQ(-2.0) 之间的数据,可将 dacScalingFactor 设置为 IQ(0.5)。
    方程式 48. DAC_OUTPUT[V]=(VARIABLE_VALUE[IQ format]×SCALING_FACTOR+1)×1.65V
  2. 对于任何非 IQ27 的 IQ 格式输出,用户可以将变量左移位或右移位,以便在输出之前将数据置于 12 位范围内。可以通过将 dacScalingFactor 设置为 0 来选择此模式。
    1. 如果变量值小于 12 位值,请将 pUserCtrlRegs->dacCtrl.dacShift 设置为正,DAC 输出遵循方程式 49
    2. 如果变量值大于 12 位值,请将 dacShift 设置为负,DAC 输出遵循方程式 50
方程式 49. DAC_OUTPUT[V]=(VARIABLE_VALUE[IQ format]<<DAC_SHIFT)×3.3V
方程式 50. DAC_OUTPUT[V]=(VARIABLE_VALUE[IQ format]>>DAC_SHIFT)×3.3V
注:

通过将 dacEn 设置为 1b,可将变量输出馈送到 DAC 寄存器,但用户需要在 TI SysConfig 中启用 DAC 外设,DAC 外设才能正常运行。还要确保 DAC 输出引脚未被任何其他外设或 DRV 板载入。

表 9-1 列出了用于实时跟踪的 FOC 电机控制变量地址,每个 FOC 环路都会发生更新。相比之下,pUserStatusRegs 中的变量每 1ms 更新一次,因此无法显示实时变化。

表 9-1 用于 DAC 监控的地址表
参数变量地址/名称IQ 类型
无传感器 FOC通用 FOC带传感器 FOC
A 相电流g_pMotorInputs->current.iabc.aIQ27
B 相电流g_pMotorInputs->current.iabc.bIQ27
C 相电流g_pMotorInputs->current.iabc.cIQ27
A 相电流原始 ADC 值g_pMotorInputs->current.iabcRaw.aIQ11
B 相电流原始 ADC 值g_pMotorInputs->current.iabcRaw.bIQ11
C 相电流原始 ADC 值g_pMotorInputs->current.iabcRaw.cIQ11
A 相电压g_pMotorInputs->voltage.vabc.aIQ27
B 相电压g_pMotorInputs->voltage.vabc.bIQ27
C 相电压g_pMotorInputs->voltage.vabc.cIQ27
A 相电压原始 ADC 值g_pMotorInputs->voltage.vabcRaw.aIQ12
B 相电压原始 ADC 值g_pMotorInputs->voltage.vabcRaw.bIQ12
C 相电压原始 ADC 值g_pMotorInputs->voltage.vabcRaw.cIQ12
D 轴电流0x20200760g_pMC_App->foc.idq.dIQ27
Q 轴电流0x20200764g_pMC_App->foc.idq.qIQ27
D 轴电压0x20200768g_pMC_App->foc.vdq.dIQ27
Q 轴电压0x2020076Cg_pMC_App->foc.vdq.qIQ27
D 轴经过滤波的 BEMF0x20200BECg_pMC_App->angleTrackingPLLEstim.EdqFilt.d

不适用

IQ27
Q 轴经过滤波的 BEMF0x20200BF0g_pMC_App->angleTrackingPLLEstim.EdqFilt.q

不适用

IQ27
滤波后的估算电机转速0x20200C0Cg_pMC_App->angleTrackingPLLEstim.velocityFiltg_pMC_App->foc.hallObj.hallEstimVelocityFiltIQ27
估算的转子角度0x20200C14g_pMC_App->angleTrackingPLLEstim.fluxAngleg_pMC_App->foc.hallObj.hallEstimFluxAngleIQ27
功率反馈0x20200940g_pMC_App->foc.closeLoop.PowerFeedbackIQ27
SVM 输出占空比 A 相0x20200730g_pMC_App->foc.svm.Dabc.aIQ0
SVM 输出占空比 B 相0x20200734g_pMC_App->foc.svm.Dabc.bIQ0
SVM 输出占空比 C 相0x20200738g_pMC_App->foc.svm.Dabc.cIQ0
注:

在不同的 FOC 算法版本中,变量地址可能有所不同。有关较新的无传感器 FOC 算法版本的变量地址,请参阅最新的 MSPM0 无传感器 FOC 调优指南

图 9-2图 9-3 展示了在 DAC12 输出引脚上输出估算的转子角度变量的示例。

 DAC12 模块的寄存器设置图 9-2 DAC12 模块的寄存器设置
 DAC12 模块输出的估算转子角度图 9-3 DAC12 模块输出的估算转子角度
注:

对于估算的转子角度,IQ(1.0) 表示 32 个电角度周期,以避免算法溢出。