ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MOS管开关电路实战解析:NMOS/PMOS导通、驱动与防坑指南

MOS管开关电路实战解析:NMOS/PMOS导通、驱动与防坑指南 做硬件的人绕不开MOS管开关电路。我在实验室第一次用PMOS管做12V电源开关时就因为没搞懂“关断”条件板子上电后负载一直有输出差点把后面一级电路烧了。后来回头查资料才明白PMOS关断不是“给高电平就能关”而是必须让栅极电压等于或大于源极电压。这种细节数据手册里不会直接写只有动手做过、踩过坑才能真正记牢。这篇就围绕NMOS管和PMOS管做开关控制电路的完整内容展开。我会从两种管子的导通本质讲起再分别拆解低端开关、高端开关、防倒灌电路以及NMOS与PMOS串联应用在30V电源场景下的半桥结构。全部内容都以我实际调试过的电路为背景涉及的阻值、管型、计算公式都是可以直接抄作业的级别。适合正在学模电的电子爱好者、刚接触嵌入式硬件开发的学生以及被MOS管开关电路折磨过的工程师参考。1. 为什么开关电路首选MOS管三种方案先排个雷1.1 继电器、三极管、MOS管的真实取舍做开关控制电路方案并不是只有MOS管一种。早年我做过一个电池供电的负载控制模块最开始用的继电器后面换成了三极管再后来才改成MOS管。单看某一个指标它们各有优势但放到“单片机控制、电池供电、高频开关、低功耗”这种实际场景里差距就出来了。方案驱动电流开关速度导通压降寿命/体积适用场景继电器mA级线圈慢ms级接触电阻极小机械寿命有限体积大工频AC负载、高压大电流隔离开关NPN/PNP三极管需要持续基极电流中us级Vce(sat)约0.2~0.5V无机械磨损体积小小电流信号开关、LED驱动MOS管栅极几乎无持续电流快ns~us级导通时Rds(on)压降可低至几mV~几十mV无机械磨损体积小电源通断、PWM调速、低功耗负载继电器的问题是线圈耗电大、响应慢不适合PWM调光调速这种高频场景。三极管在导通时CE之间始终有一个饱和压降如果电流到1A以上Vce(sat)按0.3V算就有0.3W的发热对电池供电的电路来说很难接受。MOS管不一样它在完全导通时D极和S极之间等效为一个很小的电阻Rds(on)比如AOD4184这种中小功率管Vgs10V时Rds(on)典型值才8mΩ通过3A电流时压降只有24mV功率损耗约72mW。这个优势在低电压大电流场景下几乎是碾压性的。但是MOS管也有它的脾气栅极虽然是绝缘的但它有结电容开关瞬间需要一定的充放电电荷而且Vgs不能无限高超过器件极限会直接击穿栅氧化层。这些问题会在后面逐个讲到。1.2 NMOS和PMOS到底怎么导通看Vgs这扇门NMOS和PMOS最本质的区别一句话就能说清NMOS用正压开PMOS用负压开。这里说的“压”就是指Vgs也就是栅极G相对源极S的电压差。对于N沟道增强型MOS管当Vgs大于阈值电压Vgs(th)时栅极下方的P型衬底表面会感应出N型反型层形成导电沟道D和S之间就导通了。Vgs越高沟道电阻越低。因为电子迁移率比空穴高同样的工艺尺寸下NMOS的Rds(on)通常能做到更小成本也更低。这就是市面上功率稍大的NMOS管比PMOS管便宜、好买的原因。对于P沟道增强型MOS管正好反过来需要Vgs小于负的阈值电压也就是让栅极电压比源极电压低到一定程度才会形成空穴导电沟道。从应用层面看可以这样理解NMOS的S极电位是“基准”G极电位要比S极电位高管子才导通PMOS的S极电位是“高位”G极电位要比S极电位低管子才导通。这两个导通条件直接决定了它们在开关电路里的接法也决定了很多新手一上来就接错的地方。我用一个生活化的类比帮助记忆把S极比作大门门槛的高度G极比作你要迈过去的脚。NMOS是门槛在低处你抬脚高过门槛就迈过去了PMOS是门槛在高处你得把脚压到比门槛低才能从门缝下面过去。虽然不太严谨但记住“NMOS高电平导通、PMOS低电平导通”这个大方向应付绝大多数电路设计足够了。2. NMOS管做低端开关搭起来最简单坑也不少2.1 低端开关的标准接法与导通原理NMOS最经典的用法是低端开关。所谓“低端”指的是MOS管放在负载和地之间负载一端接电源正极另一端接NMOS的D极NMOS的S极直接接地G极接控制信号。单片机IO口输出高电平时Vgs大约是3.3V或5V只要超过Vgs(th)D-S之间就变成低电阻负载得到完整电压IO口输出低电平时Vgs≈0管子截止负载断电。这种接法最大的优点是驱动简单。因为S极是固定的0V系统里任何3.3V或5V的逻辑信号都可以直接作为Vgs使用不需要做电平转换。低端开关在大电流场景下也能轻松用满NMOS的低Rds(on)优势所以我做锂电池保护、LED灯带控制、电机PWM调速时只要是低压系统第一选择基本都是NMOS低端开关。选型时重点关注三个参数Vgs(th)阈值电压、Vds耐压、Rds(on)。做3.3V单片机控制时建议挑Vgs(th)在0.5V到1.5V之间的逻辑电平MOS管比如SI2302它的Vgs(th)典型值不到1.2V3.3V驱动时能基本导通。如果用传统功率管如IRF540Vgs(th)高到2~4V3.3V驱动根本不敢保证完全导通管子会工作在线性区发热量大得吓人。这一点是很多人“为什么管子烫手”的根源。2.2 栅极电阻和下拉电阻该怎么选低端开关基本电路搭起来容易但有两个电阻必须认真对待栅极串联电阻Rg和栅源下拉电阻Rgs。串联在G极和单片机IO口之间的Rg作用主要是限制栅极电容的充放电电流抑制开关瞬间的振铃和EMI。MOS管的栅极不是纯电阻性负载它等效为一个电容典型输入电容Ciss在几百pF到几nF之间。当IO口瞬间输出高电平时如果没有Rg栅极电压会出现严重的过冲特别在走线较长、源端阻抗较低的情况下甚至能看到Vgs超过额定值导致GS击穿。Rg常规取10Ω到100Ω频率越高、对EMI越敏感取值就偏大一些。如果是纯软件开关、速度要求不高取100Ω很稳。栅源之间的Rgs作用是给栅极提供一个确定的电位防止G极悬空时MOS管误动作。单片机刚上电、IO口还没配置完成的几十毫秒里引脚处于高阻态如果G极悬空NMOS极容易因为外界耦合或体内漏电而误导通造成负载在上电瞬间闪一下。Rgs一般取值10kΩ到100kΩ。注意这个电阻不要取太小因为它会和单片机内部的上拉/下拉电阻形成分压可能影响IO口电平判断我常用的值是100kΩ。顺便说一句栅极串联电阻和下地电阻不是NMOS专属PMOS电路同样需要。甚至因为PMOS常常被用在电源通路上栅极悬空导致的风险更大上下拉电阻的取值更要谨慎。2.3 NMOS能做高端开关吗为什么没那么简单有朋友问过我NMOS能不能放在高端也就是D接电源、S接负载我说能做但你要自己解决一个麻烦当NMOS导通后S极电压会被拉到接近电源电压这时候VgsVg-Vs如果你的Vg还是单片机给的3.3V或5V那么Vgs很可能接近0V甚至负值管子瞬间退出完全导通状态负载上的电压根本到不了电源电压管子还会在截止区边缘发热。要让NMOS真正工作在高端必须给栅极提供一个比电源电压更高的驱动电压这就是“自举升压”或者用专门的栅极驱动芯片的思路。自举电路最简单的形式是一个电容加一个二极管下管导通时电容被充电到接近电源电压下管关断、上管需要导通时电容把存储的电荷“抬”到VCC之上给高端栅极提供高于VCC的驱动电压。这里面的时序配合和器件参数调起来比较麻烦而且自举电容的容量、频率、占空比都会影响驱动效果。所以在分立元件方案里凡是要做高端开关我几乎不会用NMOS。要么直接用PMOS要么用半桥驱动芯片内部集成的高端驱动。NMOS虽然性能好但高端应用的门槛高这也是为什么做高端开关时大家宁可接受PMOS较差的Rds(on)也要图它驱动简单可靠。3. PMOS管做高端开关电平匹配才是核心3.1 高端开关的标准接法为什么PMOS天然合适PMOS做高端开关时S极直接接电源正极D极接负载负载另一端接地G极接控制电路。关键来了由于S极固定在高电位只要让G极电位比S极低到超过|Vgs(th)|管子就能导通。举个例子12V电源系统里S极电压是12VG极通过一个下拉路径拉到0V那么Vgs-12V对绝大多数PMOS管来说这就是彻底导通的电压想把管子关断就把G极电位拉向12V让Vgs≈0V沟道不导通。这个特性意味着PMOS天然适合做高端开关因为它不需要像NMOS那样额外生成一个高于电源的驱动电压直接从电源侧“向下拉”栅极即可。不过这里有个容易忽略的点所谓“把G极拉向12V”不能只是把栅极悬空你必须有明确的拉高路径。我看到过有人直接把PMOS的G极接一个电阻到MCU的IO口想着IO输出高电平3.3V结果算一下Vgs3.3V-12V-8.7VPMOS仍然是导通状态负载根本关不掉。这就是我文章开头说的那次翻车现场。所以PMOS高端开关电路真正要解决的是“关断时如何让G极电压等于或者高于S极电压”注意不是“给IO口高电平”。3.2 3.3V单片机控制12V PMOS的电平转换电路3.3V MCU直接控制12V PMOS光靠IO口高低电平是行不通的。IO口高电平3.3V对应Vgs-8.7V管子关不掉IO口低电平0VVgs-12V管子能导通。所以你会看到管子永远导通不管IO口怎么切换。正确的做法是用一只NPN三极管来做电平转换。电路结构是这样PMOS的G极通过一个电阻R1上拉到12V电源同时G极通过R2接到NPN三极管的集电极NPN的发射极接地基极通过R3接MCU IO口。MCU输出高电平时NPN饱和导通G极被拉低到接近0VVgs≈-12VPMOS导通MCU输出低电平时NPN截止G极通过R1被上拉电阻拉到12VVgs≈0VPMOS关断。这个电路看似简单里面有几个参数需要算清楚。R1既承担关断时给G极充电的作用又要在NPN导通时作为集电极电流的限流电阻。取值太小NPN截止时上拉速度快但NPN导通时电流大、功耗高取值太大关断时G极充电慢导致PMOS缓慢关断可能会在关断过程中长时间停留在线性区发热。我常用10kΩ作为R1。R2建议取1kΩ左右它可以防止G极到地之间出现意外振荡时直接冲击三极管也能在稳压保护时限制电流。R3的取值取决于三极管放大倍数和IO口驱动能力一般取1kΩ到4.7kΩ保证IB(3.3V-0.7V)/R3能覆盖IC/β的饱和度需求。还有一个细节如果电源电压较高比如30VPMOS的Vgs-30V往往已经超过绝大多数PMOS的Vgs极限通常是±20V这时不能直接把G极拉到0V必须用稳压管把Vgs钳位在安全范围。具体做法是在GS之间并联一个12V稳压管阴极接S阳极接G当G极被拉低时Vgs最大被钳位在-12V左右既保证管子充分导通又不会击穿栅极。这个保护在很多高压开关电路里是必须的别嫌麻烦省掉。3.3 PMOS管防倒灌电路一个容易被忽略的细节点防倒灌这个话题在电池供电和双电源切换系统里很常见。典型场景是系统同时存在主电源和备用电池正常情况下主电源向负载供电主电源掉电时切换到电池供电但主电源恢复瞬间不能有电流倒灌回主电源否则轻则烧保险丝重则击穿后端电容甚至引发爆炸。最简单的防倒灌电路是用一个PMOS串联在电源进入方向利用体二极管和沟道的单向性实现电源路径管理。单个PMOS的防倒灌电路通常这样接PMOS的S极接输入电源正极D极接输出负载侧G极接输入电源侧或通过控制电路控制。正常工作时输入电压施加在S和D之间体二极管正向导通先建立输出电压同时Vgs满足导通条件时沟道也导通压降进一步降低。当输入电压掉电或外部电源给D极注入电流时体二极管反偏反向电流被阻断。但要注意单管PMOS防倒灌存在盲区因为体二极管方向是固定的如果你正好接反体二极管就会变成畅通的倒灌路径。很多工业模块里采用的方案是两个PMOS背靠背串联也就是两个管子的S极对S极接在一起两个G极接在一起两个D极分别接输入和输出。这样无论电流从哪个方向来总有一个体二极管处于反偏状态再加上沟道受控导通就能做到真正的双向阻断。我做辅助电源防倒灌时就是用了这个结构实测反向漏电流在常温下可以做到微安级以下。4. 30V电源场景NMOS与PMOS串联组成的开关电路4.1 串联拓扑到底是什么半桥结构的拆解最近很多人在搜“NMOS管与PMOS串联接30V电源”之类的问题。这里所谓“串联”最常见的解读就是半桥结构上面是一个PMOS做高端开关下面是一个NMOS做低端开关两个管子串联在电源和地之间中间节点作为输出。高端PMOS的S极接30V电源D极接输出节点低端NMOS的D极也接输出节点S极接地两个管子的G极分别由控制信号驱动。这种组合在中小功率电源控制里非常流行。选PMOS做高端是因为它可以用较低成本的简单驱动电路实现30V侧的开断选NMOS做低端是因为NMOS的Rds(on)小低端驱动也不需要升压电路。两个管子各取所长合在一起就能输出可控的高电平和低电平驱动负载甚至构成最基础的推挽输出。拿30V电源举例当高端PMOS导通、低端NMOS截止时输出节点被拉到接近30V负载两端承受正向电压当高端PMOS截止、低端NMOS导通时输出节点被拉低到接近0V负载两端电压反向或断开。这种“一上一下”的工作模式本质上就是半桥。4.2 30V电源下的直通风险与死区处理NMOS和PMOS串联最危险的问题不是选型而是直通。直通就是上下两个管子同时导通相当于30V电源经过两个低阻MOS管直接短路到地瞬间电流可以到几十安培轻则炸管子重则把PCB的铜皮烧掉。为什么会同时导通因为控制信号存在上升沿和下降沿。理想情况下MCU或控制器的两路PWM是互补的但实际电路中驱动信号经过三极管、栅极电阻、栅极电容这些路径后上升时间和下降时间不可能完全一致。如果关断慢、导通快就会出现一小段“重叠时间”两个管子同时处于导通状态。比如低端NMOS已经导通了高端PMOS还没来得及关断30V电源就通过上管和已经导通的低管直通到地。解决办法就是插入死区时间也就是让上下两路信号之间留出一段“全关断”的间隔。软件方式是在PWM配置里设置死区寄存器硬件方式可以在栅极驱动路径上加大Rg故意让关断稍微滞后或者导通稍微延时形成不需要软件干预的硬件死区。我做过一个30V的半桥驱动两路PWM之间插入了1.5微秒的死区用示波器观察中间节点电压波形已经完全看不到明显的贯穿尖峰了。死区也不是越长越好太长会导致输出电压有效值降低、波形失真一般根据MOS管的关断时间和栅极电阻调整。4.3 用分立元件搭30V半桥开关的分步实操下面给出一套我实际调试过的分立元件方案电源电压30V控制信号来自3.3V MCU输出用于驱动一个阻性负载。第一步选管。高端PMOS要求Vds耐压至少留1.5倍余量我选的是AO3407Vds-30VVgs极限±20VRds(on)典型值约24mΩ低端NMOS选的是AOD4184Vds40VVgs极限±20VRds(on)典型值约8mΩ。这里要注意AO3407的Vds极限正好是30V用在30V系统里余量不够理想如果实际电压有波动建议换Vds-60V以上的型号。第二步搭驱动。高端PMOS的S极接30VG极通过10kΩ电阻上拉到30VG极再通过1kΩ电阻接到一个NPN三极管的集电极NPN发射极接地基极串联4.7kΩ接MCU。同时在PMOS的GS之间并联一个12V稳压管阴极接S、阳极接G防止G极被拉低时Vgs超过-30V。低端NMOS的G极通过100Ω电阻接MCUGS之间并联100kΩ下拉电阻。第三步做死区。软件上让高端控制和低端控制之间插入至少1微秒至2微秒的死区如果MCU没有硬件死区功能可以在输出比较中断里用定时器简单实现也可以在硬件上给低端NMOS的栅极串一个较大的Rg让它的导通稍微慢一点。第四步上电验证。先不上负载用示波器同时测量输出节点电压和电源电流。正常现象应该是高端导通时输出接近30V低端导通时输出接近0V切换瞬间的电流尖峰在死区范围内明显回落。如果发现切换瞬间电流尖峰仍然很大就把死区时间进一步加大或者把低端NMOS的栅极电阻从100Ω适当增加到220Ω让它的开通沿更缓。这套分立方案的成本很低性能也足够驱动一般的阻性负载。但如果你要驱动的是大功率电机或者要做高频PWM建议还是用集成半桥驱动芯片比如IR2104这类它们自带死区和自举功能可靠性比纯分立方案高一个量级。5. 开关电路常见问题与排查技巧实录5.1 从故障现象倒推根因MOS管发烫、关不断、一上电就通故障排查是最考验经验的部分。我把这两年调试MOS管开关电路遇到的高频问题整理一遍每个问题都附上排查思路。MOS管发烫是最常见的问题。发烫的本质只有一个管子没有工作在完全导通或完全截止状态而是工作在线性区这时候D-S之间等效为一个较大的电阻持续消耗能量变成热量。具体原因一般是Vgs不够高比如3.3V系统直接驱动一个Vgs(th)高达2V以上的普通NMOS管子只能半导通或者开关频率太高MOS管反复在线性区穿越开关损耗急剧增加又或者散热焊盘没处理好明明管子导通损耗很小热量却散不出去。排查时先用示波器量Vgs波形和Vds波形看管子切换时有没有明显的“缓坡”再算一下理论损耗是否和发热匹配。MOS管关不断也就是控制信号为截止电平但负载仍然有电。如果是PMOS高端开关先测S极和G极之间的电压差确认是否真的为0V左右。很多时候是上拉电阻没接或者NPN三极管没有彻底截止导致G极电位被其他路径拉低。如果是NMOS低端开关重点检查G极是否下拉到了0V以下以及负载是否通过体二极管形成了旁路回路。记住MOS管的体二极管在管子关断时依然存在如果电路结构恰好让体二极管正向导通关断就会失效这在继电器、电机这类感性负载回路里尤其常见。一上电就导通的问题十有八九是栅极悬空造成的。单片机上电瞬间IO口处于高阻态栅极电压不确定耦合噪声就可能超过阈值电压引起误导通。解决办法是在GS之间加一个100kΩ下拉或上拉电阻让栅极在控制信号到达之前保持确定的截止电平。如果加了电阻仍然误导通就要检查电源上电时序特别是多路电源系统里控制信号先于功率电源到达的情况。5.2 示波器测量MOS管波形的两个致命陷阱用示波器看MOS管波形时最容易犯的两个错一个是地线夹环路一个是参考点选错。示波器探头的地线夹如果夹得太远波形上会出现高频振荡甚至毛刺这并不是电路真实工作状态而是地线夹形成的环路电感耦合出来的假象。正确做法是把探头的地线尽量缩短最好用探头自带的接地弹簧直接接触被测点附近的GND。我在测半桥输出节点时习惯用两根等长探头同时测输出和地然后做差分这样能看到最真实的开关波形。参考点选错是另一个高发问题。测PMOS的Vgs时探头夹子应该夹在S极而不是系统地。因为PMOS的S极往往接在电源正上和系统地之间存在几十伏的电位差如果探头地线夹在系统地测出来的Vgs完全是错的还会把示波器探头的地线夹和电源系统短接。很多初学者量PMOS波形时一脸懵多半就是这个原因。测量时先把探头夹子接到S极再用探针触G极这才是真正的Vgs。5.3 常见问题速查表我把上面这些经验整理成一张速查表调试时对照着查能省不少时间。故障现象可能原因排查要点上电瞬间负载闪一下栅极悬空、IO口时序未就绪GS间加100kΩ下拉/上拉电阻确认上电时序管子一直导通关不掉PMOS的Vgs未归零、NMOS栅极被旁路测Vgs是否等于0V检查上拉/下拉电阻和NPN三极管管子发热严重Vgs不足、线性区工作、频率过高示波器看Vgs上升沿对比选型Vgs(th)与Rds(on)开关瞬间波形有振铃栅极电阻太小、地线环路Rg加大到47~100Ω缩短探头地线GS被击穿短路Vgs超压、静电损坏加12V稳压管钳位焊接时做好防静电30V系统直接拉低G极炸管Vgs超过器件极限GS并联稳压管或采用分压结构带电机/继电器时尖峰大感性负载反电动势D-S两端并联续流二极管或TVS半桥上下管同时烧毁直通缺少死区软件加死区或增大栅极电阻延迟开通5.4 再分享一个调试小习惯我最近几年做MOS管电路每次改完板子都要先测三组电压Vgs、Vds、Vg对地的电压。这三组电压能快速判断管子到底工作在什么状态比自己闷头看电路图效率高得多。特别是PMOS电路只要一看Vg相对S极的电压差立马就知道是不是驱动电平的问题。这个习惯帮我省掉了不少返工时间新来的同事我也都这么要求。不管是NMOS还是PMOS做开关控制电路的核心就一句话把Vgs算清楚、把栅极回路的电位关系控制住剩下的就是选型耐压余量和散热的问题了。希望这篇能帮你少踩几个坑也欢迎拿着你的实际电路来讨论。
返回列表