
简介面向硬件工程师与电源设计初学者的DCDC BUCK电路工作模式详解围绕连续电流模式CCM与不连续电流模式DCM以及PWM、PFM、COT三种调节策略展开帮助读者理清轻载模式切换原理与电感选型思路。资源为一份DOCX格式技术笔记共1个文件压缩包约231KB内容结构清晰适合随身查阅与对照学习。文档从电感电流行为切入解释CCM/DCM的边界条件、输出电压稳定性与占空比调整逻辑并对比PWM、PFM、COT在轻载效率和极低占空比设计上的差异也说明了实际芯片中COT与PFM容易混用的原因。这份资料已有1301人学习尤其适合正在做电源管理、板级供电设计或硬件调试的工程师快速建立Buck电路工作模式的整体认知。 做硬件这几年我发现自己跟人聊得最多的电源话题不是LDO也不是反激而是DCDC BUCK电路的工作模式。原因很简单不管你是做消费电子、工业控制还是嵌入式开发板子上总有一颗降压芯片而BUCK这颗芯片用得顺不顺手很大程度上取决于你懂不懂CCM、DCM、BCM这三种工作模式。网上讲BUCK原理的文章很多但大多要么停留在“开关导通电感充电、开关断开电感放电”这一步要么一上来就是一堆公式推导把新手劝退。这篇文章我想换个方式从工程应用和实际调试的角度把DCDC BUCK电路的工作模式掰开揉碎讲清楚包括每种模式是怎么产生的、对电路性能有什么影响、实际选型时怎么判断以及在调试中会遇到哪些坑。不管你是刚接触电源的学生还是做了几年硬件但没系统梳理过BUCK原理的工程师这篇文章都值得你花十几分钟看完。1. 动手之前先搞清楚BUCK到底在干什么1.1 从降压需求出发看BUCK的硬道理先说个最现实的场景你的板子上有一颗主控芯片需要3.3V供电但你的输入电源是12V或者24V怎么办最简单粗暴的方案是串电阻分压但负载电流一变分压点电压就跟着飘根本没法用。这时候BUCK降压电路就登场了。BUCK的核心思想用一个生活类比就能说清楚想象你用水桶接水但水龙头的水压太高直接接会把水桶冲翻。你怎么办你会一会儿拧开龙头、一会儿关上龙头通过控制“开”和“关”的时间比例让平均流量刚好满足需求。BUCK电路就是干这个事的电子版本开关管以很高的频率通常是几百kHz到几MHz周期性导通和关断把输入电压斩成一个个脉冲再通过电感和电容组成的滤波器把这些脉冲“平滑”成稳定的直流输出。这里必须强调一个关键点BUCK不是靠电阻“耗掉”多余电压来降压的而是靠“时间比例”来调压的。理想情况下它的功率损耗可以做到很低转换效率能做到90%以上这是LDO线性稳压器做不到的。也正是因为这一点凡是涉及大压差、大电流的供电场景BUCK几乎是不二之选。1.2 同步整流和异步整流先分清再往下聊在深入工作模式之前还有一道“前菜”必须先吃同步BUCK和异步BUCK的区别。我见过不少人在这个点上栽过跟头因为这两种拓扑的“工作模式”表现形式完全不同。异步BUCK的续流管用的是二极管最常见的是肖特基二极管开关管关断时电感电流通过二极管续流。同步BUCK则把二极管换成了一个MOSFET称为下管或低边管由控制芯片精确控制它和上管交替导通。同步BUCK的优势一眼就能看出来MOSFET的导通压降比二极管低得多尤其是在大电流输出时续流损耗能明显降下来效率能做高几个百分点。但代价是控制逻辑更复杂上下管之间必须有死区时间否则会出现上下管同时导通的直通短路瞬间炸管。异步BUCK虽然效率稍低但胜在简单可靠小功率场合用得很普遍。这个区别直接影响你对工作模式的理解同步BUCK因为下管是可控的电感电流有可能反向流动进入负电流这在DCM模式下会带来额外的问题而异步BUCK因为二极管单向导通电感电流天然不可能反向。这些细节后面讲DCM的时候再展开。2. 三种工作模式CCM、DCM、BCM的物理本质2.1 CCM电感电流从不归零的连续状态CCM全称是Continuous Conduction Mode连续导通模式。这种模式下不管开关管是导通还是关断电感里始终有电流在流动电感电流波形是一条带有纹波的锯齿波但永远不会降到零。怎么理解这个状态还是用电梯的类比电感就像一个传送带只要传送带上一直有货物在移动不管速度快慢货物的流动就是连续的。在CCM模式下能量从输入端到输出端的传递是一刻不停的区别只是传递速率在周期性变化。CCM模式最常见的应用场景是负载电流比较大的情况。因为电感电流始终不为零输出电容只需要“吸收”电感纹波电流的高频分量所以输出纹波电压相对较小输出电压的稳定度比较好。但要注意CCM模式下电感电流的平均值加上纹波幅值就是峰值电流这个峰值电流会流过开关管和续流管如果电感选得不够大纹波电流过大对MOSFET的电流应力、输出电容的纹波电流额定值都是考验。从控制角度看CCM模式下的BUCK有一个非常漂亮的特性输出电压和输入电压之比等于占空比。也就是说Vin12V、占空比D0.25时Vout3V。这个关系叫“伏秒平衡”是CCM模式最核心的数学表达第4章会详细推导。2.2 DCM轻载下的断续状态DCM全称是Discontinuous Conduction Mode断续导通模式。当负载电流变小时电感的平均电流需求也变小了但在一个开关周期内开关管导通时间并不会按比例无限缩小芯片有最小导通时间的限制结果就是电感电流在一个周期内有一段期间降到了零并且在零位一直停留到下一个开关周期开始。我还是用电梯的类比早上高峰期传送带上一直有货物这是CCM深夜时分可能隔很久才有一批货物过来传送带大部分时间是空转的这就是DCM。DCM模式下电感电流在一个周期内出现“无电流区间”输出电压的调节关系不再满足简单的VoutDVin而是会偏离这个值。这一点非常关键因为很多人在计算BUCK输出电压时会想当然地用DVin结果在轻载实测时发现输出电压偏高怎么算都对不上其实就是因为电路已经进入了DCM模式。从效率角度看DCM其实有它的好处电感电流降到零之后异步BUCK的二极管自然截止没有续流损耗同步BUCK如果实现了“二极管模拟”Diode Emulation功能也会在下管电流降到零时提前关断下管避免电感电流反向流动从而节省这部分能量损耗。所以很多BUCK芯片在轻载时都会自动进入DCM以获得更高的轻载效率。2.3 BCM临界模式两种模式的交界点BCM全称是Boundary Conduction Mode临界导通模式也叫CRMCritical Conduction Mode。它描述的是这样一种极限状态电感电流在每个开关周期结束时刚好降到零紧接着下一个周期马上开始电感电流“踩线”完成了断续到连续的切换。BCM不是一种常态工作模式而是一个临界点或者说是一条分界线。把负载电流从大到小慢慢调小你会观察到电路从CCM进入BCM再进一步减小负载就进入DCM反过来也一样。但在实际芯片中BCM往往不是“路过”而已有些芯片会刻意让它在临界点附近工作比如某些PFC电路和部分BUCK芯片的谷底导通模式Valley Switching。因为在BCM点电感电流降到零这时候如果恰好控制开关管在电流过零的时刻导通就能实现“零电流开通”明显降低开关损耗。这是BCM除了作为模式分界之外在工程上一个很有实用价值的特点。3. 工作模式如何决定你的电路性能3.1 效率差异为什么轻载要用DCM/PFM先说一个我在实际测试中反复见过的现象同一颗BUCK芯片满载时效率能做到93%但负载电流降到几十毫安甚至几毫安时如果还让电路工作在固定频率的CCM模式效率可能掉到50%以下甚至更低。原因并不难理解。BUCK芯片的损耗大体分成三块导通损耗、开关损耗、静态功耗。导通损耗和电流的平方成正比负载轻了以后这一块自然变小但开关损耗和开关频率强相关不管你负载多轻只要芯片还在以固定的高频开关上下管的栅极驱动损耗、寄生电容充放电损耗就一直在烧。负载轻到一定程度这些损耗甚至比输出功率还大。所以现在的BUCK芯片普遍设计了轻载模式负载轻时自动降低开关频率甚至跳周期工作PFM、Burst Mode等。从本质上看这些模式往往伴随着电感电流进入DCM甚至表现为“工作若干个周期、停若干个周期”。理解DCM的意义就在于此它不是一种“异常状态”而是芯片为了提升轻载效率而主动做出的策略选择。反过来也要提醒一句效率和瞬态响应是一对矛盾。DCM/PFM模式虽然轻载效率高但开关频率在变化输出纹波可能比CCM时更大瞬态响应速度也会变慢。所以如果你的产品对纹波和动态响应要求很苛刻比如给高精度ADC或者高速数字核心供电最好通过设置强制PWM模式让电路在任何负载下都保持CCM工作。3.2 输出纹波与噪声模式切换带来的实际影响输出纹波是衡量BUCK供电质量最直观的指标之一。在CCM模式下电感电流的纹波峰值决定了输出电容的充放电量理论上输出纹波的峰峰值可以近似表示为ΔVout ≈ ΔIL / (8 × fsw × Cout)从这个公式能看出来想降低纹波有三条路减小电感纹波电流加大电感量、提高开关频率、加大输出电容。当然实际产品里开关频率往往由芯片规格决定能调的通常只有电感和电容。而到了DCM模式情况就不一样了。电感电流从零开始爬升再降到零纹波幅值跟负载电流大小密切相关更麻烦的是DCM下输出电容每周期补充的电荷量比CCM更大所以通常DCM的输出纹波会比CCM大而且纹波频率还会随着负载变化而变化。如果负载再通过PFM跳周期输出纹波里还会叠加低频分量这在音频范围内可能产生听得见的“吱吱”声也就是业内常说的“啸叫”。另外还有一个容易踩的坑模式切换瞬间输出电压可能出现短暂过冲或下冲。芯片从PWM切到PFM时开关频率突变环路响应跟不上输出电压就可能抖动一下。在一些对供电时序要求严格的系统中这种切换跳变可能会导致系统误复位或者ADC采样异常。解决思路是在软件或硬件上让芯片固定在某一模式下工作关闭自动模式切换。3.3 环路稳定性模式切换最容易被忽视的坑做BUCK的人如果没研究过环路稳定性那调试时大概率会碰到输出振荡的怪事。尤其是那种“轻载时好好的加载到一半开始振荡”的现象十有八九和模式切换有关。原因在于CCM和DCM下变换器的传递函数不一样。简单说CCM下输出对占空比的响应特性通常可以用一个带双极点的模型来描述而DCM下因为电感电流在每个周期内都会归零控制环路呈现出类似一阶系统的特性相位裕度会发生变化。如果芯片的环路补偿是按照CCM满载条件调好的一旦负载降到DCM区间环路参数就“对不上”了可能出现相位裕度不足输出就会出现规律性振荡。解决方案一般有三种第一选用内部补偿已经考虑全模式稳定性的芯片这是最省事的第二对于外置补偿的芯片需要在全负载范围内验证环路是否稳定第三如果你的系统允许直接强制芯片工作在CCM模式用一个固定的、保守的环路参数覆盖所有工况。我个人的习惯是在原理图阶段就优先选那些在CCM和DCM之间切换时环路变化不太剧烈的芯片省得后面调试时吃土。4. 手撕BUCK从零推导参数与实操验证4.1 伏秒平衡推导占空比“手撕BUCK”这个说法在网络社区里很火本质就是不看资料自己从物理原理出发把BUCK的关键公式推出来。我建议每个做电源的人都至少在纸上完完整整推一遍因为推完你会发现芯片手册里的很多参数曲线你都能预判出来。先假设电路处于CCM稳定工作状态。开关管导通期间电感两端电压是Vin - Vout忽略开关管压降电感电流按这个斜率线性上升开关管关断、续流管导通期间电感两端电压是 -Vout忽略二极管或下管压降电感电流按这个斜率线性下降。稳定状态下电感电流在一个周期内的净变化必须为零否则电感电流会不断累积这就是经典的“伏秒平衡”原则(Vin - Vout) × D × T Vout × (1 - D) × T解这个方程得到Vout D × Vin这个式子简洁得让人舒服但它有两个前提CCM模式下、忽略器件压降。实际芯片手册里给出的占空比范围和负载的关系本质上就是这个公式在加上各种修正后的体现。4.2 电感选型临界电感的计算电感是BUCK电路里最核心的磁性元件它的选型直接决定了电路工作在什么模式。关键概念是“临界电感”在这个电感值下电路刚好处于CCM和DCM的交界BCM。从电感的电流纹波公式出发ΔIL (Vin - Vout) × D / (L × fsw)在BCM条件下电感电流的谷值刚好降到零即Iout_boundary ΔIL / 2把第一式和伏秒平衡代入可以推导出临界电感的表达式L_boundary (1 - D) × Vout / (2 × Iout × fsw)举个例子输入12V输出3.3V开关频率500kHz最小负载电流100mA。先算D 3.3 / 12 ≈ 0.275再算临界电感L_boundary (1 - 0.275) × 3.3 / (2 × 0.1 × 500000) ≈ 23.9μH也就是说如果我希望在100mA负载以上都保持CCM电感至少要选到24μH左右如果选小到10μH那么大约在负载电流降到40多毫安以下时就会进入DCM。这又印证了前面说的DCM不是bug它是在你电感选小、负载变轻之后自然而然的物理结果。实际选型时还有一个经验法则让额定负载下的电感纹波电流控制在最大输出电流的20%~40%之间。纹波太小说明电感用得偏大成本和体积上去瞬态响应变慢纹波太大则开关管和电容应力不好。这个比例区间是工程权衡之后的结果。4.3 输出电容选择与环路补偿的关系输出电容的选择主要看等效串联电阻ESR和容值两个参数。输出纹波的一部分来自电容的ESR另一部分来自电容充放电。在陶瓷电容为主的方案里ESR非常低纹波主要由容值决定所以用上面提到的公式ΔVout ≈ ΔIL / (8 × fsw × Cout)估算即可。但如果你用的是电解电容或者钽电容ESR带来的纹波分量可能占大头这时候要单独算ESR纹波。输出电容还会直接影响环路的带宽。输出电容越大环路的等效极点频率越低系统的动态响应越慢但如果电容带ESRESR又会引入一个零点可以提升相位裕度。这就是为什么有些老式BUCK芯片手册里会建议“输出电容的ESR范围要控制在某个区间内”——ESR太低可能导致环路不稳定ESR太高又会让纹波超标。用陶瓷电容时这点尤其要小心因为陶瓷电容ESR太低相位裕度反而可能不足。5. 工程实战中的常见问题与调试记录5.1 案例空载或轻载时输出电压偏高这是一个非常典型的现场问题板子焊好了上电测输出3.3V输出的BUCK在空载时实测居然是3.5V甚至更高。很多新手第一反应是芯片坏了或者反馈电阻贴错了但检查半天可能都正常。实际原因就是电路在轻载时进入了DCM或脉冲跳变模式。前面推导过DCM下Vout不再等于D×Vin而是在同样占空比下会自然抬高。如果芯片的反馈回路还没来得及把占空比调小或者芯片设计上就是为了轻载效率故意用PFM输出电压就会偏高。解决办法是确认芯片当前工作模式如果输出精度要求苛刻设置芯片工作在强制PWM模式如果芯片不支持强制PWM可以给输出端加一个假负载比如一个几十欧姆到几百欧姆的电阻让最小负载电流落在CCM区间内。5.2 常见问题速查表这里我把自己调试BUCK电路时遇到过的典型问题整理成了表格供大家排查时对照。现象可能原因排查与解决办法空载/轻载输出电压偏高DCM或PFM模式导致强制PWM模式或加假负载输出纹波尖峰大开关节点振铃、探头地线过长缩短示波器接地弹簧、检查自举电容加载时输出电压跌落明显电感饱和、环路带宽不足换更大饱和电流的电感调整补偿参数音频范围内“吱吱”声轻载模式频率落入音频范围切换到强制PWM模式检查输入电源稳定性上下管发热严重死区时间设置不当、开关损耗过大检查死区设置优化栅极驱动电阻同步BUCK在轻载时电感电流反向下管在DCM下未关闭开启二极管模拟功能或者确认芯片是否支持输出振荡模式切换导致环路不稳定关闭自动模式切换验证全负载范围相位裕度还有一个很多工程师后期才注意到的问题BUCK电路的AGND和PGND处理。AGND是模拟小信号地PGND是功率地两者如果处理不好功率回路上寄生电感产生的噪声会把反馈采样的参考点抬起来导致输出纹波异常、环路抖动。工程上常见做法是用0Ω电阻或者磁珠单点连接AGND和PGND让大电流不流过敏感的小信号地。布局时功率回路面积要尽量小反馈采样要从输出电容的远端单独走线到芯片的FB引脚千万别把反馈线布在电感或开关节点附近。6. 写在最后关于这套知识的实际感受我做电源这几年最大的体会是BUCK电路说难不难说简单也不简单。难的不是那几个公式而是要在效率、纹波、动态响应、成本、体积之间做权衡而工作模式正是理解所有这些权衡的钥匙。每次遇到输出异常我第一反应不是怀疑芯片坏了而是先问自己一句“这个负载电流下电路现在是什么工作模式”确认了这个问题很多疑难杂症就已经解决一半了。如果你正在学BUCK我建议你下载一个电路仿真软件比如Falstad或Multisim亲手搭一个BUCK电路试试改变负载和电感值仔细观察电感电流波形从CCM变成DCM的过程。这个过程比看十篇文章都管用。等你把波形和处理问题的直觉建立起来再回头看芯片手册里的参数曲线你会发现每一条曲线都在替这个物理规律“说话”。本文还有配套的精品资源点击获取