This website requires JavaScript.
入驻
发布

STM32G431无刷电机FOC驱动器

MengYang_
发布于2024-01-23 14:10:59
CC BY-NC-SA协议 分类:嵌入式 侵权投诉
销量: 66
46
22
53
简介:

STM32G431无刷电机驱动板,板载0.96寸LCD显示屏、IIC接口、HALL接口、SPI接口、低端电流采样、反电动势采样,可用于有感FOC、无感FOC控制算法学习。

应用场景:

无刷电机FOC控制算法学习


1.产品简介

一款高性价比的无刷电机(BLDC、PMSM)FOC控制器,板载HALL接口、SPI接口、IIC接口、反电动势检测、相电流检测、电位器调速、0.96寸LCD显示屏,可以用于有感FOC、无感FOC控制算法的学习研究。工程使用STM32CubeMX进行配置,使用FreeRTOS进行开发设计,测试程序请下载附件进行验证。

2.应用场景

  1. 有感FOC控制算法学习:电流环、速度环、位置环
  2. 无感FOC控制算法学习:龙伯格观测器、滑膜观测器、扩展卡尔曼滤波器、高频注入算法。
  3. BLDC/PMSM电机:适用于市面上所有的12V~24V无刷直流电机
  4. 机器人关节,相机云台,力反馈旋钮,航模电机,智能车

3.产品概述

  1. 制作成本低,物料成本30~50元
  2. 主控:STM32G431CBT6,ARM Cortex-M4内核,带有FPU,CPU主频高达170MHz,RAM:32KB,Flash:128KB。
  3. 电阻电容均采用0603封装,便于复刻焊接
  4. 电源输入接口带有24V的TVS二极管,可以防止开关瞬间的尖峰电压损坏后级电路
  5. 板载0.96寸LCD显示屏(驱动IC:ST7735S),可用于系统工作状态的显示
  6. 板载UART接口、SWD接口,可用于程序的下载和调试
  7. 板载三相电流低端检测模块,可用于无刷直流电机“电流环”的控制
  8. 板载三相反电动势检测模块,可用于无感FOC控制
  9. 板载一个电位器,可用于调速和闭环位置控制的程序设计,板载三个用户自定义按键和一个用户自定义LED。
  10. 兼容SimpleFOC控制程序,可移植FreeRTOS,便于进行多线程开发。

4.产品参数

  1. 供电接口:DC005公头,输入电压范围:12V~24V,推荐使用12V或24V的电源适配器进行供电
  2. 最大采样电流:10A,与选用的采样电阻、运算放大器增益配置、N-MOS有关,推荐采样电流控制在8A以下。
  3. 板载电源模块:24V转12V,12V转5V,5V转3.3V,ADC基准电源单独供电。
  4. 三相半桥驱动IC采用EG2133,自带闭锁功能,无需在程序中设置死区时间,仅输入三路PWM控制信号即可
  5. 板载外设接口:IIC、SPI、HALL、UART
  6. PCB参数:双层板,板子尺寸:99.568mm*61.016mm,可在嘉立创免费打样,可以任意选择你喜欢的板子颜色
  7. GPIO引脚分配:


程序下载、调试接口:

STM32G431无刷电机FOC驱动器硬件项目图1


自定义LED、按键接口:

STM32G431无刷电机FOC驱动器硬件项目图2


三相电流采集:推荐配置ADC为“定时器触发”+“注入组”

STM32G431无刷电机FOC驱动器硬件项目图3


三相电压采集:推荐配置ADC为“定时器触发”+“规则组”+“多通道”+“DMA”

STM32G431无刷电机FOC驱动器硬件项目图4

母线电压采集:

STM32G431无刷电机FOC驱动器硬件项目图5

电位器接口:

STM32G431无刷电机FOC驱动器硬件项目图6


0.96寸LCD接口:FPC接口型号为0.5mm,上接式8P

STM32G431无刷电机FOC驱动器硬件项目图7


HALL信号接口:

STM32G431无刷电机FOC驱动器硬件项目图8


板载IIC接口:

STM32G431无刷电机FOC驱动器硬件项目图9


板载SPI接口:

STM32G431无刷电机FOC驱动器硬件项目图10


STM32CubeMX引脚分配图:

STM32G431无刷电机FOC驱动器硬件项目图11


3D简介图:

STM32G431无刷电机FOC驱动器硬件项目图12


5.使用说明

  1. 推荐STM32CubeMX进行工程配置
  2. 如果所用无刷电机工作电压为12V,请使用12V的电源适配器进行供电。如果无刷电机的工作电压为24V,请使用24V的电源适配器进行供电
  3. 下载程序时,请先停止电机的转动,再使用SWD接口进行下载
  4. 焊接好PCB后,可以使用附件中的测试程序进行验证。
  5. 详细GPIO分配,以及运放配置,分压电阻的计算,请参考原理图中的设计进行程序设计。


  • PCB焊接备注说明:请先下载附件中的“焊接辅助位图”,再进行对照焊接。所有外设均已得到验证,如遇到问题,请先检查焊接问题,如果个人无法解决,请在讨论区分享你的问题。
  1. 首先焊接电源模块:24V转12V,如果输入电源为12V,输出电压应为9.6V左右
  2. 焊接12V转5V电源模块,焊接完成后使用万用表测量输出是否为5V左右
  3. 焊接5V转3.3V,共有两路3.3V的电源,其中一路给ADC的基准电源单独供电,详细信息请参考电路原理图。
  4. 焊接EG2133三相半桥驱动电路,使用万用表测试是否有短路问题
  5. 焊接三相逆变电路,注意焊接MOS管时,先使用万用表测量一下MOS的好坏,注意焊接温度和焊接时间,以免损坏MOS管造成短路问题。
  6. 焊接运放电路
  7. 焊接主控电路及按键
  8. 焊接0.96寸LCD,FPC接口

STM32G431无刷电机FOC驱动器硬件项目图13

【20240126更新】焊接完这两个滤波电容后,可能会挡到FPC座的抽拉。


6.备注

【20240126更新】请下载附件中的Gerber文件,在嘉立创下单助手中进行PCB打样,可以使用免费打样卷,双层板,可以选择任意PCB颜色。


  1. 所有元器件均可在立创商城购买到
  2. 代码下载方式:提供测试程序,使用STLINK或DAPLINK在KEIL中进行编译下载
  3. 附件中的文件:
  4. 焊接辅助位图:用于PCB焊接
  5. 测试程序源码1:DSP+UART,使用STM32裸机开发,可实现FPU运算浮点数据,提供UART堵塞式发送数据、DMA发送数据,使用HAL库进行开发,对UART数据发送函数已进行封装处理,可直接进行调用
  6. 测试程序源码2:使用STM32裸机开发,可以用于0.96寸LCD显示功能测试,屏幕驱动IC:ST7735
  7. 测试程序源码3:使用STM32裸机开发,可以用于SVPWM开环驱动无刷电机,可以串口输出三相占空比波形进行观察,波形应为三相相位差120°的马鞍波
  8. 测试程序源码4:使用STM32+FreeRTOS进行开发,主要用于测试ADC功能,定时器TIM1_CH4触发ADC1注入组,采集三相电流。定时器TIM4_CH4触发ADC1规则组转换、ADC2规则组转换。使用FreeRTOS创建多线程,各任务配置如下,详细配置请参考该附件中的源码。

STM32G431无刷电机FOC驱动器硬件项目图14


HEX固件:提供的各测试程序中,均已包含生成的hex文件,查找方法如下:以测试程序源码4为例,其他测试程序的固件路径类似。

STM32G431无刷电机FOC驱动器硬件项目图15


STM32G431无刷电机FOC驱动器硬件项目图16

7.测试视频/图片

注意:每次上传程序时,请先让电机停止转动,再上传程序。工程使用STM32CubeMX进行配置,使用FreeRTOS进行开发。前3个测试程序可以不看,但是第四个测试程序,强烈建议下载看一下,相信你会有所收获!

  • 测试程序1:验证串口+DSP库,使用vofa+进行串口调试。请注意将USART1的TX和RX,重映射到PB6和PB7。完整版测试程序,请下载附件“测试程序1:DSP+UART”

使用DSP库时,需要添加的宏定义:,__TARGET_FPU_VFP, __FPU_PRESENT=1U, ARM_MATH_CM4

STM32G431无刷电机FOC驱动器硬件项目图17

STM32G431无刷电机FOC驱动器硬件项目图18

STM32G431无刷电机FOC驱动器硬件项目图19

输出结果:

STM32G431无刷电机FOC驱动器硬件项目图20



  • 测试2:0.96寸LCD,完整版程序请下载附件“测试程序2:0.96LCD”



  • 测试3:SVPWM开环运行测试,本次测试使用的为24V无刷电机,使用24电源适配器进行供电。完整版程序请下载“测试程序3:SVPWM开环”



  • 测试4:按键控制任务的启停+三相电流采集+三相电压采集+电位器,使用“JustFloat协议”串口输出电压电流数据。完整版程序,请下载附件“测试程序4:ADC采集”
  • 按下按键PC15,电机开始转动,再次按下按键PC15,电机停止转动。
FOC 无刷电机 STM32 SVPWM 电机驱动
最近更新时间 2024-07-09 09:14:21
描述
PCB
元件清单
原理图
附件
讨论