摩登3测速代理_工程师笔记:如何结合STM32CubeMX​与MC Workbench生成修改未包含的芯片程序


所选择的芯片未包含在MC Workbench中怎么办?

本文教你使用STM32CubeMX结合MC Workbench生成FOC代码







前言

当前ST的产品丰富多彩,多达1000多种的料号可供客户选择,同时ST针对电机FOC控制,推出了MC SDK V5.x的马达控制软件系统该软件结合STM32CubeMX生成马达控制代码。由于MC Workbench软件芯片选择有限,不可能包含所有ST的产品料号,因此有些客户需要使用该软件时,会发现选择的芯片未包含在workbench中本文针对这种场景,详细说明如何结合STM32CubeMX与MC Workbench生成未包含的芯片程序客户通过该文档可以使用全系列ST产品用于电机的FOC控制,为客户带来便利。本文使用Nucleo-STM32G474RET6(控制板) + X-Nucleo-IHM16M1(功率板)+ GBM2804H-100T(电机)

1


MC Workbench操作

1.1新建工程

如果有Demo板和电机,则选择对应的Demo板与电机型号;如果没有,直接选择customer board这边我们看到没有Nucleo-STM32G474RET6,因此我们选择customer board。

1.2配置电机与功率板相关配置

分别配置电源,电压保护,电机,电流采样,功率管。因为我们使用了现成的功率板与电机,这边我们使用默认参数即可。如果是自己的电机与功率板,请参考ST往期的技术培训。

1.3芯片选择与配置

首先我们看到在MC workbench中并没有STM32G474RET6这个芯片型号,因此我们需要选择与之相近的单片机原则是Flash大小相同优先选择,型号相似次之,同一系列最后这边我们可以选择STM32G474QE作为参考型号。

1.4数字端口配置

这边我们使用的功率器件为单一PWM与控制使能方式,结合硬件连接为如下配置。

如果PWM互补的方式则还需要配置下桥控制引脚。

1.5模拟端口配置

同样的配置与硬件采样相关的模拟端口。 

1.6生成代码

生成STM32G474QE的电机控制代码,用于参考配置STM32G474RET6的CubeMx配置。

2


基于STM32CubeMX生成电机控制外设的初始化代码

2.1新建STM32CubeMX工程

新建STM32G474RET6的工程

2.2配置ADC

配置ADC1配置引脚

可以直接打开MC Workbench生成的STM32G474QE的*.ioc文件做为参考

配置ADC1功能

这边注意ADC1左对齐,触发信号为Tim1 Trigger Out Event,只有Inject模式没有Regular模式

使能ADC1/2中断

配置ADC2引脚与功能

这边ADC2_IN14是复用在ADC1_IN14的引脚上。

配置ADC2功能

ADC2有两个通道用于电压与温度传感采样,使用Regular模式用于电流采样的使用Inject模式,这点区别于ADC1的配置。

2.3配置Timer1

配置TIM1输出管脚

这边只使用上桥的PWM输出,因此只配置上桥输出PWM波,其中CH4用于ADC触发,无外部PWM输出

配置TIM1功能

这边有些宏定义,可以参考MC Workbench生成的工程,注意定义为相同名字

使能TIM1的中断

2.4配置调试串口

2.5使能STM32G4特有的Cordic外设

2.6重新分配管脚

将管脚定义为硬件控制的引脚,增加输入输出引脚

2.7管脚名称重定义

重新定义管脚名称,符合MC Workbench生成的命名。

2.8规划NVIC的中断优先级

这边特别注意中断优先级别的设定,将影响到程序运行。

2.9不生成电机相关的中断程序

因为电机相关的中断程序中电机库中已经有了,这边不使用STM32CubeMX生成中断代码

2.10系统其他的配置

分别配置RCC为外部晶振,GPIO口的默认设置,Sys的调试部分

2.11时钟配置

这边我们外部晶振为24MHz,System时钟配置为170MHz。

2.12生成工程

3


对生成工程进行修改、添加

3.1拷贝文件

将MC Workbench生成的文件夹下的MCSDK_v5.4.3拷贝到STM32CubeMX直接生成的G474_MC文件夹下,另外Inc与Src文件也同时拷贝进去,需要选择不覆盖同名文件。

3.2添加电机FOC库

打开STM32CubeMX生成的工程,在工程中添加Group以及增加文件到工程中

3.3增加API以及控制文件到工程中

3.4增加头文件包含目录

3.5修改Main.c文件

包含头文件以及增加电机控制初始化函数

4


验证是否正常工作

编译下载后,使用Workbench控制电机转动


END


来源:STM32公众号



免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!