功率 MOS 管驱动串联电阻
简 介: 对于功率 MOS 管栅极驱动串联电阻究竟有什么作用,取什么阻值合适呢? 本文通过 LTspice 软件仿真测试了不同 MOS 管驱动串联电阻对于减少 MOS 管栅极电压波动的效果。
关键词
: MOS,栅极,RLC
§01 功率MOS驱动
在 栅极电阻要取100欧姆? 博文中给出了一篇翻译博文,讨论了功率 MOS 管栅极电阻取值的问题。 下面利用 AT LTspice 仿真软件对于文中功率 MOS 管串联电阻对于电路影响进行测试。
一、LTspice建模
选择 LTspice 环境中 MOS 管的型号为 IRF2805,它的主要参数如下图所示:
▲ 图1.1.1 IRF2805 MOS 管的主要参数
如下是基本测试电路图,在电路中, L 3 , L 4 L_3 ,L_4 L3,L4 是模拟 MOS 管驱动电源 V 2 V_2 V2 到 MOS 管之间连线的分散电感。 L 1 L_1 L1 是 MOS 负载连接的杂散电感。 MOS 管负载为一个电感负载。
▲ 图1.1.2 测试基本电路图
二、测量电压波形
设置驱动信号 V2 是一个幅度为 12V,宽度为 2us 的电压波形,测量 MOS 管 M1 的栅极与漏极电压波形。 设置栅极串联电阻 R1 的阻值从 0.1 变化到 5 欧姆,对应的电压波形如下面动图所示。可以看到随着栅极驱动串联电阻 R1 的阻值增加, M1 栅极的驱动电压波形从具有一定过冲电压变化到没有过冲。 对应 M1 漏极电压比较相似,没有太大的变化。
▲ 图1.1.3 基极驱动电阻从0.1变化到5欧姆对应的MOS管栅极电压与漏极电压
但是奇怪的是,M1 的漏极电流在驱动过程中出现了高频振荡。下面显示不同栅极电阻下这种震荡电流的形式。如果将 L1 的电感值降低到 5nF 之后, M1 持续震荡就会消失了。
▲ 图1.1.4 随着栅极串联电阻增加,MOS管漏极电流
如果将栅极驱动串联电阻修改为 51Ω, 仿真运行后对应的 M1 栅极电压波形(Vn006)与漏极电压(Vn001)如下图所示。可以看到此时 MOS 管栅极电压上升下降沿变得十分缓慢。所以传统意义上 MOS 管栅极串联电阻需要根据实际电路中的器件和杂散电感进行调整。
▲ 图1.2.3 栅极电阻R1为51欧姆时对应的MOS管的栅极(n006)和漏极(n001)电压波形
三、对比电容
为了对比 MOS 管基极驱动回路与 RLC 串联谐振电路的关系,下面搭建了与前面 MOS 管电路栅极回路相似的电路模型。 测试不同串联电阻 R1 对应的 C1 上的电压波形。
▲ 图1.3.1 测试RLC串联电路图
下图给出了不同 R1 阻值下的 C1 上的电压波形。与 MOS 管栅极电压相比,主要区别为:
- RLC 谐振电路振荡更剧烈,MOS 管栅极振荡即使 R1=0 时,也会很快衰减。这也说明 MOS 管栅极与源极之间存在比较大的串联电阻;
- 在 MOS 栅极电路中, 栅极电压上升过程存在一个小台阶,这是由 MOS 管导通过程中的 Miller 效应 引起。
▲ 图1.3.2 RLC串联谐振电路仿真结果
四、测试不同MOS管
下面对比不同的 MOS 管栅极电压波形。统一设置栅极串联电阻为 0.1Ω。
▲ 图1.4.1 MOS IRF2805电压波形
▲ MOS IPA105N15N3电压波形
▲ MOS IRF7303的电压波形
上面对比了三种不同的 MOS 管驱动电压波形,可以看到对应的基极电压以及漏极电压还是具有很大的区别。
特别是对于高速 IRF7303 MOS 管,它对应的栅极电压过冲比较大。 如果将栅极串联电阻修改成 10欧姆,对应的仿真波形如下,可以看到栅极电压波形几乎就没有振荡了。
▲ 图1.4.4 MOS IRF7303 电压波形
※ 总 结 ※
对于功率 MOS 管栅极驱动串联电阻究竟有什么作用,取什么阻值合适呢? 本文通过 LTspice 软件仿真测试了不同 MOS 管驱动串联电阻对于减少 MOS 管栅极电压波动的效果。
■ 相关文献链接:
● 相关图表链接:
- 图1.1.1 IRF2805 MOS 管的主要参数
- 图1.1.2 测试基本电路图
- 图1.1.3 基极驱动电阻从0.1变化到5欧姆对应的MOS管栅极电压与漏极电压
- 图1.1.4 随着栅极串联电阻增加,MOS管漏极电流
- 图1.2.3 栅极电阻R1为51欧姆时对应的MOS管的栅极(n006)和漏极(n001)电压波形
- 图1.3.1 测试RLC串联电路图
- 图1.3.2 RLC串联谐振电路仿真结果
- 图1.4.1 MOS IRF2805电压波形
- MOS IPA105N15N3电压波形
- MOS IRF7303的电压波形
- 图1.4.4 MOS IRF7303 电压波形
from headm import *
filename = r'D:\Temp\1.txt'
timedim = []
data1dim = []
data2dim = []
data3dim = []
rdim = []
segdim = []
with open(filename, 'r') as f:
for id,l in enumerate(f.readlines()):
l = l.strip('\n')
if l.find('time') >= 0: continue
if l.find('Step') >= 0:
rstr = l.split('=')[-1].split(' ')[0]
if rstr[-1] == 'm':
r = float(rstr[:-1]) * 1e-3
else: r= float(rstr)
rdim.append(r)
segdim.append(len(timedim))
continue
ll = [float(s) for s in l.split('\t')]
timedim.append(ll[0])
data1dim.append(ll[1])
data2dim.append(ll[2])
data3dim.append(ll[3])
if id % 10000 == 0: printf(id)
segdim.append(len(timedim))
printf(len(timedim))
printf(rdim)
tspsave('testdata', rdim=rdim, segdim=segdim, timedim=timedim,
data1dim=data1dim, data2dim=data2dim, data3dim=data3dim)
printf('\a')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# DRAW.PY -- by Dr. ZhuoQing 2022-08-25
#
# Note:
#============================================================
from headm import *
from tsmodule.tsdraw import *
rdim, segdim, timedim, data1dim, data2dim, data3dim = tspload('testdata', 'rdim', 'segdim', 'timedim', 'data1dim', 'data2dim', 'data3dim')
gifplot = PlotGIF()
plt.draw()
plt.pause(.1)
for id, r in enumerate(rdim):
startid = segdim[id]
endid = segdim[id+1]
t = timedim[startid:endid]*1e6
d1 = data1dim[startid:endid]
d2 = data2dim[startid:endid]
d3 = data3dim[startid:endid]
plt.clf()
plt.subplot(2,1,1)
plt.plot(t, d1, label='Vgate')
plt.plot(t, d2, label='Vdrain')
plt.xlabel("Time(us)")
plt.ylabel("Voltage(V)")
plt.axis([0, 10, -6, 25])
plt.title('R=%4.2fohm'%r)
plt.grid(True)
plt.legend(loc='upper right')
plt.tight_layout()
plt.subplot(2,1,2)
plt.plot(t, d3)
plt.xlabel("Time(us)")
plt.ylabel("Current(A)")
plt.axis([0,10,-0.9,0.9])
plt.grid(True)
plt.tight_layout()
plt.draw()
plt.pause(.1)
gifplot.append(plt)
#------------------------------------------------------------
gifplot.save()
#------------------------------------------------------------
printf('\a')
#------------------------------------------------------------
# END OF FILE : DRAW.PY
#============================================================
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/126491229
- 点赞
- 收藏
- 关注作者
评论(0)