ZHCUBZ5A September   2021  – April 2024

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2电机控制理论
    1. 2.1 PMSM 的数学模型和 FOC 结构
    2. 2.2 PM 同步电机的磁场定向控制
    3. 2.3 PM 同步电机的无传感器控制
      1. 2.3.1 具有锁相环的增强型滑模观测器
        1. 2.3.1.1 PMSM 的 ESMO 设计
        2. 2.3.1.2 使用 PLL 的转子位置和转速估算
    4. 2.4 电机驱动器的硬件必要条件
      1. 2.4.1 电机相电压反馈
    5. 2.5 额外的控制特性
      1. 2.5.1 弱磁 (FW) 和每安培最大扭矩 (MTPA) 控制
      2. 2.5.2 快速启动
  6. 3在 TI 硬件套件上运行通用实验
    1. 3.1 受支持的 TI 电机评估套件
    2. 3.2 硬件电路板设置
      1. 3.2.1  LAUNCHXL-F280025C 设置
      2. 3.2.2  LAUNCHXL-F280039C 设置
      3. 3.2.3  LAUNCHXL-F2800137 设置
      4. 3.2.4  TMDSCNCD280025C 设置
      5. 3.2.5  TMDSCNCD280039C 设置
      6. 3.2.6  TMDSCNCD2800137 设置
      7. 3.2.7  TMDSADAP180TO100 设置
      8. 3.2.8  DRV8329AEVM 设置
      9. 3.2.9  BOOSTXL-DRV8323RH 设置
      10. 3.2.10 BOOSTXL-DRV8323RS 设置
      11. 3.2.11 DRV8353RS-EVM 设置
      12. 3.2.12 BOOSTXL-3PHGANINV 设置
      13. 3.2.13 DRV8316REVM 设置
      14. 3.2.14 TMDSHVMTRINSPIN 设置
      15.      34
      16.      35
    3. 3.3 实验软件实现
      1. 3.3.1 导入和配置工程
      2.      38
      3.      39
      4. 3.3.2 实验工程结构
      5. 3.3.3 实验软件概述
    4. 3.4 监控反馈或控制变量
      1. 3.4.1 使用 DATALOG 函数
      2. 3.4.2 使用 PWMDAC 函数
      3. 3.4.3 使用外部 DAC 板
    5. 3.5 使用不同的构建级别循序渐进地运行工程
      1. 3.5.1 级别 1 增量构建
        1. 3.5.1.1 构建和加载工程
        2. 3.5.1.2 设置调试环境窗口
        3. 3.5.1.3 运行代码
      2. 3.5.2 级别 2 增量构建
        1. 3.5.2.1 构建和加载工程
        2. 3.5.2.2 设置调试环境窗口
        3. 3.5.2.3 运行代码
      3. 3.5.3 级别 3 增量构建
        1. 3.5.3.1 构建和加载工程
        2. 3.5.3.2 设置调试环境窗口
        3. 3.5.3.3 运行代码
      4. 3.5.4 级别 4 增量构建
        1. 3.5.4.1 构建和加载工程
        2. 3.5.4.2 设置调试环境窗口
        3. 3.5.4.3 运行代码
  7. 4构建定制板
    1. 4.1 构建新的定制板
      1. 4.1.1 硬件设置
      2. 4.1.2 将参考代码迁移到定制电路板
        1. 4.1.2.1 设置硬件板参数
        2. 4.1.2.2 修改电机控制参数
        3. 4.1.2.3 更改引脚分配
        4. 4.1.2.4 配置 PWM 模块
        5. 4.1.2.5 配置 ADC 模块
        6. 4.1.2.6 配置 CMPSS 模块
        7. 4.1.2.7 配置故障保护函数
      3. 4.1.3 向电机控制工程中添加附加功能
        1. 4.1.3.1 添加按钮功能
        2. 4.1.3.2 添加电位器读取功能
        3. 4.1.3.3 添加 CAN 功能
    2. 4.2 支持新的 BLDC 电机驱动器板
    3. 4.3 将参考代码移植到新的 C2000 MCU
  8.   A 附录 A. 电机控制参数
  9.   参考资料
  10.   修订历史记录

将参考代码移植到新的 C2000 MCU

电机控制通用实验工程可以移植到其他支持 FPU 和 TMU 的 C2000 MCU 控制器。以下步骤详细说明了如何移植实验练习代码。F28004x MCU 用作新目标 C2000 MCU 的示例。若要调整支持 SysConfig 的实验版本,请在以下全部说明中将 universal_motorcontrol_lab 替换为 universal_motorcontrol_syscfg

  1. 浏览到 <install_location>\solutions\universal_motorcontrol_lab 文件夹,然后选择现有的器件特定实验文件夹之一。本示例中将使用“f28002x”文件夹,但可以使用任何文件夹。
  2. 在同一 universal_motorcontrol_lab 文件夹中创建所选器件特定实验的副本,并将名称更改为“f28004x”。<install_location>\solutions\universal_motorcontrol_lab\f28004x 将是您最终移植的实验的位置,在下面会称为 <f28004x_lab_location>
  3. 编译器使用 cmd 文件来映射 C2000 MCU 的存储器。浏览至 <f28004x_lab_location>\cmd 文件夹,并更新 f28002x_flash_lib_is.cmd 文件的名称,以反映新的 f28004x 器件。请注意,该文件夹中存在多个其他 cmd 文件,它们在默认情况下未使用且可以忽略。
  4. 通用电机控制实验使用 C2000Ware 器件驱动程序文件 device.c/h 中提供的引脚定义。必须针对新器件更新这些定义。
    1. 导航至新 C2000 MCU 的 C2000Ware 通用器件支持文件夹,位于 <install_location>\c2000ware\device_support\f28004x。在 ...\common\include 子文件夹中找到 device.h 文件。
    2. device.h 文件复制到 <f28004x_lab_location>\drivers\include 文件夹,替换现有文件。
    3. 导航回新 C2000 MCU 的 C2000Ware 通用器件支持文件夹。在 ...\common\source 子文件夹中找到 device.c 文件。
    4. device.c 文件复制到 <f28004x_lab_location>\drivers\source 文件夹,替换现有文件。
  5. 浏览到 <f28004x_lab_location>\ccs\motor_control 文件夹,并使用编辑器打开 projectspec 文件。CCS 使用该文件在用户工作区中生成工程文件夹,并包含对特定于器件的 C2000Ware 源文件的引用。
    1. 如果使用支持 SysConfig 的实验版本,请更新下面的粗体文本以指示新 C2000 MCU 的软件包。这行文本可在文件的器件定义部分中找到,这应该是第一个部分。
      sysConfigBuildOptions --product ${C2000WARE_ROOT}/.metadata/sdk.json --device F28002x --package 80QFP --part F28002x_80QFP"
    2. 某些 C2000 MCU 具有与其他 C2000 MCU 不同的功能。更新此文件以反映这些差异。例如,F28002x MCU 支持快速整数除法 (FINTDIV),而 F28004x 则不支持。相关的处理器选项是“idiv_support”项。查找并删除所有“--idiv_support=idiv0”实例,因为 F28004x 不支持此函数。
      1. 如果您不确定需要进行哪些更改,请参阅 TMS320C28x 优化 C/C++ 编译器 v22.6.0.LTS 用户指南第 2.3 节使用选项更改编译器的行为 的表 2-1 处理器选项,其中详细介绍了每个选项的用途。
      2. 确定该器件与您选择的新 C2000 MCU 之间存在哪些差异。有关此过程的帮助,请参阅 C2000 实时控制外设参考指南,其中介绍了器件和外设版本之间的差异。
      3. 根据需要在 projectspec 文件中进行调整。
    3. 找到文件中的所有“28002x”实例并替换为“28004x”。
    4. 在文件中找到“280025C”的所有实例。
      1. 第一个结果应在文件开头附近,指定工程器件。更新粗体文本以正确显示为该工程选择的新 C2000 MCU。
        <project
            name="universal_motorcontrol_lab_f28004x"
            device="TMS320F280025C"
      2. 最后两个结果应位于文件的最后一个部分。以下摘录可在 ccxml 文件“复制文件”操作的“路径”中找到。
        /TMS320F280025C_LaunchPad.ccxml
        /TMS320F280025C.ccxml
      3. 更新粗体文本以正确指示新 C2000 MCU 系列器件的通用目标配置文件,这些文件可以在之前引用的器件支持文件夹中的...\common\targetConfigs 下找到。对于所有 F28004x 器件,粗体文本应更改为“TMS320F280049C”。
      4. “280025C”的所有其他结果应位于注释中。为了确保文档准确性,建议更新这些内容,但并不重要。
  6. 将“universal_motorcontrol_lab_f28004x”工程导入 CCS。
    1. 请注意,导入工程后,CCS 可能会显示错误,指示未找到 f28004x_headers_nonbios.cmd 文件。此错误不会影响性能,但可能会增加调试的难度。在该文件中执行的内存分配只被调试环境监视窗口使用,在节 3.5.1.2的增量式构建阶段中进行了说明。
    2. 若要充分利用调试环境监视窗口,请遵循本节中与 f28002x_flash_lib_is.cmd 文件以及 f28002x_headers_nonbios.cmd 文件相关的所有说明。
  7. 打开 cmd 文件并根据所选的器件更改存储器映射。对于完全不熟悉此类型文件的用户,请参阅 TI 链接器命令文件入门,了解深入介绍和基本使用指南。
    1. 与针对旧器件修改 cmd 文件相比,修改某个通用 C2000Ware cmd 文件(例如 28004x_generic_flash_lnk.cmd 文件)可能更容易。这些文件位于器件支持文件夹的 ...\common\cmd 子文件夹中。在这种情况下,应使用工程的原始 cmd 文件作为参考。
    2. 如果使用 f28004x_headers_nonbios.cmd 文件,则通用 C2000Ware cmd 文件位于器件支持文件夹的 ...\headers\cmd 子文件夹中。
  8. 按照基于 F28004x 的硬件套件的节 4.1.2中所述,修改 GPIO、PWM、ADC 和 CMPSS 模块以及 hal.h 文件中的定义。
  9. 重新编译实验工程。工程中的所有错误或警告将显示在 CCS 控制台窗口中。按照消息提示修复所有错误或警告。器件之间的 driverlib API 有一些差异,此时必须考虑到这一点。
  10. 要添加函数以配置和使用新 C2000 MCU 中存在但在这些文件的原始 C2000 MCU 源代码中不存在的外设,请参阅 C2000Ware 或 MotorControlSDK 中的示例函数。例如,F28004x 具有可编程增益放大器 (PGA),而 F28002x 没有。
  11. 使用不同的构建级别以增量方式运行工程,以测试和验证功能。
  12. 如果要多次导入该工程,则最好更新工程的源文件,以便只需执行一次这些更改。导航至 <f28004x_lab_location> 文件夹。
    1. ...\cmd 子文件夹中,将 f28004x_flash_lib_is.cmd 文件替换为所导入 F28004x 工程中的更新文件。
    2. ...\drivers\source 子文件夹中,将 hal.c 文件替换为所导入的 F28004x 工程中的更新文件。
    3. ...\drivers\include 子文件夹中,将 hal.h 文件替换为所导入 F28004x 工程中的更新文件。