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修订历史记录

霍尔校准

表 7-7 中所示的霍尔角度表值可通过霍尔校准例程自动生成,如下所述:

  1. Motor_Align:校准序列的第一步是将电机对齐到已知的转子角度。在此例程中,电机在持续时间 (pUserInputRegs->mtrStartUp1.b.calibAlignTime) 内与角度对齐(CALIBRATION_ALIGN_ANGLE 宏)。需要配置足够的 calibAlignTime,以便电机在启动校准之前对齐并停止移动。
  2. Motor_Calib_Run:Motor_Align 成功完成后,转子以宏 (CALIBRATION_ANGLE_STEP) 中指定的角度进行微步进,持续时间为 (pUserInputRegs->mtrStartUp1.b.calibRunTime)。电机在正向和反向均旋转一个完整的机械周期,以便计算平均霍尔角度。
  3. Motor_Calib_Complete:成功完成 Motor_Calib_Run 后,霍尔角度表中会生成正向和反向上每次霍尔状态切换的转子角度,分别为 g_pMC_App->hallAngleTableForward 和 g_pMC_App->hallAngleTableReverse。

下表展示了用于霍尔校准的相关变量。

表 7-8 霍尔校准变量
变量/宏说明
pUserInputRegs->mtrStartUp1.b.calibCurrLimit霍尔校准期间的电流限制,表示为基极电流的百分比。
pUserInputRegs->mtrStartUp1.b.calibAlignTime转子初始对齐到 CALIBRATION_ALIGN_ANGLE 所花的时间。
pUserInputRegs->mtrStartUp1.b.calibRunTime针对每个 CALIBRATION_ANGLE_STEP 校准霍尔所花的时间。
pUserInputRegs->mtrStartUp1.b.currRampRateMotor_Align 期间直至达到最大电流的初始电流斜变速率。
pUserCtrlRegs->algoDebugCtrl2.b.hallCaliEnable用于启用自动霍尔校准。
pUserCtrlRegs->speedCtrl.b.speedInput目标电机速度/扭矩值,表示为速度或扭矩命令值的百分比 × 32768。
g_pMC_App->hallAngleTableForward用于正向旋转的霍尔角度表。如果不执行霍尔校准,则从 forwardHallIndexLUT 传递该值。
g_pMC_App->hallAngleTableReverse用于反向旋转的霍尔角度表。如果不执行霍尔校准,则从 reverseHallIndexLUT 传递该值。
CALIBRATION_ALIGN_ANGLEhallCalib.h 文件中定义的初始转子对齐。
CALIBRATION_ANGLE_STEPhallCalib.h 文件中定义的校准角度步长。