- 点击查察本文开源的完备FOC工程https://gitee.com/best_pureer/stm32_foc
- 配套硬件:点此前去查察
为了承载和验证本文的FOC代码工程,本节筹划了一个浅易的三相无刷电机硬件套件,主控接纳非经常用的stm32f103c8t6单片机,电机编码器接纳MT6701,电机接纳22xx系列云台电机,驱动电路接纳集成驱动芯片MS8313/DRV8313,电传播感器接纳INA199A1在线采样。
该硬件套件使用无工具快拆装筹划,得手即可直接快速手拧安装拆卸。
接下来对各个模块举行筹划解说:
stm32电路
stm32f103c8t6可以说是学习stm32中最热门和常见的一颗芯片,网络上的配套资料非常丰富,某宝上的制品最小体系板的代价也非常自制(当你不确定是电路题目照旧代码题目时,可以快速地低本钱地使用最小体系板举行验证),本文使用其作为主控芯片。
如果你自行举行芯片选型时,留意不要选择同样热门的stm32f103c6t6,实测Flash容量不敷以运行本文的FOC代码。
- 晶振电路
该电路是单片机运行的须要条件:
- boot选择电路
该电路非必须,但是最好保存,以防万一步伐里将烧录引脚当成平常IO口举行了控制,导致无法通过J-Link、DAPLink等举行烧录,而只能使用ISP烧录。stm32的boot0和boot1引脚输入可以控制步伐启动方式,对应关系如下:
boot0电平boot1电平启动方式0恣意正常启动,即在主flash启动10芯片出厂时自带一个bootloader用于串口烧录步伐,启动该bootloader步伐,即ISP烧录11在ram启动一样平常倒霉用在ram启动,因此从上表来看,只须要将boot1直接接地,控制boot0位的输入电平,即可使用ISP烧录。
将boot0下拉处置惩罚,实现默认输入为0,默认正常启动:
- SWD调试信号
单片机烧录调试可选择SWD接口或JTAG接口,JTAG除了电源线须要接入JTCK引脚、JTDI引脚、JTDO引脚、JTMS引脚,而SWD除了电源线只须要接入SWCLK引脚和SWDIO引脚,常用的J-Link、DAPLink等调试器都支持SWD接口。本文使用SWD接口而且使用超低本钱的开源调试器DAPLink。该调试电路直接引出即可:
- 复位电路
- LED电路
放置一个IO控制的LED灯,方便步伐里某些环境下用作指示灯。
- PWM输出信号
用于输出FOC产生的PWM信号到电机驱动桥,直接引出即可。本文的硬件套件电路板将该三个信号引出方便接示波器,同时这里的PA9和PA10也是ISP烧录的引脚。
接入PWM的刹车引脚:
- SPI信号
用于读取MT6701磁编码器,直接连线即可。
- 调试串口信号
一个串口用于调试,直接引出即可。
- ADC信号
用于电流采样信号收罗,直接连线即可,留意ADC外设的通道是对应固定引脚的,不能恣意接。
磁编码器电路
本文使用MT6701磁编码器,该编码器代价比常用的AS5600稍贵,但是支持SPI角度读取。
颠末我实测,stm32f1系列的I2C外设确实存在硬件bug,使用硬件I2C读取AS5600时,经常会陷入busy状态,因此本文使用支持SPI读取的MT6701。
MT6701供电电压可以是3.3V大概5V,这里使用了5V举行供电,由于MT6701数据手册中有写:要使用内部EEPROM时,供电电压在4.5V到5V之间。不外一样平常也倒霉用内部EEPROM,使用内部EEPROM须要使用I2C方式,由于这里使用了SPI接口,万一要使用时请使用软件I2C。
电机驱动电路
为了方便学习验证FOC算法,本文选择集成驱动芯片MS8313/DRV8313,该芯片内部有3个半桥驱动以及掩护电路,可以淘汰对驱动筹划的要求以及防止粉碎器件。
该芯片自带的过流掩护和相线短路掩护非常有用,如果使用MOS管搭建的驱动桥举行驱动,在刚开始学习验证FOC算法的时间,比力轻易烧毁MOS管,我就烧毁过MOS管好频频。
但是该芯片驱动电流不是很高,每个电机相线最高峰值输出2.5A电流,对于学习验证阶段充足了。
电流采样电路
为了方便在定时器恣意溢出时候采样,将电流收罗位置筹划在电机相线上,采样时候请查察前文(adc外设的高级用法)。
电流采样是放大采样电阻两头电压后输入单片机ADC引脚,再根据欧姆定律反算得到的。比方假设:
- 运算放大器放大倍数是50倍,输出大于1.65V代表正向电流,小于1.65V代表负向电流。
- 采样电阻是0.02Ω。
- 单片机ADC读到的电压是0.65V。
那么流经该相线的电流为(1.65-0.65)/50/0.02=1A。
本文电传播感器选择INA199系列,该电传播感器相对于更常用INA240系列的代价低很多,INA240约莫是10+元一片,INA199具有26V的共模电压,收罗相线上的采样电阻两头电压没有题目,就是参考电压须要输入1.65V会贫苦一点。
这里选择INA199A1,放大倍数是50倍。
电机选择
由于MS8313/DRV8313驱动电流有限,因此最好选择绕组电阻高一点(线电阻10Ω以上)的电机,不要使用航模电机,这里使用2208云台电机。云台电机与航模电机重要的区别就是绕组铜线匝数不一样,云台电机匝数多、绕组电阻大、磁感应强度大、扭矩大,大概小于200KV的航模电机也就能称为云台电机了。
颠末我的测试,使用1000KV的2208航模电机在MS8313/DRV8313驱动下,位置环的力矩比力单薄,速率环委曲能运行,总之不恰当MS8313/DRV8313驱动,固然由于MS8313/DRV8313自带过流掩护,因此使用很低绕组电阻的航模电机也不会烧毁驱动。
下图左边是2208云台电机,右边是2208航模电机:
本文示例硬件阐明
为了学习验证本文的FOC算法,我按照上述电路筹划了一个简朴的集成了磁编码器、电机驱动、单片机的ALL-IN-ONE验证板。点此链接前去查察。
- 支持位置环、速率环、电流环(力矩环)。
- 无需接线,无需找对应引脚,安装好电机后,只需外接一根电源线和一根Type-C线(使用适配DAPLink),盲插即可工作。
- 使用全手拧筹划,全程无需螺丝刀等工具,得手即可快速手拧安装和拆卸。
- 引出多个接口:磁编码器的SPI接口、三相PWM信号线、多个低压电源口,方便抓取波形等使用。
- 可适配实行用平台底座,电机调试过程中底座稳固不摇晃。
- 自带电机电源开关,一键关闭电机电源,及时克制失控。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |