【动手学电机驱动】 STM32-FOC(1)IHM03 电机控制套件的介绍
STM32-FOC(1)IHM03 电机控制套件的介绍
STM32-FOC(2)IHM03 电机控制套件的使用
【动手学电机驱动】 STM32-FOC(1)IHM03 电机控制套件的介绍
- 1. IHM03:基于 STM32 的电机控制套件
- 1.1 X-NUCLEO-IHM16M1 电机驱动板
- 1.2 NUCLEO-G431RB 控制板
- 1.3 GBM2804H-100T 直流无刷电机
- 1.4 直流电源
- 2. IHM03 电机控制套件使用指南
- 2.1 开发环境
- 2.2 硬件设置
- 2.3 系统架构
- 2.4 快速启动
- 3. STM32电机控制软件开发套件(MCSDK)
- 4. STM32 集成开发环境(STM32CubeIDE)
- 5. 参考文档
1. IHM03:基于 STM32 的电机控制套件
P-NUCLEO-IHM03 STM32电机控制套件包括:X-NUCLEO-IHM16M1 电机驱动板、NUCLEO-G431RB 主控板、GBM2804H-100T云台直流无刷电机和 12V 直流电源。
该套件基于 STM32G431RB MCU 和 STSPIN830 驱动,为三相、低压和低电流的直流无刷电机或永磁同步电机提供了一种电机控制解决方案。
- STSPIN830 是面向三相电机,适用 FOC 算法的紧凑型通用驱动器。 它集成了三相半桥功率级,含有控制逻辑和完善的保护且RDSon较低,采用非常小的4 x 4 mm QFN 封装。支持单电阻或三电阻电流采样架构,并内嵌PWM电流控制器。通过专用的MODE输入引脚,可以选择 6个PWM 输入(每个输入对应一个Mosfet)或更常见的 3个PWM输入进行驱动。
- STM32G431RB 是一款32位微控制器,基于高性能Arm® Cortex®-M4 32位RISC内核,最高频率可达170 MHz,且带有浮点单元(FPU),内嵌高级模拟外设集。
1.1 X-NUCLEO-IHM16M1 电机驱动板
X-NUCLEO-IHM16M1 电机驱动板可以支持并配置不同的闭环控制、FOC或 6步方波 有感或无感方案。它兼容三电阻或单电阻电流采样测量。
- 基于STSPIN830,面向BLDC/PMSM电机的三相驱动板。
- 标称工作电压范围:DC 7~45 V
- 输出电流可达:1.5 A rms
- 过流、短路、以及互锁保护功能
- 热关断和欠压锁定
- BEMF感应电路
- 支持三电阻或单电阻电流采样检测
- 基于霍尔效应的传感器或编码器输入连接器
- 可用于调速的电位计
- 配有ST morpho连接器
X-NUCLEO-IHM16M1 电机驱动板基于STSPIN830单片驱动器,适用于三相无刷电机。用于在STM32 Nucleo项目中驱动无刷电机,实现单分流和三分流电流传感。STSPIN830嵌入了一个具有可调阈值的PWM限流器以及全套保护。
X-NUCLEO-IHM16M1扩展板与Arduino和ST morpho连接器兼容,因此可以插入STM32 NUCLEO开发板并与其他STM32 Nuclearo扩展板堆叠。
1.2 NUCLEO-G431RB 控制板
NUCLEO-G431RB 控制板代表了价格实惠的灵活解决方案,可帮助用户使用STM32G4 微控制器实践新理念并构建原型。
NUCLEO-G431RB 控制板集成了STLINK-V3E调试器和编程器,无需另外的调试工具。提供了全面的免费软件库和例程,可从STM32Cube MCU软件包获得。
- STM32G431RB 32位微控制器基于Arm® Cortex®-M4内核,内核工作频率为170 MHz,采用LQFP64封装,配128 Kb的闪存和32 Kb的SRAM
- 两种类型扩展资源:Arduino™ Uno V3扩展连接器 ST morpho延长引脚头,用于完全访问所有STM32 I/O
- 具有USB重新枚举功能的板上STLINK-V3E调试器/编程器:大容量存储器、虚拟COM端口和调试端口
- 具有1个用户按钮和1个复位按钮
STM32G431RB 32位微控制器的架构如下图所示。
1.3 GBM2804H-100T 直流无刷电机
- 云台直流无刷电机:GBM2804H-100T
- 最大直流电压:14.8 V
- 最高转速:2180 rpm
- 最大扭矩:0.981 N·m
- 最大直流电流:5 A
- 极对数:7
1.4 直流电源
标称输出电压:DC 12V
最大输出电流:2 A
输入电压范围:AC 100~240 V
输入频率范围:50~60 Hz
2. IHM03 电机控制套件使用指南
P-NUCLEO-IHM03 STM32电机控制套件使用FOC算法,为三相、低压和低电流的 BLDC 或 PMSM 电机提供电机控制解决方案。
2.1 开发环境
STM32 32位微控制器基于Arm®Cortex®-M处理器。
- 系统要求:
- Windows 操作系统(Windows 7、Windows 8 和 Windows 10)、Linux 64-bit 或 macOS
- USB Type-A 或 Type-c 至 Micro-B 连接线缆,用于将STM32 Nucleo板连接到 PC
- 硬件要求
- Windows PC
- X-NUCLEO-IHM16M1 电机驱动扩展板
- STM32 Nucleo 开发板
- 直流电源,输出电压 7~45 VDC
- 三相无刷电机
- USB Type-A 或 Type-c 至 Micro-B 连接线缆
- 开发工具
- STM32 电机控制 SDK:X-CUBE-MCSDK
- 集成开发环境 IDE,可以选择一下三者之一:
- STM32 集成开发环境(STM32CubeIDE)
- Keil 开发套件(MDK-ARM-STR)
- IAR 嵌入式开发环境(IAR-EWARM)
- 演示软件
演示软件(包含在 X-CUBE-MCSDK STM32Cube 扩展包在)预装在STM32 Flash 中,便于在外设独立模式下进行演示。
演示源代码和相关文档的最新版本可以从www.st.com下载。
2.2 硬件设置
下表给出了本文档中对跳线和桥接的 ON/OFF 基本设置。
2.3 系统架构
P-NUCLEO-IHM03套件基于电机控制系统的架构如下:
- 控制模块:NUCLEO-G431RB 控制板,它连接用户命令和配置参数以驱动电机,以执行电机驱动控制算法(如FOC)。
- 驱动模块:NUCLEO-IHM16M1 电机驱动板,基于三相逆变器拓扑,核心是 STSPIN830驱动器,它包括了所有必要的有源功率器件来实现低压 PMSM 电机控制。
- 永磁同步电机:低压、三相、无刷直流电机。
- 直流电源单元:为其他模块供电(12V,2A)。
2.4 快速启动
从控制板快速启动的操作步骤:
- 根据使用的 STM32 Nucleo 开发板和操作模式,检查跳线位置和安装选项。
- 通过 ST-morpho连接器连接(CN7、CN10)X-NUCLEO-IHM16M1 驱动板与 STM32 NUCLEO 开发板。
- 将 3-pin 插接端子插入连接器 CN1 的 3/4/5 输出端,以连接无刷电机。
- 使用 USB 连接线将 STM32 Nucleo 开发板连接到 PC,并下载相应的预编译代码。
- 使用 12V 直流电源为电路板供电,可以选择以下二者之一:
– 使用连接器 CN1 的 2(VIN)和 1(接地)接入 12VDC电源;
– 使用 J4 插孔(2.1/2.5 mm,尖端正极)接入12VDC电源。 - 使用 STM32 电机控制 SDK(X-CUBE-MCSDK)开发和运行应用程序。
3. STM32电机控制软件开发套件(MCSDK)
STM32微控制器提供工业标准Arm® Cortex®-M内核的性能,可运行矢量控制控制或FOC模式,广泛应用于空调、家用电器、无人机、建筑和工业自动化、医疗和电动自行车等高性能驱动的应用领域。
STM32 MC SDK(电机控制软件开发套件)固件(X-CUBE-MCSDK和X-CUBE-MCSDK-FUL)包括永磁同步电机(PMSM)固件库(FOC控制)和STM32电机控制Workbench,以便通过图形用户界面配置固件库参数。
STM32电机控制Workbench为PC软件,降低了配置STM32 PMSM FOC固件所需的设计工作量和时间。
用户通过GUI生成项目文件,并根据应用需要初始化库。可实时监控并更改一些算法变量。
STM32 MC SDK(电机控制软件开发套件)功能:
- 单/双同步磁场定向控制(FOC)
- 电机分析仪和一键式调整可用于快速启动未知的电机
- 基于STM32Cube HAL/LL库的简化固件架构
- 支持的电流读取拓扑:
- 1个分流电阻
- 3个分流电阻
- 2 ICS(隔离电流传感器)
- 支持速度/位置传感器(编码器和霍尔)以及无传感器工作(状态观察器)
- 风扇带速启动
- 速度和扭矩控制
- 为特定应用实现电机控制算法,包括MTPA(最大转矩电流)、弱磁、前馈和带速启动
- 通过STM32电机控制Workbench PC端软件实现完全定制化和实时通信
- 从板上开始新项目创建
- 工作流支持STM32CubeMX GUI配置器
- 支持广泛的STM32微控制器
STM32 MC SDK(电机控制软件开发套件)
官方下载地址:https://www.st.com.cn/zh/embedded-software/x-cube-mcsdk.html
4. STM32 集成开发环境(STM32CubeIDE)
STM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。
- STM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件。
- STM32CubeIDE集成了STM32CubeMX的STM32配置与项目创建功能,以便提供一体化工具体验,并节省安装与开发时间。在通过所选板卡或示例选择一个空的STM32 MCU或MPU,或者预配置微控制器或微处理器之后,将创建项目并生成初始化代码。
- STM32CubeIDE包含相关构建和堆栈分析仪,能够为用户提供有关项目状态和内存要求的有用信息。
- STM32CubeIDE还具有标准和高级调试功能,其中包括CPU内核寄存器、存储器和外设寄存器以及实时变量查看、串行线传输监测器接口或故障分析器的视图。
功能:
- 通过 STM32CubeMX 来集成服务:STM32微控制器、微处理器、开发平台和示例项目选择引脚排列、时钟、外设和中间件配置项目创建和初始化代码生成具有增强型STM32Cube扩展包的软件和中间件
- 基于Eclipse®/CDT™,支持Eclipse®插件、GNU C/C++ for Arm®工具链和GDB调试器
- STM32MP1 系列:支持OpenSTLinux项目:Linux支持Linux
- 其他高级调试功能包括:CPU内核、外设寄存器和内存视图实时变量查看,视图系统分析与实时跟踪(SWV),CPU故障分析工具,支持RTOS感知调试
- 支持ST-LINK和J-Link (SEGGER)调试探头
- 从Atollic® TrueSTUDIO®和AC6 System Workbench for STM32 (SW4STM32)导入项目
- 支持多种操作系统:Windows®、Linux®和macOS®,仅限64位版本
STM32 集成开发环境(STM32CubeIDE)
官方下载地址:https://www.st.com.cn/zh/development-tools/stm32cubeide.html
官方安装指南:https://wiki.stmicroelectronics.cn/stm32mcu/wiki/STM32StepByStep
5. 参考文档
P-NUCLEO-IHM03 开发套件 用户手册