ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

MOS管缓启动电路设计:用LTspice仿真优化上电冲击电流

MOS管缓启动电路设计:用LTspice仿真优化上电冲击电流 上电一瞬间“啪”的一声保险丝断了或者MOS管封装边上烧出一个难看的黑点——做过电源、做过电机驱动的工程师多半都经历过这种场面。我最早遇到这个问题时第一反应是换更大电流的MOS管结果换上去照样出问题。后来把示波器探头夹在输入端一看才明白真正的元凶是上电瞬间的冲击电流而不是稳态电流不够。也正是从那次开始我养成了一个习惯任何带大输入电容的板卡在上电路径里都要认真设计缓启动电路而且先用LTspice仿真把波形和功耗摸清楚再动手画PCB。这篇文章就围绕“用LTspice仿真优化MOS管缓启动电路”这件事展开。内容会覆盖冲击电流的成因、缓启动电路的设计思路、LTspice里从搭建电路到参数扫描的完整过程以及从仿真到实物的注意事项。适合正在做电源输入级保护、BMS预充电路、电机驱动板或者经常被“上电瞬间炸管”困扰的工程师参考。1. 冲击电流从哪来输入电容的低阻抗通道1.1 从欧姆定律到工程估算绝大多数DC-DC电源板、电机驱动板输入端都会并联一堆电容。电解电容几百微法陶瓷电容几微法到几十微法加在一起的总电容很容易超过500μF甚至1000μF。这些电容在上电之前两端电压是0。合闸瞬间它们相当于对地短路——不是真正短路但阻抗极低。如果MOS管已经处于完全导通状态输入电压就通过“电源内阻 走线电阻 电容ESR”这个极小阻值的回路直接给电容充电。做个简单估算输入24V回路总电阻0.7Ω那么初始电流峰值就是 I V / R 24 / 0.7 ≈ 34A。如果电源内阻更小、电容ESR更低比如总回路电阻0.5Ω峰值电流直接到48A。这个电流不是因为负载要那么大而是因为电容在零点几毫秒内要完成充电。问题在于普通板卡上的保险丝、MOS管、接线端子并不会按“48A峰值但只持续0.5毫秒”这个条件去做额流选型于是各种保护器件被误触发或者干脆烧掉。更隐蔽的情况是电路没有立即损坏但每次上电都让输入端的陶瓷电容承受一次大电流充电久而久之电容出现裂纹、焊盘发黑或者电源模块的输入欠压保护反复动作整个系统表现为“偶尔上电失败”这种难查的软故障。1.2 冲击电流的真实危害其实是SOA和能量很多工程师不理解MOS管数据手册上明明写了几十安甚至上百安的连续漏极电流怎么一个“不到50A、持续不到1ms”的尖峰就能把它击穿这就引出SOA安全工作区的概念。MOS管能承受的电流是有前提的要么导通后Vds很小电流再大瞬时功耗也不高要么处于完全关断电流为零也不耗散功率。最怕的是“半导通”状态——Vds还很高电流已经开始流这时候瞬时功耗 P Vds × Id 非常大。上电冲击电流发生时MOS管恰好从关断被快速拉入完全导通。如果栅极电压上升过快MOS管会在极短的时间内从高阻态切到低阻态中间经历Vds很高、Id很大的区域。这个区域如果超出SOA曲线边界尤其是超出短时脉冲SOA边界MOS管内部瞬间过热硅片局部温度超过熔点管子就报废了。所以缓启动的本质不是简单地把电流“限小”而是把原本集中在极短时间内的瞬态能量摊到一个更长时间窗口里让MOS管每一瞬间的工作点都落在SOA安全区内。1.3 缓启动要解决的三个问题设计缓启动电路目标很清楚限制上电瞬间的电流尖峰让它低于保险丝、连接器、前级电源的保护阈值让MOS管在导通过程中每个瞬间的工作点都处于SOA之内不影响系统正常的启动时间要求不能为了软启动而把上电时间拖得太长这三个目标经常互相打架。比如想要电流尖峰更低可以把导通时间拉长但导通时间太长下游DCDC可能因为输入电压建立过慢而反复欠压重启。所以缓启动电路的设计本质上是在电流峰值、启动时间、MOS管热应力之间找一个平衡点。这个平衡点靠心算是可以的但效率低LTspice仿真能帮你快速把整个设计空间看一遍。2. 缓启动方案怎么选三种典型电路与MOS管的工作区2.1 专用IC与分立RC的取舍缓启动的实现方式目前工程上主流的有三条路线。方案工作原理优点缺点适用场景栅极RC缓启动通过RC网络控制栅极电压爬升速度让MOS管从截止缓慢过渡到导通成本低、原理简单、参数可调、不依赖专用芯片RC参数受批次和温度影响批量一致性稍差大多数中小功率板卡恒流源驱动缓启动用恒流源给栅极电容充电栅压线性上升启动时间更线性、受电源电压波动影响小多几个三极管/稳压管电路稍复杂对启动时间一致性要求高的设备专用热插拔控制器芯片内部有精密电流源和SOA保护通过SS引脚外接电容设定软启动时间保护完善、有故障反馈、可控性好成本高、部分芯片货源紧张、LTspice模型未必齐全服务器、通信设备等高可靠场景我的建议是如果做产品设计且输入电压、电流比较大直接考虑热插拔控制器比如TPS2592、LM5060、ADM1270这类省心。但如果还在学习阶段或者想彻底搞懂缓启动的原理强烈建议先用分立MOS管RC在LTspice里搭一遍。用专用IC仿真开箱即用的模型不多遇到“unknown schematic syntax”这类问题容易劝退新手而分立RC电路所有参数都看得见、摸得着学完原理之后再迁移到专用IC会非常顺畅。2.2 栅极RC缓启动的工作过程以低边NMOS为例电路结构非常简单MOS管的栅极串一个电阻Rg栅源之间并一个电容Cg。驱动信号通过Rg给Cg充电使Vgs随时间缓慢上升。Vgs从0开始低于栅极阈值电压Vth时MOS管完全关断Id0Vds等于输入电压。随着Cg充电Vgs超过VthMOS管开始导通Id开始出现。此时Vds仍然很高MOS管处于我们常说的“线性模式”——专业点叫恒流区或放大区即Vds远大于VgsVth漏极电流主要由Vgs决定。Vgs继续上升Id跟随上升Vds开始下降。当Vds降到低于VgsVth以后MOS管进入欧姆区可变电阻区沟道完全打开。最后Vgs稳定在驱动电平管子完全导通缓启动过程结束。整个过程里真正决定“电流爬坡速度”的是线性模式下那段Vgs扫过阈值的速率。而控制这个速率的最直接手段就是调Rg和Cg的乘积也就是RC时间常数。2.3 米勒平台决定了“慢”的真相很多人第一次算缓启动时间时喜欢用 τ Rg × Cg然后发现实际波形比估算慢得多。这是因为忽略了栅漏电容Cgd的米勒效应。当Vds开始从高压下降时Cgd需要被充放电栅极驱动电流一部分被Cgd吸走。在Vds下降的整个过程中Vgs几乎保持不变形成一个平台——这就是“米勒平台”。在这个平台期间驱动电流主要都消耗在给Cgd充电上而不是提升Vgs因此MOS管停留在线性模式的时间会明显拉长。所以工程上估算启动时间更靠谱的方式不是用τ而是用栅极电荷Qg栅极驱动电流大约为 Ig (Vdrive - Vpl) / Rg其中Vpl是米勒平台电压。开启时间 t ≈ Qg_total / Ig。举个例子某型号功率MOS管Qg为48nC米勒平台电压4.5V驱动电压10VRg47kΩ。那么栅极电流约等于 (10 - 4.5) / 47000 ≈ 117μA平台持续时间约为 48nC / 117μA ≈ 410μs。再加上Vgs从0升到Vth和从平台升到最终值的时间总启动时间通常在毫秒量级。这就是为什么LTspice仿真特别有价值的另一个原因米勒效应在公式里难以精确建模但仿真可以自动把它算进去你只需要看波形就知道真实启动时间。3. LTspice仿真的前置准备模型、指令与常见语法坑3.1 元件放置与SPICE模型选择打开LTspice按F2打开元件库。缓启动仿真不需要太复杂的器件核心元件有nmos4N沟道MOS、电容、电阻、电压源。重点说MOS管模型。LTspice自带的nmos4是一个理想化模型它的参数里没有SOA、没有热阻、甚至很多实际器件的非线性特性都不完整。如果你只是看趋势先用nmos4完全可以但如果要做定量分析比如判断MOS管会不会超出SOA建议导入厂商的SPICE模型。操作步骤是从厂家官网下载对应的.lib或.sub文件放到原理图目录下在原理图中按S键打开Spice Directive写入.include IRF540N.lib然后把MOS管的Value改成IRF540N要与库文件里的型号一致。如果LTspice报“unknown schematic syntax”多数情况是.include路径不对、模型名和Value不一致或者文件本身编码有问题。这时候按AltS打开网表文件检查红色高亮的文本位置基本就能定位问题。需要提醒的是有些LTspice版本自带的“nmos4”并不代表任何具体型号。你要是想看SOA一定要用厂商子电路模型来做仿真。否则后续判断“能不能抗住100W瞬时功耗”就无从谈起。3.2 瞬态仿真、参数扫描与自动测量指令缓启动是瞬态过程使用.tran指令。为了模拟真实上电建议加上startup关键字它能让所有电压源从0开始爬升到设定值更接近合闸的物理过程。常用的仿真指令组合如下.tran 0 50m 0 1u startup .step param Rg list 10k 22k 47k 100k .meas TRAN Ipk MAX I(C1)第一行表示仿真50ms最大步长1μs从零开始启动。第二行是参数扫描分别仿真Rg取四个阻值的情况。第三行是自动测量把C1电流的最大值记录到log文件里。参数扫描对于找最优RC值非常有用。跑完之后在波形窗口右键选择Select Steps就能切换不同Rg对应的波形对比。如果同时扫描Rg和Cg两个参数LTspice会做全组合展开仿真时间会明显变长。建议先用少量列表值定位再用小范围细化别一上来就扫几十个点。3.3 保存文件多出来一堆文件的疑云很多新手会发现LTspice保存原理图后文件夹里除了.asc文件外多了.raw、.log、.net、.op.raw之类的一堆文件还以为软件崩溃了或者文件损坏。其实很正常.asc是原理图源文件.raw是仿真波形数据.log是仿真运行日志保存了报错信息和.meas测量结果.net是生成的网表.op.raw是工作点仿真数据它们是仿真副产物不用管但要养成好习惯每一个项目单独建一个文件夹统一存放原理图、模型文件和仿真输出否则各种文件混在一起过段时间你自己都会看晕。3.4 最容易踩的几个LTspice语法坑第一元件Value不能乱写。比如你放了一个nmos然后在Value栏直接写IRF540N但没有.include对应模型LTspice就会报“Unknown subcircuit called”。这等于查无此人。第二模型文件路径不能包含中文或过长的路径。LTspice对路径中的空格和中文支持不够稳定尽量全部用英文路径。我遇到过.include路径里带中文导致仿真静默失败的案例检查了半天才找到问题。第三逗号和句点不能混用。SPICE里小数点是.参数分隔符是空格很多人写0.1u写成0,1u报错后一脸茫然。细节看着小但对新人来说确实很折磨。3.5 电压源要串一个小电阻再“上电”最后一条尤其重要理想电压源在LTspice里内阻为0。如果你用一个24V理想电压源直接给1000μF电容充电且MOS管完全导通理论上充电电流无穷大LTspice会提示“time step too small”仿真卡死。为了让结果贴近实际也为了让仿真能顺利跑完一定要在电源后面串一个小电阻来模拟电源内阻和走线电阻比如0.5Ω。这一个小电阻对冲击电流峰值的计算结果影响巨大。没有它你根本看不到“冲击电流”长什么样因为仿真直接算不动有了它才能复现出真实的几十安尖峰。4. 跑一条“坏”波形无缓启动的冲击电流基线4.1 搭建一个最小测试电路在加入缓启动电路之前先搭一个完全不设防的电路24V电源通过0.5Ω内阻直接接一个1000μF负载电容负载电容两端并联一个100Ω电阻作为静态负载模拟MOS管作为上电开关。先不要把Rg和Cg加进去栅极直接接一个快速上升的驱动信号比如0到10V上升沿1ns模拟“粗暴开关”的上电方式。电路大概是这样V1 - R1(0.5Ω) - VIN - R_load(100Ω) - GND └- C_load(1000μF) - GND MOS低边VIN接M1的DM1的S接GNDM1的G接Vg无RC仿真命令就一行.tran 0 20m 0 2u startup别急着看结果先跑通再说。4.2 基线波形解读电流尖峰是怎么产生的仿真跑完打开I(C1)波形你会看到电流从0瞬间跳到几十安然后指数衰减到接近0。由于回路电阻0.5Ω峰值电流大致就是 24V / 0.5Ω 48A。这个尖峰持续时间只有几百微秒但却是整个上电过程中最危险的一瞬间。对应看Vgs波形栅极电压几乎瞬间达到10VMOS管在纳秒级别就从关断变成了完全导通。Vds则从24V瞬间掉到0V附近。整个过程里MOS管几乎没有经过“半导通”的缓坡而是直接短路了输入电容。这就是最典型的“坏”波形。它告诉你如果不加任何缓启动上电瞬间的电流应力就是纯靠回路电阻来限制的。而这个回路电阻通常又非常小于是电流尖峰经常是几十安起步。4.3 补上寄生参数之后波形会更难看实际板子上走线走线、电容ESR、MOS管引脚寄生电感都会影响波形。把这些寄生参数加进去基线波形的电流尖峰会略微下降但同时会在上升沿叠加振铃Vds上甚至可能出现超过输入电压的过冲。还有一个在仿真里容易被忽略的问题电源远端最为真实的表现。许多电源模块内部的短路保护或过流保护在遇到这种几十安瞬时电流时会直接打嗝保护表现为输出电压跌落、反复重启。这意味着即使MOS管本身扛住了系统级的功能也是失败的。所以基线仿真真正的意义是把“没有缓启动会发生什么”这个问题量化让你有个对比参照。后面加缓启动电路后拿参数扫描结果和基线对比才能直观看到改进幅度。5. 优化RC参数扫描实验、波形对比与工程平衡5.1 在仿真里加上缓启动RC网络现在把Rg和Cg加回电路栅极驱动端先经过Rg再连到MOS栅极栅源之间并联Cg。整体电路和前面一样只是驱动路径从“直连”改成了“RC充电”。这里有个容易被问住的问题Cg到底接在栅源之间还是栅极到地对低压侧NMOS来说源极就是地所以接栅源之间和接栅极到地效果一样如果是高边PMOS就要接在栅源之间而不是栅极到系统地否则缓启动效果会完全不对。用LTspice仿真时先把低压侧NMOS的原理搞透再去做高边PMOS会省很多事。5.2 用参数扫描快速看趋势仿真指令可以写成这样.tran 0 50m 0 5u startup .step param Rg list 10k 22k 47k 100k .meas TRAN Ipk MAX I(C1) .meas TRAN T90 WHEN V(VOUT)21.6 TRIG V(VIN)0 TARG V(VOUT)21.6第一、二行不解释了。第三行测量冲击电流峰值。第四行测量Vout从0爬到21.6V即输入电压的90%所用时间。这两条数据一个代表“冲击电流够不够小”一个代表“上电时间够不够快”正好构成权衡的两个指标。Cg先固定在一个合适的值比如100nF。跑完之后LTspice的log文件里会列出四组数据Rg10k、22k、47k、100k对应的Ipk和T90。把这些数据抄到表格里趋势非常直观。5.3 一眼看穿RC与峰值电流、启动时间、功耗的关系下面是我用类似电路仿真得到的一组典型数据负载电容470μF。实际用不同型号MOS管、不同电容值时数据会有差异但趋势是通用的Rg (kΩ)Cg (nF)Ipk (A)Vout到90%时间 (ms)MOS峰值功耗 (W)10100~8.5~2.0~10022100~5.0~3.5~7047100~3.0~5.0~50100100~1.7~10.0~25100220~1.0~18.0~15看这张表有几个信息量很大的现象第一Rg越大冲击电流越小。这不是因为Rg直接限制漏极电流而是因为Rg减慢了Cg的充电速度让Vgs爬升变慢MOS管在半导通状态停留更久电流上升被“拉平”了。第二启动时间也随着Rg增大而增长。这是必然的代价。第三MOS峰值功耗反而在下降。道理很简单虽然半导通时间变长但横轴拉长了电流峰值低了功率峰值随之下降。对于MOS管来说短时间SOA最怕的是“电流又大、Vds又高”同时出现。把电流峰值压住实际上就是在保护MOS管。这里要特别解释“为什么缓启动越慢越好”是个陷阱。从能量角度看0.5 × C × V²的能量最终大部分耗散在MOS管上这部分总能量基本固定。启动时间拉长平均功耗会下降但启动时间过长会带来两个新问题一是系统长时间处于低输入电压状态下游的DCDC可能一直无法完成启动二是由于MOS管在半个导通区间热量持续积累如果时间特别长瞬态热阻Zth对应的散热能力也可能不够。所以不是越慢越好而是在“电流指标”和“启动时间指标”之间选择一个能满足系统需求的点。以表格里的数据为例如果系统的限流要求是3A以下选Rg47k、Cg100nF就够用启动时间5ms也不拖沓如果要求更苛刻想压到2A以下那就得选Rg100k同时接受10ms的启动时间。5.4 用能量公式复核MOS管会不会过温参数扫描给出波形之后还要做一次热复核。方法很简单先用公式估算总耗散能量约等于 0.5 × C_load × V_in²。以470μF、24V为例E 0.5 × 470μF × 24² ≈ 0.135J。如果选择启动时间5ms平均功耗大约是 0.135J / 5ms 27W。再看你选的MOS管在5ms脉冲、对应Vds条件下SOA曲线能不能允许几十瓦的功耗再看瞬态热阻Zth估算结温是否超限。在LTspice里你可以按住Alt键鼠标左键点MOS管直接得到P(M1)的瞬时功耗波形。波形上能看到峰值功率是否落在SOA范围内。这是很多工程师做仿真时容易漏掉的一步但恰恰是最关键的一步。6. 从仿真回到PCB布局、散热与反复上电的坑6.1 仿真和实测之间那道“看不见的鸿沟”LTspice仿真再准它也是基于你输入的模型和理想假设。常见差异来源包括电源内阻在仿真里是个固定电阻真实电源的等效内阻却随频率、温度变化电解电容在低温下ESR可能升高到常温的数倍导致低温时缓启动波形完全不同仿真模型很少包含封装热阻和结温计算需要我们人工去判断SOAPCB走线寄生电感会在尖峰边沿引入振铃所以仿真是用来“定方向、看趋势”的不是用来代替最终实测的。我在仿真阶段通常会故意把寄生参数加进去比如在电容上串一个ESR电阻在MOS管漏极串一个几nH的电感看看波形会不会恶化。这种“故意加严”的做法能大大提高首板成功率。6.2 缓启动电路的PCB注意点仿真画上句号之后layout才是真正见功夫的地方。缓启动电路对布局有几个明确要求第一输入大电容要尽量靠近MOS管的漏极和系统地缩短高di/dt回路的面积。上电虽然有了缓启动但短路、过载等故障工况下di/dt依然可能很大寄生电感带来的过冲不容小觑。第二Rg和Cg要靠近MOS管的栅极引脚放置。它们是栅极回路的一部分走线太长容易耦合开关噪声造成Vgs波形抖动严重时甚至引起误开关。第三栅极走线尽量不要和漏极开关节点平行走长线。漏极上的dv/dt可以通过寄生电容耦合到栅极导致米勒平台波形畸变。栅极驱动网络下方最好铺地铜皮但要留出足够间隙防止寄生电容改变RC时间常数。第四给关键测试点预留位置。上电波形测量点、MOS管漏源电压测量点、输入电流测量点全部留好焊盘。我见过太多板子做完之后想测电流却找不到地方接探头最后只能瞪眼猜。6.3 实测时示波器连接的建议从仿真到实物第一次上电千万不要直接全压冲击。我的习惯是先低压测试比如24V系统先用5V验证缓启动逻辑波形正常后再升到额定电压在上电回路里临时串一个限流电阻或白炽灯泡万一电路有问题灯泡会先亮起来保护元器件不会违规直接炸管。测Vgs时如果条件允许用隔离差分探头普通无源探头的地线夹会引入额外电感导致测到的振铃失真。测输入电流用直流电流探头或低阻采样电阻。采样电阻的寄生电感会干扰波形最好选四端开尔文结构的电阻。上电测试时还要注意一个问题反复快速插拔电源。很多保护电路只考虑了“从0V开始上电”这一种情况却忽略了“刚断电立刻又上电”时栅极电容可能还有残留电荷缓启动电路不会重新执行导致第二次上电变成硬启动冲击电流打回原形。解决这个问题的方法也很简单在栅源之间并联一个泄放电阻Rgs比如100kΩ。断电时Cg上的电荷通过Rgs放掉保证下次上电时Cg从0开始。Rgs取值不能太小否则上电时它和Rg分压会拉低最终Vgs也不能太大否则泄放太慢。这个细节算是我踩过多次坑之后最深的一个体会。6.4 从路径上彻底避免“硬启动”最后再提一个容易忽略的方向缓启动电路不能只布置在MOS管栅极如果输入源本身是一个很长的线缆上电瞬间线缆充电也会产生冲击。工程上更完整的做法是在输入端口加防反接和防冲击电路的同时用热插拔控制器做整体管理。仿真阶段先用分立RC搞清楚原理产品化阶段再换成专用IC这条路径对新人最友好。另外如果输入电容特别大比如几千微法单靠MOS管的缓启动热应力仍然很大。这时候可以考虑输入级串联PTC热敏电阻或负温度系数功率电阻来分担初始能量缓启动电路负责把电流斜率控制住PTC负责吸收一部分能量。两者配合MOS管的压力会小很多。我在实际调试中最常用的一套流程是先在LTspice里用参数扫描看冲击电流峰值和启动时间锁定了两组左右的目标参数后再按住Alt查看P(M1)功耗波形对照所选MOS管的SOA曲线做一次人工判断。确认无误后再上电实测。按这个流程做下来我后面设计的几款板子几乎都是“一次上电成功”再也没有出现过保险丝断掉、MOS管冒烟的情况。希望这篇内容能帮你在自己的项目里少走一次“上电炸管”的弯路。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进