当前位置: 首页 > news >正文

基于STM32G431无刷电机驱动FOC软硬件学习

开源地址:【开拓者】STM32G431无刷电机驱动

介绍

STM32G431无刷电机驱动,已验证使用大疆小精灵2312s电机,实现电流速度位置闭环
磁编mt6816,spi通信
在这里插入图片描述
在这里插入图片描述

硬件

供电最大电压受限于母线电容耐压、MOS官耐压、DCDC耐压。
最高40V。
在这里插入图片描述

LEDPB8PB9KEYPC10     ------> KEY1PC11     ------> KEY2ADC1C相电流  PA2     ------> ADC1_IN3(注入组)  A相电流  PB1     ------> ADC1_IN12(注入组)电位器  PB12     ------> ADC1_IN11(规则组)ADC2母线电压 PA0     ------> ADC2_IN1(规则组)B相电流  PA6     ------> ADC2_IN3(注入组)TIM1PB13     ------> TIM1_CH1NPB14     ------> TIM1_CH2NPB15     ------> TIM1_CH3NPA8     ------> TIM1_CH1PA9     ------> TIM1_CH2PA10     ------> TIM1_CH3USART3(开启了发送DMA,用于向VOFA上位机阀数据,波特率921600)PB10     ------> USART3_TXPB11     ------> USART3_RXSPI1(磁编码器MT6816)PA4     ------> SPI1_CSPB3     ------> SPI1_SCKPB4     ------> SPI1_MISOPB5     ------> SPI1_MOSI

软件

main函数

main函数,初始化外设,随后进入while循环,一直读母线电压、串口向上位机发送数据
在这里插入图片描述
进入while前打开定时器1通道4计数,其更新事件会触发ADC的注入组采样,注入组采样完成会触发中断,然后在中断中获取相电流、做FOC运算、赋值结果给PWM输出。

定时器1通道4频率为10K,ADC的注入组采样频率也是10K,foc的计算频率也是10K。

系统时钟

使用外部晶振24MHz,系统频率160MHz。(实际电路用的25MHz,后面当成24MHz来说)
在这里插入图片描述

定时器1初始化

在这里插入图片描述

SVPWM的PWM波形是对称的:
在这里插入图片描述
正好配置TIM1为中央对齐模式1,在上面代码的配置中,系统主频160MHz,TIM_Period(ARR)=8000,假如CH1的TIM_Pulse(CCR)=800。采用的PWM1模式,即CNT小于CCR时,输出有效电平,大于CCR小于ARR时,输出无效电平,又配置CHx的有效电平为高电平,CHxN的有效电平为高电平,则可以得到下面的PWM波形:
在这里插入图片描述
PWM的频率=160M/8000/2=10KHz

把通道4初始化为PWM2模式,其更新事件用来触发ADC注入组采样。

ADC初始化

ADC1C相电流  PA2     ------> ADC1_IN3(注入组)  A相电流  PB1     ------> ADC1_IN12(注入组)电位器  PB12     ------> ADC1_IN11(规则组)ADC2母线电压 PA0     ------> ADC2_IN1(规则组)B相电流  PA6     ------> ADC2_IN3(注入组)

规则组采样由软件触发,注入组采样由定时器1通道4的更新事件来触发。
在这里插入图片描述

按键

按键用外部中断检测,按键2电机加速,按键1电机启停。
在这里插入图片描述

串口接收

串口接收中断
在这里插入图片描述

ADC注入组中断

ADC注入组中断,频率10k
红框中是电机0电流值采集,后面才是电机正常运行时的程序。采集相电流做foc运算。
在这里插入图片描述
获取到3相电流值,然后执行Speedcurrentclosed_loop,做速度环foc。
在这里插入图片描述


文章转载自:
http://chanfron.pzdurr.cn
http://hussy.pzdurr.cn
http://pedodontics.pzdurr.cn
http://object.pzdurr.cn
http://favose.pzdurr.cn
http://macroscopical.pzdurr.cn
http://teledrama.pzdurr.cn
http://airframe.pzdurr.cn
http://neutrodyne.pzdurr.cn
http://adobo.pzdurr.cn
http://transjordan.pzdurr.cn
http://attainture.pzdurr.cn
http://machinist.pzdurr.cn
http://grievant.pzdurr.cn
http://distributivity.pzdurr.cn
http://exedra.pzdurr.cn
http://collectedly.pzdurr.cn
http://oscillate.pzdurr.cn
http://palladiumize.pzdurr.cn
http://granth.pzdurr.cn
http://misventure.pzdurr.cn
http://conestoga.pzdurr.cn
http://obreption.pzdurr.cn
http://tritoma.pzdurr.cn
http://sector.pzdurr.cn
http://liechtensteiner.pzdurr.cn
http://gardenize.pzdurr.cn
http://podsolise.pzdurr.cn
http://panchromatize.pzdurr.cn
http://imputable.pzdurr.cn
http://www.dtcms.com/a/280812.html

相关文章:

  • iOS高级开发工程师面试——常见第三方框架架构设计
  • C++学习笔记五
  • Gemma-3n-E4B-it本地部署教程:谷歌开源轻量级多模态大模型,碾压 17B 级同类模型!
  • SHAP 值的数值尺度
  • Conda 核心命令快速查阅表
  • 技术演进中的开发沉思-35 MFC系列:消息映射与命令
  • Keepalived双机热备
  • 网络安全职业指南:探索网络安全领域的各种角色
  • 003大模型基础知识
  • React 实现老虎机滚动动画效果实例
  • AutojsPro 9.3.11 简单hook
  • Pixel Reasoner:通过好奇心驱动的强化学习激励像素空间推理
  • 简单2步配置CadenceSkill开发编辑器,支持关键字高亮
  • [AI-video] Web UI | Streamlit(py to web) | 应用配置config.toml
  • (李宏毅)deep learning(五)--learning rate
  • 从底层技术到产业落地:优秘企业智脑的 AI 革命路径解析
  • NAT的核心原理以及配置
  • CCF-GESP 等级考试 2025年6月认证Python四级真题解析
  • RDMA over RoCE V2设计2:系统框架设计考虑
  • Datawhale AI夏令营 机器学习2.1
  • 详解低速容错CAN(附与高速CAN对比表)
  • RabbitMQ第三章(企业级MQ应用方案)
  • 基于uniapp+vue3封装的一个日期选择组件
  • 【图像处理基石】什么是解析力?
  • A*算法详解
  • Transformer江湖录 第九章:大道归一 - 总结与展望
  • 鸿蒙和Android知识点
  • 微信小程序翻书效果
  • 面试遇到的问题
  • 服务器上PHP环境安装与更新版本和扩展(安装PHP、Nginx、Redis、Swoole和OPcache)