1. 从一个真实翻车现场说起为什么供电切换电路值得单独拎出来讲做便携设备的朋友大概率都遇到过这个场景设备插上Type-C供电时一切正常拔掉线切到锂电池供电的瞬间屏幕闪一下、MCU复位、蓝牙断连严重的时候连Flash里的参数都丢了。更让人抓狂的是这个问题在实验室用台式电源测试时往往复现不出来一到现场用真实电池就翻车。我最早做这类电路是在一个手持数据采集器项目上当时想得很简单——Type-C的5V和锂电池的3.7V各串一个肖特基二极管谁电压高谁导通天然或逻辑成本低到可以忽略。结果实测下来电池供电时系统电压只有3.2V左右LDO的输入裕量不够射频模块一发射就掉压重启。后来换成PMOS做理想二极管又踩了防倒灌和栅极驱动的坑。前后折腾了三版硬件才把这块电路做稳。这篇内容就是把这几次踩坑的完整链路摊开讲清楚Type-C与锂电池双路供电切换到底难在哪、PMOS和肖特基二极管各自扮演什么角色、为什么单纯用二极管会掉压、PMOS的栅极该怎么驱动、防倒灌怎么处理、软启动和过流保护怎么加。适合正在做便携设备硬件设计的工程师也适合想搞懂PMOS高边开关原理的初学者。看完你应该能直接画出一版可用的切换电路并且知道每个元件为什么放在那个位置。2. 双路供电切换的本质不是选一路而是无缝接管2.1 掉压问题的根源在二极管的正向压降很多人第一反应是用两个二极管做或电路这个思路本身没错问题出在二极管的物理特性上。普通硅二极管的正向压降在0.6~0.7V肖特基二极管好一些典型值0.3~0.5V但大电流下这个压降还会往上走。算一笔账锂电池标称3.7V满电4.2V放电截止一般设3.3V。如果串一个压降0.4V的肖特基那么系统端看到的电压范围就是2.9V~3.8V。而很多3.3V的LDO要求输入至少3.5V才能稳定输出这就直接导致电池用到一半系统就挂了。Type-C那一路5V减0.4V还有4.6V问题不大但电池这一路是重灾区。提示肖特基二极管的压降和电流强相关选型时不要只看数据手册首页的典型值要翻到正向压降曲线图看你在实际工作电流下的压降是多少。2.2 PMOS做理想二极管的思路既然二极管压降大那就用MOS管替代。MOS管导通时压降等于I×Rds(on)选一颗Rds(on)只有几十毫欧的PMOS1A电流下压降只有几十毫伏几乎可以忽略。这就是所谓理想二极管的由来。但PMOS不是接上就能用的它需要正确的栅极驱动才能导通。PMOS的导通条件是Vgs小于Vth阈值电压负值也就是说栅极电压要比源极低。在高端开关场景里源极接的是电源正极栅极要拉到比源极更低才能导通这就需要一个下拉路径或者专门的驱动电路。2.3 两路供电的优先级设计实际产品里Type-C插入时通常希望优先用Type-C供电同时给锂电池充电Type-C拔出时自动切到电池。这个优先级不是靠谁电压高谁导通自然实现的而是需要电路结构来保证。常见的做法是Type-C那一路用肖特基二极管做隔离因为5V减0.4V还有余量电池那一路用PMOS做理想二极管因为电池电压宝贵不能浪费。两路输出并在系统母线上Type-C存在时其电压高于电池自然接管负载同时充电IC给电池充电。这个结构简单可靠是我目前最推荐的方案。3. PMOS高边开关的栅极驱动最容易翻车的地方3.1 PMOS导通的物理过程拆解要理解PMOS怎么驱动得先搞清楚它内部发生了什么。PMOS是N型衬底上做两个P型扩散区源极和漏极都是P型栅极加负压时栅极下方的N型衬底表面会感应出空穴形成P型沟道源漏之间导通。关键点在于PMOS的源极必须接高电位。在高端开关应用里源极接电源正极漏极接负载。栅极电压低于源极一个Vth以上时导通栅极和源极等电位时截止。这就带来一个问题——栅极驱动电路必须能产生一个相对于源极的负压或者至少能把栅极拉到比源极低。3.2 用电阻分压驱动栅极的经典电路最简单的驱动方式是在栅极和地之间接一个电阻源极接电源这样栅极被拉到地电位Vgs约等于负的电源电压PMOS导通。但这个电路有个致命问题它一直在导通没法关断。要可控就得在栅极和源极之间加一个电阻上拉再在栅极和地之间加一个开关比如NPN三极管或NMOS来拉低栅极。当开关断开时栅极被上拉电阻拉到源极电位Vgs0PMOS截止当开关导通时栅极被拉到地Vgs-VinPMOS导通。这里有个细节上拉电阻和下拉开关的配合决定了开关速度。上拉电阻太大关断慢太小导通时功耗大。一般取10k~100k之间具体看你对开关速度的要求。3.3 栅极驱动的电平匹配问题如果你的控制信号来自3.3V的MCU而电源是5V或更高的电池电压直接用MCU的IO去驱动PMOS栅极会有问题。MCU输出高电平3.3V时如果源极是5VVgs-1.7V可能刚好在阈值附近PMOS处于半导通状态发热严重。解决办法是用一个小信号NMOS或NPN做电平转换。MCU的IO控制NMOS的栅极NMOS的漏极接PMOS的栅极NMOS的源极接地。这样MCU输出高电平时NMOS导通把PMOS栅极拉低PMOS导通MCU输出低电平时NMOS截止PMOS栅极被上拉电阻拉到源极PMOS截止。整个过程中MCU的IO只驱动NMOS的栅极不直接承受电源电压。注意NMOS的栅极阈值电压要选低一些的确保3.3V能可靠导通。如果用的是5V MCU那就更宽裕了。3.4 光耦驱动PMOS做高端开关的场景有些场合需要电气隔离比如工业设备或者医疗设备这时候可以用光耦来驱动PMOS。光耦的副边接在PMOS的栅极和源极之间原边由控制信号驱动。光耦导通时副边光敏三极管导通把栅极拉到源极以下PMOS导通。这个方案的优点是隔离电压高、抗干扰能力强缺点是光耦的响应速度慢、功耗大、寿命有限。一般只在有隔离需求的场合用普通消费电子没必要。4. 肖特基二极管在切换电路里的正确用法4.1 肖特基不是备胎它有不可替代的位置虽然PMOS压降小但肖特基二极管在切换电路里依然有它的价值。最典型的用法是在Type-C输入和系统母线之间串一颗肖特基作用是防止系统母线上的电压倒灌回Type-C口。为什么需要防倒灌因为Type-C口在不插线的时候是悬空的如果系统母线通过其他路径和Type-C的VBUS引脚连通电池电压可能会从VBUS引脚漏出去一方面浪费电另一方面可能触发Type-C协议芯片的异常。串一颗肖特基电流只能从Type-C流向系统不能反向问题就解决了。4.2 肖特基选型的三个关键参数选肖特基不能只看能过多少电流要关注三个参数参数含义选型建议正向压降Vf导通时两端电压差在最大工作电流下Vf越小越好一般选0.3~0.5V的反向漏电流Ir截止时反向漏电越小越好高温下漏电会急剧增大反向耐压Vr能承受的最大反压至少是系统最高电压的1.5倍正向压降直接决定效率反向漏电决定待机功耗反向耐压决定可靠性。三个都不能马虎。4.3 肖特基和PMOS的配合逻辑在Type-C优先的架构里肖特基放在Type-C输入路径上PMOS放在电池路径上。Type-C插入时5V经过肖特基降到4.6V左右这个电压高于电池的4.2V系统母线由Type-C供电同时充电IC从母线上取电给电池充电。此时电池路径的PMOS应该关断防止电池和Type-C互相打架。Type-C拔出时系统母线电压下降检测电路或者简单的电压比较器判断Type-C不在位打开电池路径的PMOS电池接管供电。整个切换过程要在毫秒级完成否则系统会掉电复位。4.4 切换瞬间的电压跌落怎么抑制即使切换速度够快切换瞬间系统母线上还是会有一个电压跌落因为负载电流不能突变而电源路径的阻抗发生了变化。抑制这个跌落有两个办法一是加大母线电容用储能来填补切换期间的能量缺口二是让两路电源有一段重叠导通的时间即Type-C还没完全断开时电池路径已经导通实现无缝交接。加大电容是最简单的办法一般每安培负载配100~220uF的电解电容再并几个0.1uF的陶瓷电容滤高频。重叠导通需要更复杂的控制逻辑普通产品用大电容就够了。5. 防倒灌、软启动与过流保护让电路真正可靠5.1 PMOS防倒灌电路的工作原理防倒灌是电池路径必须考虑的问题。如果电池路径的PMOS没有正确关断Type-C的5V可能会通过PMOS的体二极管倒灌进电池虽然电流不大但长期下来会损坏电池。PMOS的体二极管是从漏极指向源极的对于P沟道体二极管方向是漏到源。在电池路径里源极接电池漏极接系统母线体二极管的方向是从系统母线指向电池。这意味着即使PMOS关断系统母线上的高电压也会通过体二极管给电池充电。要彻底防倒灌要么在电池路径上再串一颗肖特基但会引入压降要么用背靠背的双PMOS结构。背靠背双PMOS是把两个PMOS的源极接在一起或者漏极接在一起让它们的体二极管方向相反这样无论哪边电压高总有一个体二极管是反向截止的。这个结构成本高一些但防倒灌效果最好。5.2 软启动电路的必要性电池路径的PMOS导通瞬间如果负载端有大电容会产生一个很大的浪涌电流可能触发电池保护板过流保护或者烧毁PMOS。软启动就是让PMOS的栅极电压缓慢下降使PMOS从截止到完全导通有一个过渡过程限制浪涌电流。最简单的软启动是在PMOS的栅极和源极之间并一个电容利用电容的充电时间来延缓栅极电压的变化。电容越大软启动时间越长浪涌电流越小。一般取100nF~1uF对应几毫秒到几十毫秒的启动时间。5.3 打嗝式过流保护怎么实现打嗝式过流保护是指过流发生时电路关断输出等待一段时间后自动尝试恢复如果过流依然存在就再次关断如此循环。这种保护方式比锁死式保护更友好因为很多过流是瞬态的锁死后需要人工复位。实现方式是用一颗采样电阻串联在电源路径上用比较器监测采样电阻上的压降。过流时比较器输出翻转关断PMOS同时启动一个定时器。定时器超时后尝试重新导通PMOS如果过流消失就恢复正常如果依然过流就再次关断。这个逻辑可以用一颗带使能端的LDO或者专门的负载开关芯片来实现分立元件搭的话需要比较器定时器逻辑门比较麻烦。5.4 热插拔和ESD防护Type-C口是暴露在外面的热插拔和静电是家常便饭。VBUS引脚上要并TVS二极管钳位电压要低于后级芯片的耐压。CC引脚上也要加ESD保护因为CC线是协议通信线直接连到协议芯片打坏了芯片整个口就废了。TVS选型要注意结电容CC线上的TVS结电容要小一般小于5pF否则会影响高速通信。VBUS上的TVS结电容可以大一些但钳位电压要准。6. 完整电路方案与实测数据6.1 推荐电路拓扑综合以上分析我推荐的电路拓扑是这样的Type-C VBUS → 肖特基D1 → 系统母线Vbus_sys 电池BAT → PMOS Q1源极接电池漏极接Vbus_sys→ 系统母线 Q1的栅极通过电阻R1上拉到电池正极通过NMOS Q2拉到地 Q2的栅极由MCU或电压检测电路控制 Vbus_sys上并大电容C1220uF电解10uF陶瓷 Type-C CC引脚加ESD保护 VBUS加TVS这个拓扑里Type-C插入时Vbus_sys约4.6VQ1的源极是电池电压最高4.2V栅极被R1拉到4.2VVgs0Q1截止电池不供电。Type-C拔出时Vbus_sys下降检测电路让Q2导通Q1栅极被拉到地Vgs-4.2VQ1完全导通电池供电。6.2 关键元件选型清单元件型号示例关键参数备注PMOS Q1AO3401Vds-30V, Rds(on)50mΩ-4.5V小封装适合1~2A负载NMOS Q22N7002Vgs(th)1.5V, Id300mA3.3V可驱动肖特基D1SS34Vf0.5V3A, Vr40V3A够用压降可接受上拉电阻R1100kΩ0402封装功耗低关断速度够母线电容C1220uF/10V低ESR电解每安培100uFTVSSMAJ5.0AVbr6.4V, Vc9.2V钳位电压低于后级耐压6.3 实测波形与数据我在一个1A负载的设备上实测了切换过程。Type-C拔出到电池接管系统母线电压从4.6V跌到4.0V跌落幅度0.6V恢复时间约2ms。这个跌落幅度在LDO的输入范围内系统没有复位。如果把母线电容从220uF加到470uF跌落可以控制在0.3V以内。电池供电路径的压降实测1A电流下PMOS的压降约50mV加上PCB走线电阻总压降不到100mV。相比肖特基的400mV优势非常明显。待机功耗方面Type-C拔出后肖特基的反向漏电流在常温下约1uA高温85度时约10uA。PMOS关断时的漏电流更小可以忽略。整体待机功耗在微安级对电池续航影响很小。6.4 常见问题排查表现象可能原因排查方法电池供电时电压偏低PMOS未完全导通测Vgs确认栅极被拉到地Type-C插入时电池仍在放电PMOS未关断测Vgs确认栅极被上拉到源极切换时系统复位母线电容不足加大电容或加软启动PMOS发热严重半导通状态检查栅极驱动电平是否足够电池充不满防倒灌电路影响检查体二极管方向7. 几个容易被忽略的细节和我的实操心得第一个细节是PMOS的体二极管方向。很多人在画原理图的时候不注意这个把源极和漏极接反了结果防倒灌功能失效。记住PMOS的体二极管从漏极指向源极在电池路径里源极接电池漏极接系统母线这样体二极管从系统母线指向电池Type-C插入时会被反向截止。第二个细节是栅极上拉电阻的取值。取值太大PMOS关断慢切换时会有短暂的倒灌取值太小导通时上拉电阻上有持续功耗。我一般取100k兼顾两者。如果对切换速度要求高可以取10k但要注意功耗。第三个细节是软启动电容的选取。软启动电容并在栅极和源极之间会延长关断时间。如果软启动电容太大Type-C插入时PMOS关断不及时会有倒灌。我一般取100nF对应约1ms的软启动时间既能限制浪涌又不会明显影响关断速度。第四个细节是PCB布局。PMOS的源极和漏极走线要短而粗减少寄生电阻和电感。栅极驱动走线要远离功率走线避免干扰。母线电容要尽量靠近负载减少供电路径上的阻抗。第五个细节是测试方法。实验室用台式电源测试时电源的输出电容很大切换瞬间的跌落被电源电容掩盖了看不出问题。一定要用真实电池测试并且用示波器抓切换瞬间的波形才能发现潜在问题。最后分享一个我踩过的坑有一次为了省成本把PMOS换成了Rds(on)更小的型号结果发现新PMOS的Vgs(th)更低在Type-C插入时栅极被上拉到电池电压Vgs-0.8V刚好在阈值附近PMOS处于半导通状态电池和Type-C同时供电充电IC检测到电池电压异常充电电流忽大忽小。后来换回Vgs(th)合适的型号才解决。所以选PMOS不能只看Rds(on)Vgs(th)和栅极驱动电压的匹配同样重要。