littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于C语言和ModusToolbox框架的USB PD传感器无刷直流电机控制系统

项目简介

本项目是基于EZ - PD™ PMG1 - S3设备的解决方案。借助C语言和ModusToolbox框架,能通过Type - C电缆在28V扩展功率范围(EPR)模式下从USB PD获取电力,可直接控制功率高达140瓦的无传感器三相BLDC电机。

项目的主要特性和功能

  1. 无传感器BLDC电机控制:采用无传感器控制技术,通过检测反电动势(BEMF)信号确定转子位置,运用六步梯形换向技术实现电机控制。
  2. 多阶段控制算法:分为预定位、自由运行和闭环控制三个阶段,能根据电机运行状态自动切换控制方式。
  3. USB PD供电:支持从USB PD电源获取电力,可选择28V EPR模式或20V、5A PDO的USB PD适配器。
  4. 闭环PID控制:在闭环运行阶段,使用PID控制算法,保证电机运行的稳定性和动态响应。
  5. 保护与错误检测:具备欠压、过压、过流、最低速度和换向错误等保护功能,通过用户LED闪烁提示错误类型。
  6. 用户交互:用户可通过开关控制电机的启动、停止、重置和方向反转,还能通过电位器调节电机速度。
  7. 数据监测:可在串口UART终端查看电机的运行数据。

安装使用步骤

环境准备

  1. 安装ModusToolbox™ v3.3或更高版本。
  2. 确保Board support package(BSP)最低版本为3.0.0。

硬件设置

  1. 在CY7113板上,移除板载电阻R17、R23、R26、R30、R45、R46、R74、R78和R82,安装电阻R64、R65、R67、R68、R70和R72。
  2. 参考应用笔记AN237305,将CY7113(EZ - PD™ PMG1 - S3原型套件)连接到电机驱动板。
  3. 验证PMG1 - S3设备与外部电路之间的GPIO连接。
  4. 推荐使用支持EPR模式的28V USB PD适配器作为电源连接到PMG1 - S3套件,也可使用20V、5A PDO的USB PD适配器。
  5. 使用标准EPR模式支持的USB Type - C电缆连接电源和设备。
  6. 将BLDC电机的三相端子A、B、C连接到半桥MOSFET逆变器电路的输出线A、B、C。

软件设置

参考ModusToolbox™工具包安装指南安装和配置工具包,可使用EZ - PD™协议分析仪实用程序分析和调试USB PD通信。

创建项目

可使用ModusToolbox™的Project Creator GUI或CLI创建项目:

使用Project Creator GUI

  1. 打开Project Creator GUI工具。
  2. 在“Choose Board Support Package (BSP)”页面,选择支持的套件。
  3. 在“Select Application”页面,选择应用程序根路径、目标IDE,勾选此代码示例,可更改应用程序和BSP名称,点击“Create”完成创建。

使用Project Creator CLI

在CLI终端中使用project - creator - cli工具,示例命令如下: project - creator - cli --board - id PMG1 - CY7113 --app - id mtb - example - pmg1 - usbpd - sensorless - bldc - motor --user - app - name USBPDSensorlessBLDCMotor --target - dir "C:/mtb_projects"

打开项目

根据偏好选择开发环境打开项目: - Eclipse IDE:若从Eclipse IDE打开Project Creator工具,项目将自动在Eclipse中打开。 - Visual Studio (VS) Code:手动启动VS Code,打开项目目录下的{project - name}.code - workspace文件。 - Keil µVision:双击项目目录下生成的{project - name}.cprj文件。 - IAR Embedded Workbench:手动打开IAR Embedded Workbench,创建新项目,选择项目目录下生成的{project - name}.ipcf文件。 - 命令行:打开相应终端,导航到项目目录,在Windows上使用modus - shell,在Linux和macOS上使用任意终端应用程序,运行make命令。

运行操作

  1. 完成硬件设置步骤。
  2. 将PMG1套件的板载电源选择跳线(J5)连接到位置2 - 3,通过KitProg3 USB Type - C端口(J1)为PMG1 MCU供电。
  3. 使用USB电缆连接KitProg3 USB Type - C端口(J1)以对PMG1设备进行编程。
  4. 使用以下方法之一对板进行编程:
    • Eclipse IDE:在Project Explorer中选择应用项目,在“Quick Panel”中点击{Application Name} Program (KitProg3_MiniProg4)
    • 其他IDE:按照对应IDE的说明操作。
    • CLI:在终端执行make program命令,可通过TOOLCHAIN参数指定工具链,如make program TOOLCHAIN = GCC_ARM
  5. 编程完成后,断开J1端口的USB电缆,将电源选择跳线(J5)重新连接到位置1 - 2,将PMG1套件配置为运行模式。
  6. 将USB PD电源适配器连接到PMG1 USB PD接收端口(J10)为电机供电。
  7. 确认PMG1套件的板载用户LED(LED3)未亮起,表明无错误,电机准备启动。
  8. 按一次开关CTRL_SW启动电机,再次按下停止电机。
  9. 若用户LED(LED3)持续闪烁,说明存在错误,参考设计与实现部分的“Table 5”确定错误类型。
  10. 确定错误原因并修复后,按两次CTRL_SW重置控制器。
  11. 电机启动后,旋转电位器SPEED_POT可调节速度。
  12. 电机停止时,按住CTRL_SW直到CY7113套件上的用户LED(LED3)闪烁三次,可启用反转模式。
  13. main.c文件中启用UART_PRINT_ENABLE宏,重新编程MCU后,可在串口UART终端查看电机的运行数据。

调试

可在不同开发环境中进行调试: - Eclipse IDE:使用“Quick Panel”中的{Application Name} Debug (KitProg3_MiniProg4)配置进行调试,确保板通过KitProg3使用USB Type - C电缆连接到PC,跳线J5连接在1 - 2之间,并通过J10 USB - C端口为套件供电。 - 其他IDE:按照对应IDE的说明操作。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】