UVLO欠压锁定设计指南:从原理到DC/DC实战与HSPICE仿真
1. 从一个被忽视的细节说起为什么你的DC/DC上电就炸管搞电源或者做芯片应用的人大概都遇到过这种场景板子焊好上电输出还没起来功率管先冒烟了。或者更隐蔽一点——输入电压缓慢爬升的过程中输出出现一段莫名其妙的震荡示波器上看着像打嗝负载端设备反复重启。排查一圈电感没问题电容没接反反馈电阻也算对了最后发现罪魁祸首是一个很多人觉得“不重要”的模块UVLO欠压锁定。UVLO这三个字母全称Under Voltage Lockout。直译就是“电压不够就别干活”。它不是一个具体的器件而是一种保护机制广泛存在于DC/DC转换器、LDO、栅极驱动芯片、甚至CMOS逻辑电路的上电复位模块里。核心逻辑极其朴素当输入电压低于某个阈值时把输出强制关断让整个电路处于“锁定”状态直到电压回升到安全区间才放行。听起来简单但实际工程里UVLO的阈值怎么定、迟滞留多少、响应速度多快、和软启动怎么配合每一个都是坑。这篇内容适合谁看如果你是刚入行的硬件工程师正在调第一块DC/DC板子那UVLO是你必须吃透的基础保护环节如果你是在校学生正在学CMOS电路或者用HSPICE做仿真UVLO也是一个非常好的练手电路麻雀虽小五脏俱全里面涉及比较器、基准源、迟滞逻辑、驱动级能把模拟电路的基本功串一遍如果你是嵌入式软件工程师理解UVLO能帮你搞明白为什么系统上电时MCU有时候会反复复位硬件层面到底在干什么。我自己的经验是UVLO这个东西看文档觉得“就这”真到调试的时候它能让你在实验室耗掉一整个下午。所以这篇内容不打算只讲教科书上的定义而是从设计思路、参数计算、仿真验证、实测排查几个维度把UVLO这个东西拆开揉碎讲清楚。后面会涉及HSPICE仿真、CMOS实现、DC/DC应用场景尽量做到你看完能自己动手搭一个。2. UVLO到底在保护什么核心逻辑与设计思路拆解2.1 输入电压不够时功率管为什么危险要理解UVLO的必要性得先知道输入电压偏低时电路里发生了什么。以最常见的降压DC/DC为例上管是PMOS或者NMOS靠栅极驱动电压来控制导通和关断。如果输入电压还没升到足够高但驱动电路已经开始尝试工作就会出现几种危险情况。第一种是栅极驱动电压不足导致MOS管工作在线性区而不是饱和区。MOS管在饱和区导通时漏源之间的等效电阻很小功耗主要是导通损耗。但如果栅压不够管子处于半导通状态漏源电阻很大电流流过时产生的热量急剧上升短时间内就能把管子烧掉。这就像你开车上坡油门没给够离合器半联动发动机干吼不走离合器片很快就烧了。第二种是控制环路还没建立正常工作点。DC/DC的反馈环路需要一定的输入电压才能让基准源、误差放大器、PWM比较器都正常工作。输入电压太低时这些模块可能输出乱七八糟的信号PWM占空比失控要么全开要么全关输出端电压忽高忽低负载设备跟着遭殃。第三种是逻辑电路状态不确定。如果控制器是数字逻辑实现的低电压下逻辑门可能处于亚稳态输出既不是高也不是低后面的驱动级收到这种信号行为完全不可预测。CMOS电路在低于额定工作电压时噪声容限急剧下降很容易被干扰翻转。UVLO要做的就是在这三种情况发生之前果断把输出关掉让整个系统处于一个确定的、安全的关断状态。2.2 UVLO的核心模块构成一个典型的UVLO电路不管是用分立器件搭还是集成在芯片内部核心模块就那么几个。分压采样网络用两个电阻对输入电压分压得到一个和输入成比例的电压信号。这个信号送给比较器的输入端。分压比决定了UVLO的触发阈值。比如你要在输入低于4.5V时关断基准是1.2V那分压比就是1.2/4.5选好电阻值就行。基准电压源提供一个稳定的参考电压不随输入电压和温度变化。常见的是带隙基准输出1.2V左右。基准的精度直接影响UVLO阈值的精度。如果基准漂了UVLO阈值跟着漂可能该保护的时候不保护不该保护的时候瞎保护。比较器把采样电压和基准电压做比较输出高或者低。比较器的响应速度和输入失调电压是两个关键参数。响应太慢输入电压已经掉到危险值了UVLO还没动作失调太大阈值就不准。迟滞逻辑这是UVLO设计里最容易被忽视但最重要的部分。如果没有迟滞输入电压在阈值附近来回波动时UVLO会反复开关输出跟着抖动系统永远起不来。迟滞的作用是让开启阈值和关断阈值不一样。比如输入升到4.5V时开启但只有降到4.2V时才关断中间0.3V的窗口就是迟滞。这样即使输入有纹波也不会在阈值点反复触发。驱动级比较器的输出通常驱动能力很弱需要经过缓冲或者驱动级去控制功率管的栅极或者控制器的使能引脚。驱动级要保证在UVLO触发时能快速、干净地把功率管关断。2.3 为什么迟滞这么重要一个真实的反面案例我早期做过一个项目用一颗DC/DC芯片给射频功放供电。输入是锂电池标称3.7V满电4.2V放电截止3.0V。芯片手册上写UVLO阈值是2.7V我没太在意觉得电池怎么也不会掉到2.7V以下。结果实测发现当电池电压降到3.0V附近时功放开始出现规律的“打嗝”——工作几百毫秒停几百毫秒反复循环。查了半天发现问题是这样的电池内阻随着放电逐渐增大当功放瞬间拉大电流时电池端电压被拉低瞬间跌到2.7V以下UVLO触发功放关断功放关断后电流减小电池电压回升到2.7V以上UVLO释放功放又开启开启后电流又拉低电压再次触发。整个过程就是UVLO在阈值点反复横跳。如果UVLO有足够的迟滞比如开启2.7V、关断2.4V那即使瞬间跌到2.6V也不会关断系统就能稳定工作。这个案例让我深刻理解到UVLO的迟滞窗口不是随便设的要根据实际负载的瞬态电流和电源内阻来算。3. 从零设计一个UVLO电路参数计算与CMOS实现3.1 阈值和迟滞的计算方法假设我们要设计一个UVLO用于一个12V输入的DC/DC系统要求输入电压低于9V时关断高于10V时开启。也就是说开启阈值V_UVLO_ON 10V关断阈值V_UVLO_OFF 9V迟滞窗口是1V。基准电压用1.2V。分压网络用三个电阻R1从输入到采样节点R2从采样节点到地R3和R2并联但通过一个MOS开关控制用来实现迟滞。开启时MOS开关断开只有R1和R2分压。采样节点电压等于V_IN × R2/(R1R2)。要求这个电压等于1.2V时V_IN 10V所以R2/(R1R2) 0.12。选R2 12kΩ则R1 88kΩ取标准值91kΩ实际阈值会略有偏差可以接受。关断时MOS开关闭合R3并联到R2上等效下电阻变小分压比降低。要求V_IN 9V时采样电压等于1.2V所以等效下电阻R2满足R2/(R1R2) 1.2/9 0.1333。已知R1 91kΩ解得R2 ≈ 14kΩ。但R2本身是12kΩ并联R3后要得到14kΩ是不可能的并联只会让电阻变小。所以这里需要调整思路应该是开启时下电阻大关断时下电阻小但关断阈值比开启阈值低意味着关断时分压比应该更小也就是下电阻更小。重新算开启时V_IN10V分压比0.12R212kR188k。关断时V_IN9V分压比1.2/90.1333这个分压比反而更大了说明下电阻应该更大。但迟滞逻辑通常是关断时降低分压比这里出现了矛盾。问题出在哪里实际上对于UVLO开启阈值高于关断阈值意味着开启时输入电压高分压后的采样电压达到基准关断时输入电压低采样电压也要达到基准才触发关断。如果分压比不变那输入电压低时采样电压自然低比较器输出会翻转。但我们需要的是输入从高往低降时降到9V才关断输入从低往高升时升到10V才开启。所以比较器的参考点应该有两个。更常见的做法是比较器的基准端接一个带迟滞的参考或者反馈端用正反馈产生迟滞。用电阻网络实现的话可以在比较器输出和采样节点之间加一个反馈电阻R_fb。当比较器输出高时R_fb把输出高电平反馈到采样节点抬高采样电压相当于降低了开启阈值当输出低时R_fb把输出低电平反馈到采样节点拉低采样电压相当于提高了关断阈值。具体计算设比较器输出高电平为V_OH低电平为V_OL。采样节点电压V_s (V_IN/R1 V_OH/R_fb) / (1/R1 1/R2 1/R_fb) 当输出高时。这个公式看着复杂实际设计时可以用仿真迭代先选个大概值然后在HSPICE里扫参数。3.2 用CMOS搭一个UVLO比较器如果你是在学CMOS电路设计用HSPICE仿真一个UVLO是比较好的练习。下面给一个简单的CMOS比较器结构用于UVLO。核心是一个差分对。M1和M2是NMOS输入对管M3和M4是PMOS电流镜负载M5是尾电流源。M1的栅极接基准电压V_refM2的栅极接采样电压V_sense。当V_sense V_ref时M2的电流小于M1电流镜把差值镜像到输出端输出被拉高当V_sense V_ref时输出被拉低。尾电流源M5的栅极接一个偏置电压可以用简单的电阻分压或者电流镜产生。为了省事仿真时可以直接用一个理想电流源代替先验证功能。迟滞的实现在输出端和M2的栅极之间加一个反馈MOS管M6M6的栅极接输出。当输出高时M6导通把输出高电平通过一个电阻R_fb耦合到M2栅极抬高V_sense这样需要更大的V_sense才能让比较器翻转等效于降低了开启阈值。当输出低时M6关断反馈消失V_sense恢复等效于提高了关断阈值。HSPICE网表大概长这样* UVLO Comparator with Hysteresis .param VDD12 VREF1.2 M1 n1 vref n3 0 nmos W10u L1u M2 n2 vsense n3 0 nmos W10u L1u M3 n1 n1 VDD VDD pmos W20u L1u M4 n2 n1 VDD VDD pmos W20u L1u M5 n3 vbias 0 0 nmos W5u L1u M6 n2 n2 vsense 0 nmos W2u L1u Rfb n2 vsense 100k * Bias Vbias vbias 0 0.7 * Reference Vref vref 0 1.2 * Input sweep Vsense vsense 0 0 .dc Vsense 0 2 0.01 .end这个网表跑DC扫描看输出翻转点。注意M6的连接方式它把输出反馈到输入形成正反馈产生迟滞。Rfb的值决定迟滞窗口大小Rfb越小反馈越强迟滞越大。3.3 仿真中要注意的细节用HSPICE仿真UVLO有几个坑我踩过。第一个是收敛问题。正反馈电路在翻转点附近容易不收敛仿真器反复迭代找不到解。解决办法是在输出端加一个很大的电阻到地或者用.options选项调整收敛参数比如.reltol和.abstol放宽一点。第二个是激励类型的选择。HSPICE里做DC扫描用.dc做瞬态用.tran。如果要看上电过程中的UVLO行为应该用.tran输入电压用PWL或者PULSE源模拟缓慢上升。比如VDD VDD 0 PWL(0 0 1m 12)这表示1毫秒内从0升到12V。然后看输出什么时候翻转和理论计算对比。第三个是模型精度。很多CMOS工艺库的模型在低电压下不准因为模型参数是在额定电压下提取的。如果你仿真的UVLO阈值和计算差很多先检查模型是不是在低压下失效了。可以换用BSIM3或者BSIM4的亚阈值模型或者手动调整阈值电压参数。4. DC/DC应用中的UVLO实战从选型到实测排查4.1 集成DC/DC芯片的UVLO引脚怎么用大多数DC/DC控制器芯片都有一个UVLO引脚有的叫EN/UVLO有的叫SHDN有的直接叫UVLO。这个引脚通常内部有一个比较器和一个基准外部只需要接分压电阻就能设定阈值。以某款常用降压控制器为例UVLO引脚内部基准是1.25V引脚电流在触发时会有几微安的迟滞电流。数据手册通常会给出计算公式开启阈值V_ON 1.25V × (R1 R2)/R2 I_HYS × R1 关断阈值V_OFF 1.25V × (R1 R2)/R2其中I_HYS是引脚内部的迟滞电流典型值5μA到10μA。这个电流在比较器翻转时流入或流出引脚在R1上产生额外的压降从而实现迟滞。选电阻的时候R2不能太大否则引脚偏置电流和噪声会影响精度也不能太小否则分压网络耗电太多。一般R2在10kΩ到100kΩ之间。R1根据需要的阈值算。我一般会先用Excel把公式拉一遍选几个标准电阻值组合看哪个最接近目标阈值。然后实际焊板子的时候R1用两个电阻串联留一个位置可以微调。比如算出来R1是88kΩ我就用82kΩ加一个10kΩ的可调电阻调完再换成固定值。4.2 实测中常见的UVLO问题问题一上电时输出正常但带载后输入电压稍降就关断。这通常是UVLO阈值设得太高或者电源内阻太大。比如设定12V系统UVLO开启10V关断9V。但负载瞬态电流把输入拉低到8.8VUVLO就触发了。解决办法是降低关断阈值或者增大输入电容减小瞬态压降。问题二UVLO释放后输出启动但启动过程中又触发UVLO。这是软启动和UVLO没配合好。输出电容很大时启动瞬间充电电流很大把输入电压拉低触发UVLO。应该让软启动时间足够长或者提高UVLO的迟滞窗口。问题三UVLO阈值随温度漂移。分压电阻的温度系数和芯片内部基准的温漂都会影响阈值。如果应用环境温度变化大要选低温漂电阻比如薄膜电阻温度系数25ppm/°C。芯片内部基准的温漂一般在数据手册里有曲线选型时留意。问题四UVLO引脚被噪声干扰误触发。UVLO引脚是高阻抗节点容易耦合噪声。可以在引脚对地加一个小电容比如100pF到1nF滤掉高频噪声。但电容不能太大否则会延迟UVLO响应。4.3 一个完整的UVLO调试记录去年做一个工业电源项目输入24V输出12V/10A。UVLO要求输入低于18V关断高于20V开启。用的是某款同步降压控制器UVLO引脚内部基准1.2V迟滞电流8μA。计算R2选20kΩ。开启阈值20V时V_UVLO引脚电压1.2V所以R1 (20 - 1.2)/1.2 × 20k 313.3kΩ。关断阈值18V时考虑迟滞电流8μA从引脚流出在R1上产生压降8μA × 313.3k 2.5V。所以关断时引脚电压 18 × 20/(313.320) 1.08V加上迟滞电流的影响实际关断阈值会略高。仿真迭代后R1取300kΩR2取20kΩ实测开启19.8V关断18.2V满足要求。实测时发现空载上电正常但带满载上电时输入电压被拉低到17.5VUVLO直接关断系统起不来。后来把输入电容从220μF增加到470μF同时把软启动时间从2ms延长到10ms问题解决。这个经验告诉我UVLO的参数不能只看稳态一定要考虑上电和负载瞬态的极端情况。5. UVLO设计中的常见问题与排查技巧速查5.1 阈值不准怎么办阈值不准是最常见的问题。排查顺序如下先确认基准电压是否准确。用高精度万用表测UVLO引脚的电压在刚好触发的时候应该是多少。如果和手册不符可能是芯片坏了或者买到了假货。再确认分压电阻的精度。用1%精度的电阻不要用5%的。如果电阻精度不够阈值偏差可能达到几百毫伏。然后检查引脚漏电流。有些芯片的UVLO引脚在关断时会有漏电流这个电流流过外部分压电阻会产生误差。如果漏电流是微安级分压电阻是百千欧级误差就有几百毫伏。解决办法是减小分压电阻值但会增加功耗。最后考虑温度影响。在常温下调准了高低温下可能偏。如果产品要过温度测试一定要在高低温箱里复测UVLO阈值。5.2 迟滞窗口不够怎么办迟滞窗口不够系统在阈值附近会震荡。增加迟滞的方法有几种如果是集成芯片可以查手册看有没有外部可调的迟滞引脚。有些芯片支持在UVLO引脚和输出之间加一个正反馈电阻增大迟滞。如果是分立电路可以增大比较器的正反馈电阻或者调整反馈网络的时间常数。如果是用MCU的ADC监测输入电压做UVLO那迟滞完全由软件决定。可以在软件里设两个阈值低于低阈值才关断高于高阈值才开启。但要注意ADC的采样速度和精度。5.3 UVLO响应太慢导致功率管损坏UVLO响应速度取决于比较器的传播延迟和驱动级的开关速度。如果输入电压瞬间跌落UVLO还没来得及关断功率管已经过流了。这种情况需要更快的比较器或者加一级快速关断通路。在CMOS设计里可以增大比较器的尾电流提高转换速率。但尾电流大了功耗也大需要折中。另一个办法是在输出端加一个快速下拉管一旦UVLO触发直接把功率管栅极拉到地不管比较器输出是什么。实测时可以用示波器看输入电压和功率管栅极电压的时序。如果输入跌落后栅极电压还有几百纳秒才降下来那就要优化驱动级。5.4 常见问题速查表现象可能原因排查方法解决措施阈值偏高或偏低分压电阻精度不够测电阻实际值换1%精度电阻阈值随温度漂移基准温漂大高低温复测选低温漂芯片或电阻阈值附近震荡迟滞窗口太小示波器看输入和输出增大迟滞电阻或软件阈值上电时反复重启软启动和UVLO冲突看输入电压和输出时序延长软启动增大输入电容UVLO不触发比较器损坏或引脚虚焊测引脚电压补焊或换芯片响应太慢比较器延迟大测输入跌落到栅极关断的时间增大尾电流或加快速关断噪声误触发引脚耦合噪声示波器看引脚波形加滤波电容远离干扰源6. 从UVLO延伸出去几个值得深挖的方向UVLO本身不复杂但它是一个很好的切入点可以延伸到很多相关技术点。第一个方向是上电复位。UVLO和POR经常一起出现POR负责在电源建立后给数字逻辑一个干净的复位信号UVLO负责在电源跌落时关断功率级。两者配合不好系统就会出现上电时序问题。如果你在做MCU或者SoC的电源设计这两个模块的时序一定要用示波器仔细看。第二个方向是欠压和过压保护的统一设计。很多系统不仅需要UVLO还需要OVP。两者可以用同一个比较器框架实现只是参考电压和分压网络不同。设计时可以考虑复用节省成本和板面积。第三个方向是数字UVLO。现在很多数字电源用ADC采样输入电压在MCU或者DSP里用软件实现UVLO。这种方式灵活阈值和迟滞都可以在线调整但响应速度受限于ADC采样率和软件中断延迟。做数字UVLO时要注意中断优先级和采样滤波避免误触发。第四个方向是CMOS工艺下的低压UVLO。随着工艺进步芯片工作电压越来越低1.2V甚至0.9V的系统也需要UVLO。低压下比较器的设计难度更大因为阈值电压的绝对值相对电源电压占比很高差分对的匹配要求更严。如果你在学先进工艺的模拟设计低压UVLO是一个很好的练习题。我个人的体会是UVLO这种东西看十遍文档不如自己搭一遍电路、跑一遍仿真、焊一块板子调一次。很多细节比如比较器的失调、电阻的温漂、引脚的漏电只有实际做过才会真正理解。而且UVLO的设计思路可以迁移到很多其他保护电路上过流保护、过温保护、过压保护核心逻辑都是采样、比较、迟滞、驱动。把UVLO吃透了其他保护电路也就是换个采样对象和阈值而已。最后分享一个小技巧如果你在调试UVLO时手头没有可调电源可以用一个电位器和电池串联手动调电压虽然粗糙但应急够用。另外测UVLO阈值时最好用示波器同时看输入电压和输出使能信号这样触发点和迟滞窗口一目了然比万用表快得多。