专业版
【CW32】30A直流无感无刷电机驱动
4.5k
0
0
4
简介
【CW32】30A直流无感无刷电机驱动
简介:【CW32】30A直流无感无刷电机驱动开源协议
:GPL 3.0
创建时间:2022-05-21 10:13:14更新时间:2022-07-13 10:04:53
描述
题目要求
制作无感无刷电机驱动,且理论可承载30A电流
题目分析
无刷电机BLDC是类似三相电的驱动,需要在转子到达合适位置时,切换到对应的相序,才能保证电机能够平稳运行。
在没有霍尔传感器或编码器等可以传输电机转子位置的情况下,驱动板一个感知电机转子位置的方案是检测反电动势的过零时间来判定是否换相。
在二二导通(即每次仅导通三相中的其中两相)的驱动方案中,第三相既没有给电也没有拉到地,处于悬空状态。此时其电平相对电机中性点的电压差即为反电动势。当这个电压差向上或者向下穿过零点时,即第三相感应到的反电动势切换时,正好为电机转子相邻两个换相位置的中点。以电角度60°为例,此时等待电机再次旋转30°电角度,即为换相时间。因此正确识别反电动势的过零点,是无感无刷电机驱动的关键。
提示:总体设计方案框图
列:
原理图设计说明
原理图如下:
图1 原理图
原理图中电源使用的是7到18V转5V,5V再转3.3V的方案。其中7到18V转5V采用DC-DC转换器的方式,将外部输入的宽范围电压转为5V3A。其实输入电压,根据芯片手册可以达到24V,但由于驱动的原因,这里保守标了18V。具体可看驱动部分的介绍。该DC-DC可作为5V2A的BEC使用(位于CN1端口。由于需要给驱动板内部供电,算上端子的损耗,在保证能够在较小压降损耗的条件下,保守测试为可稳定5V2A输出)。5V转3.3V采用3.3V1A的LDO的方式,在调试下载口的端子(H2)中可以使用该电源,同样算上内部耗电,端子损耗,以及外部较小压降损耗的条件下,建议外接负载不要超过300mA。电源模块左侧的四个元件为分压电阻,可以实现对外接电源的电压测量。
反电动势采样这里使用了运放模拟比较器的方案,当然也可以使用ADC的方案,该驱动板同样也将三相的电压测量与虚拟中性点的电压测量线路引到了MCU的ADC管脚。这里不直接使用比较器是因为本人有非常多的LM358,所以懒得买比较器了。。。这里非要使用比较器的话,可以选用LM339,记得比较器的输出一般为开漏输出,因此要在输出端使用上拉电阻从3.3V(或5V,该驱动板的比较器输出接在了可以耐受5V高电平的引脚上)获得强力高电平。当然如果忘了的话,本人在程序中对IO口也做了上拉输入配置。运放或者比较器输入建议跨接一个容值至少3.3nF电容,因为电机的调速使用的是PWM波调速,在驱动电机旋转的过程中该波很容易耦合到比较器输入端,造成输出15kHz的干扰信号,非常影响过零点的判断,如下图所示:
图2 未加入滤波的反电动势波形
图3 容值合适时候的反电动势波形
图4 容值过大时的波形
从上面3个图可见,选择一个容值合适的电容作为输入级的滤波电容还是比较重要的。过小则无法过滤毛刺,过大则造成相位延迟有点严重。从正常滤波的反电动势波形中也可以看出,在反电动势跳变的时候,会有一个尖峰干扰,这个尖峰的时间大概是50us,因此后面程序设计时可以根据这一点针对性做数字滤波。至于分压电阻那里的稳压管,是之前不知道中性点电压有多大,担心分压后依旧超过3.3V炸坏芯片的ADC外设。不过后面发现自己计算还是比较准确的,因此后面调试的几版本电路就懒得焊这个稳压管了,家境贫寒。。。
三相桥电路和其驱动电路就是无刷电机驱动的核心了,本驱动板采用上管PWM调制速度,下管常通的方式进行调速。该板子从内部供电来说,由于DC-DC芯片的原因,应该是可以支持24V输入的,但是这里驱动MOS用的电压为电源电压,若超过20V,则MOS存在击穿的可能,因此电源标注输入为18V。这个电路中值得注意的一点是因为电机在旋转的时候下管肯定处于导通状态,但是电机是能够转的,说明电机上端肯定是有一个比电源电压略低一丢丢的电压。那么由于上管也是NMOS,此时PWM在不停斩波,上管MOS就不停开关,若想MOS上管完全打开,就要求Vgs至少得10V,那么此时栅极电位Vg必然超过电源电压,显然这种事情靠输入电源是不可能的。因此需要自举电路,利用电容两端电压不能跳变的特性将MOS管GS之间的电压强行拉到很高的值,足够驱动MOS管打开。这里本人陷入了一个误区导致该驱动板调试了很久。这个驱动的自举电路,需要在下管导通时才能利用电机驱动电压进行充电。而正常情况下,如果强行给某两相导通,由于没有经过换相,上管导通的那一相的源极未能拉到地,处于浮空状态,因此无法充电,此时则可以发现,下管是通的,但是上管死活没通。。。。。本人比较谨慎,担心炸板,就尝试给两相上下管分别导通,导致一度以为这个充电电容选型错误或者驱动芯片不给力。所以就掉了这个死胡同,希望大家引以为戒,一定要弄明白元件的原理。实际上这个国产的MOS驱动芯片有内部逻辑电路,是不会让上下管同时导通的,因此这里选用这个,也是减少了许多炸板的风险。
MCU外围电路则是针对MCU的小系统做了个配置,8M晶振啊,复位电路啊啥的,比较常规,网上资料也比较全,不详细叙述了。值得一提的是本人很喜欢串口,于是就把串口2引出来作为调试口了。毕竟没加灯泡,没串口的话芯片程序摸鱼都不知道,作为混迹职场的社畜,本人虽然各种摸鱼,但是还是不希望看到自己的队友或者芯片在摸鱼,典型双标了属于是。。。还有就是PWM输入口,这个是受到航模电调的启发做的,他们也是这样子把PWM调速输入和BEC放在一起,所以我也放在一起了。该驱动板可以利用外部的PWM信号对电机进行调速,协议仿造了银燕数字舵机的,300Hz频率,高电平3.3V,有效高电平时间1500us至1900us。当然,既然有串口,也自然可以用串口收发数据,一些电压电流啊,或者电机速度之类的可以做成反馈啥的。为了方便调试,这边还加了一组霍尔传感器的接口,所以这个驱动板用来驱动带霍尔传感器的电机还是没问题的。
那么实物如下:
图5 实物正面
图6 运放滤波电容修改前实物反面
图7 运放滤波电容以及自举电容封装修改后实物反面
这里放了两个反面,是因为我不想再拆MOS了,现在的电路有点点不完美,所以补了一个MOS焊完的。家境贫寒,买的几十个MOS都被我炸得差不多了,希望审核大大能看在我如此大出血的份上不要计较这个了,谢过。不过我还是要说一下,家里条件有限,只能拿到几安培输出的电流,所以并没有测试这板子是否真的能抗住30A大电流。这里每一路的上下管都是用了两个80A的MOS,也很方便铺散热片,因此MOS这里倒不用太担心。主要是担心下面的覆铜,虽然面积很大而且打了大量的过孔,但是毕竟没测试过,还是有点虚。不过方案也有,就是把覆铜开窗,然后焊点铜条上去增加内部线路的过电流能力。
PCB设计说明
首先看一下PCB总体的样子。
图8 PCB概貌
可以发现,并不是很漂亮的说。。。我其实PCB设计比较少,所以无法提供太多经验。但是有一些东西还是值得说一下的,特别是电源,当时调试这个电源也把我折腾得吐血。
首先电源的进线和出线尽可能短而粗,否则会有较大压降和发热。如果可以,芯片下面可以覆上一层地,并打几个散热孔,实测效果不错。输入电容应该尽可能离芯片近一些,输出电容则是要离电感输出近一些。
有条件的朋友可以选择全屏蔽电感,这样板子的EMC会好很多。如果用了半包的,在电感下面敷上地,且电感下面千万不要走信号线。这玩意儿干扰不是一般地离谱。
反馈线要尽可能避开干扰源,比如说芯片的BOOST脚或者SW脚,能从背面走,且周围有铺地最好。这里要说一个特别坑的地方,那就是反馈线一定要从输出电容到板子的输出端口之间引!虽然说,原理上讲,电容左右两边是一块铜,理论上电流应该一样,实际上,电流要在通过了电容之后,才会稳定,否则反馈信号会有巨大的纹波(约300mV,图片不见了)。这个300mV的波动将直接影响电源芯片的输出,甚至仅仅输出一半电流,芯片就跳闸了。
接着就是栅极驱动芯片的与MOS管的栅极尽可能近一点,这样可以减小因为长线而产生的杂散电感,避免振铃,振铃的话百度比较多,我手上没图,也说不太清楚。而本驱动板的话,我这边实在短不了了,就只能加限流电阻去抑制振铃,当然代价就是MOS管结电容充电时间过长,米勒平台跨越较久,米勒平台也不多说了,百度都有,这边一样没图,很难解释。然后跨越米勒平台的时候MOS管处于放大区,时间较长,因此发热肯定会严重一点,这个没办法了。。
最后芯片布线方面,芯片的引脚还是要注意一下线路的散出,不要像我第一次的作品一样为了走通信号线打了好几个过孔,这样很容易引入干扰。
软件说明
提示:软件可以使用代码块来进行嵌套放置,无需全部软件部分说明,只需说明重要部分即可
代码块:
#include
void main()
{
printf(""/n);
}
实物展示说明
实物展示在原理图部分已经有了,这里就不重复放图了。
注意事项
注意事项已在原理图和PCB说明中说明,结合图片效果更好。这里也不再复制粘贴。
演示视频
演示视频详见附件
其它附件上传
代码详见附件
设计图
未生成预览图,请在编辑器重新保存一次
BOM
暂无BOM
克隆工程
添加到专辑
0
0
分享
侵权投诉
评论