STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机

这篇具有很好参考价值的文章主要介绍了STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Bilibili视频配套视频:

HALL有感启动电机基于STMCSDK:

https://www.bilibili.com/video/BV1W14y1k7Ct/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

无感启动电机基于STMCSDK:

https://www.bilibili.com/video/BV1QG41197AH/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

电位器控制电机转速基于STMCSDK:

https://www.bilibili.com/video/BV1H34y1T7ZS/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

1.BLDC霍尔MCSDK配置及代码生成 

1.1 ST MCSDK配置 

① 双击打开MotorControl Workbench 5.Y.4 STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

② 新建工程:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

③ 选择用户应用,用户板子,电压小于50V,点击OK:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 ④ 正常工作电压修改为24V,我们使用24V电源适配器供电:

 

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

⑤ 选择MCU型号及时钟频率,先选择外部8M时钟,后续在CUBEMX再修改:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

⑥ 配置电机参数及霍尔传感器参数:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 ⑦ 速度传感器选择HALL传感器:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

⑧ 根据原理图来配置各个数字IO:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

⑨ 配置电流采样部分,三电阻采样,修改采样电阻大小,取消amp on board,此处不配置运放增益,在后续analog部分配置:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 ⑩配置MCU模拟部分输入:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

11基于原理图配置输入电压检测,取消温度传感器和过流保护,过流保护由软件保护:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 12配置电流环及速度环KPKI参数:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

13点击生成代码STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu ,将工程保存后点击STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

14生成代码过程中,此类报错可忽略,原因时CUBEMX版本过低:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

15生成代码,打开IOC文件修改时钟,然后点击生成代码: 

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 1.2 实验现象

按以下图片接线,并将USB转UART模块连接至电脑:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

①打开KEIL工程,使用stlink连接开发板SWD及UART,编译并下载代码;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

②代码下载成功后,按下开发板RESET按键,打开SDK上位机STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu 软件,打开UART,波特率设置115200,点击连接;点击开始,即可启动电机,或按下用户按键3也可启动电机;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu ③使用上位机的画图工具可以看到相应数据的波形:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 2.BLDC无感MCSDK配置及代码生成

① 无感配置需要将速度传感器配置无传感器模式:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 ②配置无感启动参数:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

  • ③其他参数无需修改,点击生成代码,后续流程与霍尔传感器配置流程完全一样;

 3.使用电位器调节BLDC转速

基于第一小节的BLDC霍尔有感代码的基础上增加电位器的ADC采样;

1.增加电位器ADC采样相关变量;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu 

2.设置采样通道及时间,注册规则组ADC采样;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

3.在while循环中请求并执行ADC转换;采样值0-128转速对应-1100~-400;

采样值128-256对应转速400~1100;

 STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

3.1 实验现象 

按以下图片接线,并将USB转UART模块连接至电脑:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

  1. 编译并下载代码,打开ST上位机,使用UART连接开发板,并启动电机;

    STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

  2. 使用螺丝刀,旋转电位器,可以看到速度会随着while循环中的代码逻辑发生改变;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

4.使用CAN上位机调节BLDC转速 

基于第一小节的BLDC霍尔有感代码的基础上增加CAN通讯代码;

1.打开工程中的IOC文件,首先将系统时钟改为160M,修改为160M主要是为了方便计算波特率;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

2.使能CANFD通讯;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

3.配置仲裁段和数据段的分频系数跳转位宽,使能FIFO模式;

波特率:500k = 160M/20/(1+10+5)

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

4.使能中断;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

5.点击生成代码STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu ,打开Keil工程;

 STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

6. 定义RX和TX数据及中间变量;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

7.配置RX和TX数据帧类型,RX接收的ID范围;TX ID和数据长度等参数;

 STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu 

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 8.在it.c文件中,在FDCAN中断里面,接收上位机发送的数据;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu 

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

9.增加math及string头文件; 

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

10.定义速度、模式及方向等需要上传的变量;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

11.在while循环中增加获取当前电机速度、方向、控制模式等函数;并将实时参数上传至上位机;同时接收上位机下发的电机启动、速度等指令;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

12.编译并下带代码;

4.1 实验现象

 按以下图片接线,并将USB转UART及USBCAN模块连接至电脑:

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

1.打开ST上位机及PCAN上位机,并连接,CAN通讯速率500kbits;

 

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu 2.在发送数据栏中,发送该条数据即可启动电机,其中第0位为1并且第四位为1即可启动电机;第1位为1代表正向启动;第2及第三位代表速度,RxData[2]*256 + RxData[3];

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

3.观察ST上位机的速度,与我们期望参考速度一致 

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

4.修改第2及3位数据即可修改电机参考转速;将第0位为1并且第四位为0即可停止电机;

STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu

 STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机,stm32,嵌入式硬件,单片机,mcu文章来源地址https://www.toymoban.com/news/detail-835543.html

到了这里,关于STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32G4高精度定时器的同步功能

    STM32G474 所含的高精度定时器(HRTIMER)其实包含了多个定时器,多个定时器之间可以单独工作,也可以进行同步,且高精度定时器还能与片上的其他定时器以及其他芯片进行同步,本文将对高精度定时器的同步功能进行介绍。 HRTIME 的整体架构如下图所示,内含由 7 个定时器,主

    2024年04月23日
    浏览(110)
  • 记录一次对STM32G4串口硬件FIFO的调试

    前言:通常我们使用串口接收多字节数据会使用中断和DMA两种方式。使用中断方式,每接收到一个字节就会触发一次中断,我们可以在中断函数里将接收到的这一字节保存在内存中然后等待其他程序处理,也可以直接在中断函数里处理。使用DMA方式,需要事先开辟一块内存,

    2024年02月09日
    浏览(38)
  • ARM 学习笔记2 初识Cortex-M33与STM32G4

    ARM Cortex-M系列处理器的差异与联系:【ARM Cortex-M 系列 1 – Cortex-M0, M3, M4, M7, M33 差异】 两本书籍的英文版和中文版 Definitive Guide to Arm® Cortex®-M23 and Cortex-M33 Processors Arm Cortex-M23和Cortex-M33微处理器权威指南 ST的介绍页 Arm® Cortex®-M33概述 STM32G474RE 采用STM32G474RE MCU的STM32 Nucleo-64开

    2024年01月25日
    浏览(52)
  • 蓝桥杯嵌入式 STM32G4 MCP4017可编程电阻

    MCP4017为可编程电阻 查阅产品手册可知,MCP4017使用I2C通讯协议,引脚为PB6,PB7 ,控制的电阻连接至PB14,同时跳线帽连接J15.1与J15.2 如下图,Rs为单个电阻阻值;RWS为总阻值,与R17串联,两者对VDD电压进行分压, 可以通过测量PB14的电压判断可编程电阻的阻值。 MCP4017的默认总阻

    2023年04月08日
    浏览(63)
  • STM32G474开发板初步入门与编程实战

    目录 STM32G474开发板简介 STM32CubeMX软件配置 编程实战 结束语 欢迎大家,我今天要给大家介绍的是STM32G474开发板的基本入门和编程实战。首先,我们要明白,STM32G474是由STMicroelectronics公司生产的一款高性能微控制器。这款微控制器配备了一个高效的ARM Cortex-M4处理器,支持浮点

    2024年02月14日
    浏览(38)
  • 【STM32教程】第四章 STM32的外部中断EXTI

    案例代码及相关资料下载链接: 链接:https://pan.baidu.com/s/1hsIibEmsB91xFclJd-YTYA?pwd=jauj  提取码:jauj   中断系统的定义:中断是指在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂

    2024年02月09日
    浏览(49)
  • 微信小程序开发实战课后习题解答————第四章(作业版)

    一、填空题 1、  组件  是视图层的基本组成单元。 2、 swiper内部只可以放置   swiper-item    组件。 3、 设置text文本内容长按可选的属性是   selectable   。    4、navigator组件通过设置   open-type    属性,来区分不同的跳转功能。 5、通过image的  mode    属性来设定不同的图

    2024年02月06日
    浏览(58)
  • 【正点原子STM32连载】第四章 APM32初体验 摘自【正点原子】APM32E103最小系统板使用指南

    1)实验平台:正点原子APM32E103最小系统板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 本章并不涉及程序代码的编写,而是介绍如何编译工程、烧录程序以及进行程序的调试仿真,让读者

    2024年02月21日
    浏览(61)
  • stm32 FOC从零学习开发(一)FOC概念

    ` 一、stm32 FOC从零学习开发(一)FOC概念 二、stm32 FOC从学习开发(二)Clark变换与MATLAB仿真 三、stm32 FOC从学习开发(三)park变换与MATLAB仿真 四、stm32 FOC从学习开发(四)svpwm算法(1) 五、stm32 FOC从学习开发(五)svpwm算法(2) 六、stm32 FOC从学习开发(六)基于均值零序分量

    2024年02月07日
    浏览(41)
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧,说起来很简单,就是几行代码的事,但楞是折腾了我大半天时间才搞定。原因后面说,先看代码吧: 读操作很简单,以32位方式读取的时候是这样的: 需要注意的是,当以32位方式读取时,地址需要是4的整数倍,即32位。 8位或16位方式类似操作即可 需要注意的

    2024年01月18日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包