你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【G431RB+IHM16M1】ST电机控制开发套件快速上手

[复制链接]
CM_STM32 发布时间:2026-7-9 21:29

简介

主控板G431RB

主控板Nucleo-G431RB的核心是STM32G431RBT6,170MHz的主频、Cortex-M4内核,内置了硬件加速单元、运算放大器等等外设,在处理涉及大量三角函数运算的实时控制算法时,能显著减轻MCU的负担。板子和其他Nucleo系列一样,自带ST-LINK V3,调试非常方便;排针是按STM32 Morpho和 Arduino Uno 两种引脚布局设计的,方便设计通用扩展板。板载复位按键(黑色)和USER按键(蓝色),Workbench生成的代码中,电机启停就是通过USER按键控制的。

ae407991-1a71-410a-9177-e79431d113a5.png

a53057a5-67b8-4398-a872-f9ad484d8f09.png

驱动板IHM16M1

驱动板X-Nucleo-IHM16M1是为STSPIN830电机驱动芯片设计的评估工具,这颗芯片支持7V~45V的宽电压输入,最大输出电流能力为1.5ARMS。本次使用的是灯哥DengFOC配套的12V、100kV、额定功率6W的小型云台电机做测试,可以用这块板子安全驱动。

98ddfa1e-539b-4f3c-b592-6160e2140357.png

板子内部集成了三路采样电阻和电流采样运放、电位器、热敏电阻等等,对于电流监测、过流、过热保护、调速等应用适配度高,同时,板子也预留了霍尔传感器的接口,可以外接霍尔传感器,适合用于FOC或者其他无刷电机驱动算法的学习。

3d7ab24b-2101-408a-a82c-fa749af00216.png

堆叠后的开发套件如下图所示:

8cfae3c7-7d0e-446d-9040-c81892c94ad9.png

实验用电机的部分参数:5daad33d-866b-4dd9-be13-d9fc5ea7590a.png

MCSDK的安装与使用

官网有提供免费使用的开发软件套件:X-CUBE_MCSDK安装包 登录MyST之后,下载所需要的软件版本。

702e2edb-4dd2-48b4-9760-1e32110617a6.png

下载完成后可以得到一个压缩包,安装步骤全程无坑,一直下一步就好了。因为我已经安装过一遍了,写测评文章的时候没有出现安装路径选择,这一步填写自己需要的安装路径即可。更具体的安装过程可以参考这篇文章:安装X-CUBE_MCSDK

7c16cca0-59b6-439a-b962-d89da62225bf.png

安装后可以得到这两个软件: 其中Workbench是MCSDK配置和生成代码的主要工具,支持选择官方提供的开发板和电机,或者新建自己的开发板和电机;而Motor Pilot是MCSDK的上位机,连接串口后可以在软件内调节电机速度、调节电流速度曲线、修改PID参数、查看并记录各种数据的曲线等等功能,十分实用。

d9bbd7ef-4920-4ee0-b78c-473b62a7301a.png

1.使用Workbench配置软硬件参数

首先打开MotorControl Workbench软件,软件界面如下图所示。可以通过右上角切换中英文,软件每次打开都默认使用英文。点击左上角的New Project 新建新项目。b52f0d08-aebf-48fb-94b0-b04bfc2fb682.png

点击中间的Board选择开发板套件(如果有配套电机,也可以直接选择左边的PACK选择IHM03完整的开发套件),分别查找得到IHM16M1和G431两块板子,选中并点击OK。

NUCLEO-G431RB开发板0341cc32-f4d8-48db-ad8b-5a84eed5b39d.pngX-NUCLEO_IHM16M1扩展板fc9a3e99-147b-4b0a-9eba-d254042f343c.png

添加完主控板和驱动板之后的界面应如下图所示:024ace7b-c4ae-4f93-af60-29d4891f26dd.png

接下来添加电机:如果有跟驱动电机的参数相近的,可以直接选中,如果没有的话,可以复制一份,修改名称和参数。因为列表中没有和我这个电机参数相近的电机,所以我复制了BR2208电机并重命名为Deng2208。b0f1b95b-1592-45fc-9179-37616277ded4.png

按照实际测试的数据填入参数,填错不要紧,后面生成工程的时候可以修改。1e1036dd-4b7b-442e-b6bf-4d9ab9c36db0.png

填写完成后,点击Go To Summary到下一步总结页面:881fa34f-dc43-4f01-a82e-b1388a8ab311.png

这一页主要是选择驱动算法使用FOC还是六步,同时检查配置是否完善。确认无误之后点击Create创建工程。3912f842-c095-45bc-9cd0-3b524ce1884b.png

创建后不会自动帮你保存到本地的,需要先点一下保存,防止意外发生。如果电机参数没有问题的话,这部分的配置不需要太多修改,只需要检查一下引脚配置是否无误即可。

c9f5d920-3f2a-4d65-8d25-d3ad708e9442.png

引脚映射如下图所示。

4b301bdc-87c4-48a8-88dd-56698c319ae6.png

可能需要修改的地方:

  • VBUS检测,引脚改为ADC1_IN1(PA0)
  • 05bdae45-c0b1-435b-961f-8001e62c168d.png

启停按钮和通信接口的修改在User Interface中修改,默认使用PC13作为用户按钮,USART2,1843200波特率作为通信的USART接口,通过ST-Link的虚拟串口与上位机连接。

d156e475-9869-4f63-8627-063f17e2f83f.png

如果需要修改电机参数,则在最顶部的Motor页修改。

a4205e1f-14b2-4bf0-9d5f-cebc8f42ba34.png

MC Workbench会根据填入的电机参数,自动计算好电流环和速度环等等的PI(D)参数值,不需要手动调参。

0f4a0889-dcfb-4152-a18f-ac60dbb017ec.png

值得注意的是,无感FOC速度环采用观测器,在低速下可能会因为无法准确估计转子位置失效,如果电机已安装霍尔传感器或正交编码器,建议启用有感模式以提升精度,电机配置中也有适配这两种编码器的选项。

2.生成代码和下载

保存一下,并点击Generate the Project生成工程文件夹和代码,工具链可以按照个人选择CubeIDE、Keil等等开发环境,界面设计还是很简明易懂的。

53652d43-cffe-4dcc-ac26-e2bf1c433395.png

代码生成后需要打开工程文件去编译下载;并且每次重新修改参数和生成代码都需要很长时间,这一点不是很方便。如果能像TouchGFX那样集成自动烧录,并且生成代码时只替换修改的部分参数,效率会更高一些。 MC Workbench生成工程的文件结构和CubeMX生成的是高度相似的,我用的是CubeIDE v2.0.0,找到项目文件的路径如下图所示,与.stwb6文件同名文件夹->STM32CubeIDE->.cproject文件,即可打开CubeIDE的项目文件。4ab67ab1-fbbe-441a-b278-3c49e4700f92.png

将G431开发板的USB口连接到电脑,编译并下载。一些IDE如果没有ST-Link驱动的话可能下载不了:STSW-LINK009

6cb58915-67c8-4162-8326-628bab35086f.png

Motor Pilot上位机

打开Motor Pilot软件,选择Discover Board就可以进入电机控制软件界面。上位机和MCU之间采用的是UART通信,默认1843200波特率,以Workbench里设置的值为准。选择后会自动连接开发板串口,如果没连接上可以在上方选择对应串口并连接。

8f827b66-2b25-406a-9bea-39f659258cf1.png

连接后的界面如下图所示:3f324bb9-e8b4-4a52-a6bc-8e1ee9234d94.png

此时可以按下开发板上的蓝色用户按钮启动电机,或者点击上位机左侧的Start启动电机。启动后滑动Speed Reference的滑块或者填写目标速度和时间,点击Execute Speed Ramp,可以改变电机速度。3781ed82-3571-4d31-8e42-f574f018e9ab.png

点击Rev-up可以切换到电机启动的加速曲线界面,曲线和Workbench中设置的是一致的,不同点是这里修改之后不会永久保存在MCU的程序中,重启软件或者开发板就丢失了。ebb27c42-17aa-4c5a-93f5-e3ed3c2ecdc2.png

点击Advanced Configuration可以调整算法参数。e57e5f64-938e-48a0-b573-07fed1b5faef.png

点击右上角左边的曲线图标,可以实时观测多个量的变化曲线,多次右键可以在同一坐标系中加入多条曲线,比如电流、电压、编码器速度等等。右上角右边的圆圈图标是Record记录功能,加入观测的变量之后会变成红色,点击就可以记录曲线了。182e683b-a94c-4757-94df-9ae35003311c.png

如果电机出现运行错误自动停下(如果是启动过程停下,通常是PI参数或者速度环观测器里面的G1/G2设置有问题,或者最开始的反电势常数填的有问题;如果是运行过程停下,可能就是速度太小,速度反馈误差太大报错),STatus会显示具体错误原因,点击高亮的问题可以跳转到帮助文档了解怎么解决。要让它重新运行需要点击Ack Fault响应错误,否则直接点启动是没有作用的。如果确定原本的参数有问题,可以在Pilot里面修改具体参数,多次试错;最佳参数需要搬到Workbench的设置里重新生成代码,因为Pilot和开发板重启后都会恢复默认值。

如果电机运行中出现错误并自动停机,Status会显示具体故障原因,目前遇到过的有下面两种情况:若在启动阶段停机,通常是因为电机设置的反电动势常数、转动惯量等等不准确,导致自动计算的PI参数、观测器中的G1/G2增益有问题;若在运行过程中停机,则可能是转速过低,速度反馈误差过大而触发保护,可以调整容错阈值解决。点击蓝色高亮的错误信息可跳转至帮助文档查看解决方案。要重新启动电机,必须先点击 “Ack Fault” 确认并清除故障状态,再点击启动,直接点Start或者按用户按钮是无效的。

a8fc71d9-6e51-49ab-8ab9-319a13ff50bb.png

点击蓝色高亮错误后跳转到解决文档(原文是英文,这里开了翻译插件):3bcd5fba-21fd-4de4-b827-84dc035af752.png

若确认错误是参数问题,或者运行效果不太满意,可在Pilot中临时修改并多次试错,注意Pilot的修改在开发板或软件重启后会恢复默认值。确定最佳参数后,最好将其填入Workbench的配置中并重新生成代码。

视频演示这边好像放不了,上传的GIF比较模糊

13428077809087108.gif

总结

总的来说,这套组合在中小功率的电机控制开发上提供了一个非常成熟的起点。硬件可靠,软件生态也给力,无论是做算法验证还是产品原型开发,都能少走很多弯路。尤其是对于不想把时间耗在搭驱动电路的开发者,这套开发套件性价比很高。

a53057a5-67b8-4398-a872-f9ad484d8f09.png
b52f0d08-aebf-48fb-94b0-b04bfc2fb682.png
收藏 评论0 发布时间:2026-7-9 21:29

举报

0个回答

所属标签

ST 电机控制

意法半导体提供完整的电机控制解决方案,包括合适的电子器件,诸如集成式智能功率模块和系统级封装、单片式电机驱动器、快速高效的功率开关、具有电压暂态保护功能的可控硅、以及功能强大且安全的微控制器等。以及提供完整的生态系统(包括一系列评估板、参考设计、固件和开发工具),以简化和加速设计流程。


最新内容

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版