工程师笔记|使用 CubeMx 生成未在 MC SDK V5.4.4 中包含的芯片的电机控制代码

发布时间:2023-02-02  

前言

当前 STM32 系列丰富多彩,多达 1000 多种的料号。同时,ST 针对电机 FOC 控制推出了 MC SDK V5.x 的马达控制软件系统。该软件可以结合 Cubemx 生成马达控制初始化代码。由于 MC Workbench 软件芯片选择有限,不可能包含所有 ST 的产品料号,因此客户需要使用该软件时,会发现备选的芯片料号并未包含在 workbench 中。


本文针对这种场景,详细说明如何结合 CubeMx 与 MC Workbench 生成 workbench 中所未包含芯片的控制程序,客户通过该说明可以使用全系列 STM32 产品用于电机的 FOC 控制,为客户带来便利。


本文涉及到的开发板、驱动板、马达分别是:Nucleo-STM32G474RET6 (控制板) + X-Nucleo-IHM16M1(功率板)+GBM2804H-100T(电机)以及 STM32G030K6T6 主芯片等。


1、在 MC Workbench 找不到相应 MCU 型号的示例-- STM32G030K6T6

1.1 MC Workbench 中 MCU 的选择

使用 MC Workbench 生成电机控制工程时,选择列表中提供的同系列中的 MCU。比如我们需要使用列表中没有的

STM32G030K6T6 时,可以选择列表中的 STM32G071RB(LQFP64)。接下来分别配置电机参数,电源,电压/电流/温

度保护,启动参数,电流采样等等后,生成电机控制工程。此步骤可参考 ST 往期的技术培训。


1.2 STM32CubeMX 中的操作

生成工程后,打开 STM32CubeMX 软件,选择最终要使用的 MCU,如 STM32G030K6 来创建新工程。


1.3 导入上面的*.ioc 文件

选择 File->Import Project,导入之前 1.1 中创建的 ioc 工程。



检查下导入提示的 Import Status,如有错误或者警告,请根据 Error and Warning messages 进行调整。


1.4 检查并生成工程

可以看到导入后的 STM32CubeMX 项目中已经包含有电机控制部分的 Middleware。

接下来选择 GENERATE CODE,生成工程。

新工程的文件夹目录如下,从该文件夹和上面的 IAR 工程空间都可以看到电机控制部分的 Middleware 已经包含进来了。

后面的编译下载工作此处不再赘述。


1.5 注意事项

如果电脑中安装多个 CubeMX 版本,需要注意在使用过程中必须保持版本的统一,否则导入不成功。


2. 在 MC Workbench 有型号但没相应封装的 MCU 示例-- STM32G474RET6

2.1 新建工程

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


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

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


2.3 芯片选择与配置

我们看到在 MC workbench 中并没有STM32G474RET6 这个芯片型号,因此我们需要选择与之相近的单片机。

原则是 Flash 大小相同优先选择,型号相似次之,最后兼顾同一系列。这里我们可选择 STM32G474QE 作为参考型号。



2.4 数字端口配置

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

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



2.5 模拟端口配置

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




2.6 生成代码

生成 STM32G474QE 的电机控制代码,生成的 G474QE.ioc 用于后面 CubeMx 操作。

生成 CubeMx 工程文件


2.7 新建 CubeMx 工程

新建 STM32G474RET6 的工程

2.8 导入上面的 G474QE.ioc 文件


2.9 生成工程


2.10 验证是否正常工作

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



3.传统的文件拷贝方式示例-- STM32G474RET6

如果上面两种简易方式已经可以满足移植要求了,下面的内容可以忽略,当然如果需要熟悉各个外设在电机控制中具体配置过程,下面内容可以做参考

3.1 前期准备

如 2.x 中所描述的生成 STM32G474QE 的电机工程,这边不再赘述。


3.2 新建 CubeMx 工程

新建 STM32G474RET6 的工程


3.3 配置 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的配置


3.4 配置 Timer1

配置 TIM1 输出管脚

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



配置 TIM1 功能

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


使能 TIM1 的中断


3.5 配置调试串口


3.6 使能 STM32G4 特有的 Cordic 外设


3.7 重新分配管脚

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


3.8 管脚名称重定义

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


3.9 规划 NVIC 的中断优先级

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


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

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


3.11 系统其他的配置

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


3.12 时钟配置

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


3.13 生成工程


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

拷贝文件

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


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


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


增加头文件包含目录


修改 Main.c 文件

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


3.15 验证是否正常工作

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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    Linux系统移植开发篇1:系统移植前说明及源码编译;本文章为《STM32MP157 Linux系统移植开发篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157......
    手动开关窗的目的。 Wi-Fi模块控制软件流程图 手机APP设计 本设计使用机智云物联网平台进行设计,在机智云官网下载的是能入公网的固件和源码,将固件写入Wi-Fi模块,配合源码编程......
    APP设计本设计使用机智云物联网平台进行设计,在机智云官网下载的是能入公网的固件和源码,将固件写入Wi-Fi模块,配合源码编程即可实现远程控制。 机智云平台开发界面本设计是基于STM32......
    母线电流反馈,用于过流保护以及实现单电流检测电阻电流重构算法  直流母线电压反馈,用于过压保护  相电压反馈,用于实现无传感器反电动势控制或非零转速启动  ICSP™连接器,用于连接Microchip编程器......
    .CH32F103FC8T6的芯片准备知识 习惯了STC和Arduino的串口下载,对于arm32-M3指令集的国产芯片CH32F103C8T6,也在摸索着使用串口下载。在开发板的包里,干货满满,但是手头上没有SWD接口的编程器......
    Microchip发布升级版编程器和调试器开发工具;新一代MPLAB® ICD 5和MPLAB® PICkit™ 5在线调试器/编程器提供了全新的编程和 连接方式 对于嵌入式设计人员来说,编程......
    Microchip发布升级版编程器和调试器开发工具; 【导读】对于嵌入式设计人员来说,编程和调试仍然是至关重要的,但人工操作耗时较长,Microchip Technology Inc......
    Microchip发布升级版编程器和调试器开发工具;新一代MPLAB® ICD 5和MPLAB® PICkit™ 5在线调试器/编程器提供了全新的编程和连接方式对于嵌入式设计人员来说,编程......
    购买价格昂贵的仿真器、编程器等开发工具来作实验。 其实由于芯片功能的日益完善,我们可以利用芯片的在系统编程(ISP)功能制作出实用而低价的开发工具。下面就帮助DIY爱好者开发制作出适合自己的开发工具。 1 当前......
    机智云设备移植RT-Thread;开发环境: Keil版本:V5.30 RT-Thread版本:3.1.5 STM32cubeMX:V6.0.1 开发板MCU:STM32F103 机智云平台生成的应用代码是裸机版......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>