无刷直流电机一般使用全桥驱动,即6个MOSFET分别构成上臂和下臂,通过MCU具有推挽输出的IO口控制,或者使用电机驱动专用芯片控制。
一般有两种方案:3个P-MOS + 3个N-MOS;6个N-MOS
N-MOS的Vgs(th) = 2V ~ 4V,直接用工作在VCC = 5V的MCU即可驱动控制,但注意IO口必须具有推挽输出功能,否则IO口的驱动能力不够。图中R7/R8/R9可视为下拉电阻,使N-MOS的栅极电平有一个参考地,电平稳定不会意外导通MOSFET。R10/R11/R12电阻的作用有三个,一是减少振荡,二是减小栅极充电的峰值电流,三是防止N-MOS的漏-源极击穿。
由于MCU的IO引脚都存在杂散电感,与栅极电容串联形成LC振荡,加入电阻后会增大振荡阻尼而减小振荡;
当对栅极加驱动电压时,会对栅源电容Ciss充电,此时Vgs上升但未到达阈值电压Vgs(th)时Vds基本不变,这段时间称为导通延迟时间td(on)。当Vgs > Vgs(th)时,Vds下降同时id上升,这期间栅极和漏极之间的传输反向电容Crss开始向漏极放电,而此时栅极电流会流向该电容对其充电,但基本没有对Ciss充电,所以Vgs基本保持不变,这段时间称为上升时间tr,tr之后才会继续对Ciss充电。电容充电的尖峰电流可以计算如下:I = Qg/(td + tr),其中Qg = Qgs + Qgd,即td + tr时间内的充电电量,计算结果电流是远大于MCu的IO口输出驱动电流,因此通过串联电阻,增加充电时间,即t = RC。但这会导致Vgs的上升沿和Vds的下降沿斜率减小,影响MOSFET的开关性能,所以电阻的选取要准确。(此处理论知识分析可能不正确,我也在学习MOSFET的驱动应用原理,若有误或需要补充会再做修改)
防止漏源击穿的原因也是和电容的时间常数有关,当栅极驱动电压快速关断,漏源极从导通状态变为截止状态,Vds迅速增加,当dVds/dt过大就会击穿器件,串联电阻可以减缓Ciss的放电时间,使Vgs缓慢变化,因此Vds不会迅速增加。
P-MOS的Vgs(th) < 0,源极一般加11V电压,MCU的IO口无法正常控制P-MOS的开关,我们需要用三级管驱动栅极,三极管由IO口驱动控制。电阻R1/R2/R3上拉栅极电压,使P-MOS能关断。这个电阻不能太小,否则会造成三极管导通时承受过大的电流。同时电阻也不能太大,否则会增加三极管BC极间电容的充电时间,延长三极管的导通时间,进而影响P-MOS栅极电压Vgs的上升时间。
三极管的选择不能选用我们常用的8050或9013小信号的三极管,它们的耐压和导通电流太低,所以这里我选择了SS8050(MK中使用的三极管找不到)。
R4/R5/R6阻值的选择无特别要求,只要使三极管工作在饱和区即可。
2. 第二种全桥驱动是由6个N-MOS组成,分别组成上臂和下臂,和上述不同的时原来的P-MOS都换成了N-MOS。优点是成本低,器件容易获得;缺点是必须做升压电路,因为N-MOS的Vgs > 0源极连接电源电压11V,栅极驱动电压必须比11V大4V以上。
升压方式多种,有用DC-DC升压IC直接升压,可是这样电路就会相对复杂了。因此,比较常用简单的应该是自举升压。