☰
Buck电路CCM与DCM模式深度解析:从原理到选型避坑指南
2026/10/7 13:33:05 网站建设 项目流程

1. 从一个电感波形说起:为什么CCM和DCM值得单独拎出来讲

做电源这行十几年,我越来越觉得,Buck电路里最容易被新手忽略、又最容易让老手翻车的,不是环路补偿,也不是MOS选型,而是CCM和DCM这两个工作模式。很多人画完原理图、焊好板子、上电一测,发现轻载时输出电压飘了、纹波大了、甚至啸叫了,回头查半天,最后发现是电路悄悄从CCM滑进了DCM,而自己的电感和反馈参数根本没按DCM去校核。

先把话说清楚:Buck电路是最基础的降压型开关电源拓扑,通过一个开关管(上管)、一个续流管(下管或二极管)、一个电感和一个输出电容,把较高的输入电压斩波成较低的输出电压。而CCM(Continuous Conduction Mode,连续导通模式)和DCM(Discontinuous Conduction Mode,断续导通模式),描述的是电感电流在一个开关周期内是否连续——CCM下电感电流始终大于零,DCM下电感电流会在周期内某一段降到零并保持一段时间。

这两个模式决定了什么?决定了你的电感量怎么选、输出纹波多大、环路补偿怎么设计、轻载效率高不高、甚至会不会出现次谐波振荡。可以说,不懂CCM和DCM,Buck电路设计就是盲人摸象。这篇内容我打算把这两个模式从物理本质、数学推导、临界条件、实测波形到选型取舍,完整地捋一遍,适合刚入行的电源工程师、正在做DC-DC模块的硬件同学,以及想把手撕Buck真正搞明白的爱好者。看完你至少能做到:拿到一个Buck需求,知道该让它工作在哪个模式,电感该取多大,以及为什么。

2. 把电感电流拆开看:CCM和DCM的物理本质与临界条件

2.1 电感电流的三种形态,其实是一条连续谱

很多人把CCM和DCM当成两个对立的东西,其实它们是一条连续谱上的两端。电感电流在一个开关周期内的波形,本质上是"直流分量 + 三角波纹波"。当三角波的谷底还高于零,就是CCM;当谷底刚好触到零,就是BCM(Boundary Conduction Mode,临界模式);当谷底想往下走却被"钳"在零,出现一段平直的零电流区,就是DCM。

我用一个生活化的类比:想象一个水池,进水口(开关管导通时电感储能)和出水口(开关管关断时电感释能)交替工作。CCM就像水池里始终有水,进水和出水无缝衔接;DCM就像水池在某个时段被抽干了,得等下一轮进水才能继续出水。这个"抽干"的时段,就是电感电流为零的死区。

理解这一点很关键:DCM不是故障,而是一种正常的工作状态,尤其在轻载时几乎无法避免。问题在于,如果你的设计只按CCM算,轻载进DCM后传递函数会变、增益会变、相位会变,环路就可能不稳。

2.2 临界电感:CCM和DCM的分水岭怎么算

判断电路处于哪个模式,核心看一个量——临界电感Lc。推导过程我尽量讲透,因为这是后面所有选型的根。

设输入电压Vin,输出电压Vout,开关频率fsw,开关周期T=1/fsw,占空比D=Vout/Vin(理想Buck)。电感电流的纹波峰峰值:

$$\Delta I_L = \frac{(V_{in} - V_{out}) \cdot D \cdot T}{L} = \frac{V_{out}(1-D)T}{L}$$

这个公式的来历:开关管导通时,电感两端电压是Vin−Vout,持续时间D·T,根据V=L·di/dt,电流上升量就是(Vin−Vout)·D·T/L。关断时电感两端电压是−Vout,持续时间(1−D)T,电流下降量是Vout·(1−D)T/L,两者相等,这就是伏秒平衡。

电感电流的平均值等于输出电流Iout(因为电容平均电流为零)。那么电流谷底值:

$$I_{valley} = I_{out} - \frac{\Delta I_L}{2}$$

当I_valley=0时,就是临界点。此时:

$$I_{out} = \frac{\Delta I_L}{2} = \frac{V_{out}(1-D)T}{2L}$$

解出临界电感:

$$L_c = \frac{V_{out}(1-D)T}{2 I_{out}} = \frac{V_{out}(1-D)}{2 I_{out} f_{sw}}$$

这个公式要背下来。它告诉你:负载电流越小、开关频率越低、占空比越接近1,临界电感就越大。换句话说,同样的电感,重载时在CCM,轻载时就掉进DCM了。

2.3 一个具体算例,把数字代进去才有感觉

假设Vin=12V,Vout=5V,fsw=500kHz,满载Iout=2A。先算D=5/12≈0.417,T=2μs。

$$L_c = \frac{5 \times (1-0.417)}{2 \times 2 \times 500000} = \frac{5 \times 0.583}{2 \times 10^6} = \frac{2.915}{2 \times 10^6} \approx 1.46 \mu H$$

也就是说,如果电感取1.46μH,满载2A时刚好在临界点。取大于1.46μH,满载进CCM;取小于,满载就是DCM。而如果负载降到0.2A,临界电感变成14.6μH——你原来那个2.2μH的电感,在0.2A时早就深陷DCM了。

注意:这里的D用的是理想值,实际要考虑上下管的压降、电感的直流电阻(DCR)。低压大电流场合,这些损耗会让实际占空比偏离理想值,临界点也会偏移,工程上要留20%余量。

3. 两种模式下的传递函数差异:为什么轻载会不稳

3.1 CCM的传递函数:一个标准的二阶系统

CCM下,Buck的功率级是一个典型的二阶LC滤波器,控制到输出的传递函数(以电压模式为例):

$$G_{vd}(s) = V_{in} \cdot \frac{1 + s R_C C}{1 + s(R_L C + \frac{L}{R}) + s^2 LC}$$

其中R是负载电阻,R_C是输出电容的等效串联电阻(ESR),R_L是电感DCR。这个系统有两个极点,频率在:

$$f_{p1,p2} \approx \frac{1}{2\pi\sqrt{LC}}$$

还有一个由ESR引入的零点,频率在1/(2πR_C·C)。CCM下这个模型是固定的,环路补偿相对好做,一个Type III补偿器基本能搞定。

3.2 DCM的传递函数:降成一阶,但增益变了

DCM下情况完全不同。因为电感电流有零区,电感不再是一个连续储能的元件,功率级从二阶降为一阶,传递函数变成:

$$G_{vd}(s) \approx \frac{2 V_{out}}{D} \cdot \frac{1 + s R_C C}{1 + s R C / 2}$$

注意几个变化:主极点位置变了,从1/(2π√LC)变成了2/(2πRC),跟负载强相关;直流增益也变了,跟D和负载都有关系。这意味着什么?意味着负载从重变轻、模式从CCM切到DCM时,系统的极点和增益会突变,如果补偿网络是按CCM设计的,DCM下相位裕度可能大幅下降,出现振荡或响应变慢。

我实测过一个案例:一款12V转3.3V、满载3A的Buck,电感取4.7μH,满载CCM相位裕度65度很稳。负载降到0.3A进DCM后,用频响分析仪一扫,穿越频率从80kHz掉到20kHz,相位裕度只剩30度,动态响应明显变差,负载跳变时过冲大了近一倍。后来把电感加大到10μH,让DCM的边界往后推,问题才缓解。

3.3 模式切换时的"抖动"问题

更麻烦的是模式切换点附近的抖动。当负载电流恰好在临界点附近波动时,电路会在CCM和DCM之间反复横跳,导致开关波形不稳定、输出纹波出现低频包络、甚至可听噪声。这在音频供电、传感器供电场合是致命的。

解决办法有两个方向:一是让设计远离临界点,要么始终CCM(电感取大),要么始终DCM(电感取小,或用DCM专用控制芯片);二是选用支持模式平滑切换的控制IC,比如很多同步Buck芯片会在DCM时进入"二极管仿真模式"(Diode Emulation),让下管在电流过零时关断,避免反向电流,同时保证切换平滑。

4. 电感、电容、频率怎么选:CCM与DCM的工程取舍

4.1 电感选型:不是越大越好

新手常有个误区,觉得电感越大纹波越小越好。实际上电感大了,体积大、成本高、DCR损耗大,而且动态响应变慢。电感选型的核心逻辑是:先确定你要工作在哪个模式,再反推电感值。

设计目标电感取值策略典型场景
全负载范围CCML > Lc(最小负载)大电流、对纹波敏感
全负载范围DCML < Lc(最大负载)小电流、低成本、轻载高效
允许模式切换L介于两者之间宽负载范围通用设计
追求轻载效率小电感+二极管仿真电池供电、待机功耗敏感

具体怎么算?我一般按满载电流的20%~40%作为纹波电流来选电感,这是行业里比较稳妥的经验值。即:

$$\Delta I_L = (0.2 \sim 0.4) \times I_{out,max}$$

然后:

$$L = \frac{V_{out}(1-D)}{\Delta I_L \cdot f_{sw}}$$

这样选出来的电感,满载时纹波适中,轻载时进DCM也不会太深。如果要求全负载CCM,就把纹波系数压到0.2以下,电感相应加大。

4.2 输出电容:CCM看纹波,DCM看动态

输出电容的选型在两个模式下侧重点不同。CCM下,输出纹波主要由电感纹波电流在电容ESR上的压降决定:

$$\Delta V_{out} \approx \Delta I_L \cdot R_C$$

所以选低ESR的电容(如陶瓷电容、聚合物电容)比单纯堆容量更有效。DCM下,因为电感电流有零区,输出电容要独自承担负载电流,纹波公式变成:

$$\Delta V_{out} \approx \frac{I_{out}(1-D)}{f_{sw} C}$$

这时候容量就很重要了。我通常的做法是:先按CCM的ESR要求选电容类型,再按DCM的容量要求校核,取两者中更严的。

4.3 开关频率:高频化是把双刃剑

提高fsw能减小电感和电容,但会增加开关损耗和驱动损耗。在CCM下,频率提高主要影响纹波和动态;在DCM下,频率提高会显著降低临界电感,让电路更容易进DCM。所以高频化设计要特别注意轻载模式。

我的经验是:500kHz~1MHz是大多数消费类Buck的甜点区;超过2MHz,开关损耗开始主导,效率掉得快;低于200kHz,电感和电容体积又下不来。具体选多少,要结合MOS的Qg、驱动能力、散热条件综合权衡。

实操心得:选电感时,除了电感量,一定要看饱和电流Isat和温升电流Irms。DCM下峰值电流比CCM高(同样平均电流下),如果Isat不够,电感会饱和,电流飙升,直接炸管。我见过太多因为电感饱和导致的炸机案例,Isat至少要是峰值电流的1.3倍。

5. 实测波形怎么看:从示波器上分辨CCM和DCM

5.1 测什么、怎么测

判断工作模式,最直接的方法是测电感电流波形。但电感电流不能直接测(除非用电流探头串在电感回路里),工程上常用两个替代方法:

一是测下管电流。同步Buck的下管在续流阶段导通,其电流波形就是电感电流的下降段。用电流探头夹在下管源极到地的走线上,或者用分流电阻采样。如果看到下管电流在关断前降到零并保持,就是DCM。

二是测开关节点电压(SW节点)。CCM下,SW节点在每个周期都是规整的方波,高电平Vin、低电平0(或下管压降)。DCM下,当电感电流降到零后,SW节点会出现振铃——因为电感和下管的寄生电容形成LC谐振,SW电压会在Vout附近振荡。这个振铃是DCM的典型特征,一眼就能认出来。

5.2 波形特征对照表

特征CCMDCM
电感电流谷底>0=0,有零区
SW节点波形规整方波电流过零后振铃
输出纹波较小,与ESR相关较大,与容量相关
开关损耗相对低过零振铃增加损耗
轻载效率差(开关损耗固定)好(降低开关频率)
EMI相对可控振铃带来高频噪声

5.3 一个真实的调试记录

去年调一款车载USB充电模块,输入12V、输出5V/2.4A。空载时客户反馈有"滋滋"声,示波器一看SW节点,果然在振铃,典型DCM。测电感电流,零区占了周期的近一半。问题在于,控制IC在DCM下没有降频,开关损耗和振铃损耗叠加,效率只有60%多,还产生了可听噪声。

解决过程分三步:第一步,把电感从3.3μH加大到6.8μH,让空载时的零区缩短,振铃幅度下降;第二步,换了一款支持**PFM(脉冲频率调制)**模式的控制IC,轻载时自动降频,开关次数减少,效率提到80%以上;第三步,在SW节点加了一个RC吸收电路(snubber),把振铃的高频尖峰压下去,EMI也过了。这三步下来,噪声没了,效率也达标了。

这个案例说明:DCM本身不是问题,问题是你有没有针对DCM做优化。如果控制IC不支持DCM下的降频或二极管仿真,硬让它工作在DCM,效率和EMI都会很难看。

6. 常见问题与排查技巧实录

6.1 轻载输出电压偏高或偏低

这是DCM下最常见的问题。原因通常是控制IC在DCM下的环路增益变了,或者最小占空比受限。排查思路:先测SW波形确认是否进DCM,再测反馈电压是否在基准附近。如果是增益问题,调整补偿网络;如果是最小占空比问题(比如IC有最小导通时间限制),只能换IC或加大电感让电路回到CCM。

6.2 模式切换时输出振荡

前面提过,这是CCM/DCM边界抖动导致的。排查时用电子负载做动态扫描,从满载慢慢降到空载,观察输出电压是否有低频波动。解决办法:加大电感让切换点远离工作区,或选用带平滑切换功能的IC。

6.3 电感发热严重

DCM下电感峰值电流高,如果电感DCR大或Isat不足,发热会很明显。用热像仪测电感表面温度,超过80度就要警惕。选型时优先选一体成型电感,DCR低、屏蔽好、Isat高。

6.4 空载时SW节点振铃导致EMI超标

DCM振铃是EMI的常见来源。除了加RC snubber,还可以:降低下管的开关速度(如果驱动电阻可调)、在SW节点加小电容(几十pF)到地、优化PCB布局缩短SW走线。我一般先加snubber,实测有效再优化布局。

6.5 常见问题速查表

现象可能原因排查方法解决方向
轻载输出飘DCM增益变化测SW波形调补偿或加大电感
切换振荡模式边界抖动动态扫描换IC或改电感
电感发热峰值电流高热像仪换低DCR高Isat电感
EMI超标DCM振铃近场探头加snubber、优化布局
效率低DCM开关损耗测效率曲线用PFM或二极管仿真

避坑技巧:调试DCM时,一定要用电子负载的动态模式模拟真实负载跳变,静态测试往往发现不了模式切换的问题。另外,示波器探头的地线要尽量短,否则SW节点的振铃测量会失真,误判成更严重的问题。

7. 同步与异步Buck在两种模式下的差异

7.1 异步Buck:DCM下二极管自然截止

异步Buck用二极管做续流管,DCM下电感电流降到零时,二极管自然反偏截止,不会出现反向电流,所以异步Buck天然支持DCM,不需要额外控制。缺点是二极管压降大,效率低,尤其低压输出时损耗占比高。

7.2 同步Buck:DCM下必须关断下管

同步Buck用MOS代替二极管,如果下管在电感电流过零后继续导通,电流会反向流动,电感电流变成负的,电路进入强制CCM(FCCM),轻载效率极差。所以同步Buck要进DCM,必须让控制IC在电流过零时关断下管,这就是二极管仿真模式。很多IC通过检测下管电流或SW节点电压来判断过零。

7.3 选型建议

场景推荐方案理由
大电流、效率优先同步Buck + FCCM全负载CCM,纹波小
宽负载、轻载效率优先同步Buck + 二极管仿真轻载进DCM降频
低成本、小电流异步Buck简单可靠,天然DCM
高压输入异步Buck同步驱动复杂

我个人的经验是:输出电流大于3A,优先同步Buck;小于1A,异步Buck更划算。中间地带看具体效率和成本要求。

8. 从设计到验证:一套完整的Buck模式校核流程

8.1 设计阶段

第一步,明确需求:Vin范围、Vout、Iout范围、效率目标、纹波要求、成本约束。第二步,选控制IC,确认它支持哪种模式(FCCM、DCM、PFM)。第三步,按前面公式算临界电感,结合纹波系数选电感值。第四步,选输出电容,按CCM的ESR和DCM的容量双重校核。第五步,设计补偿网络,CCM用Type III,DCM用Type II,并留足相位裕度。

8.2 验证阶段

上电后先测SW波形和电感电流,确认实际工作模式。然后做全负载扫描,从空载到满载分10个点测效率和纹波,画出曲线。重点看模式切换点附近有没有异常。再做动态负载测试,负载跳变幅度50%~100%,观察过冲和恢复时间。最后做温升和EMI测试,确认没有热点和超标频点。

8.3 我的校核清单

  • 满载SW波形是否规整,有无异常振铃
  • 空载是否进DCM,零区占比多少
  • 模式切换点负载电流是多少,是否在常用工作区
  • 全负载效率曲线是否平滑,有无凹陷
  • 动态过冲是否在规格内
  • 电感峰值电流是否低于Isat的70%
  • 输出纹波在全负载范围是否达标
  • EMI在DCM振铃频点是否有余量

这套流程走下来,基本能覆盖CCM/DCM相关的所有坑。我做过几十款Buck,凡是按这个流程校核过的,量产阶段几乎没有因为模式问题翻车的。

9. 写在最后:几个我踩过的坑和一点个人体会

最后分享几个实打实的教训。第一个坑:曾经为了省成本,电感选了个Isat刚好等于峰值电流的,结果高温下电感饱和,批量炸了几十台。后来所有设计都要求Isat至少1.3倍余量,高温降额还要再算。第二个坑:一款IC标称支持DCM,但实际过零检测有延迟,轻载时下管还是会有短暂反向电流,效率比手册低5个点。选IC一定要看实测数据,别只看规格书。第三个坑:DCM振铃的EMI问题,一开始想靠加电容解决,结果电容大了影响效率,小了没用,最后还是RC snubber最靠谱,但电阻电容的值要实测调,没有万能公式。

我个人在实际操作中的体会是:CCM和DCM没有优劣之分,只有合不合适。大电流、低纹波、好补偿,选CCM;轻载高效、低成本、简单可靠,选DCM。最怕的是设计时没想清楚,让电路在两者之间反复横跳。所以每次动手前,我都会先问自己一句:这个负载范围,我到底要它工作在哪个模式?想清楚了,后面的电感和补偿就都有方向了。

如果你正在调一款Buck,轻载有问题,不妨先把SW波形抓出来看看,是不是进了DCM。很多时候,答案就在那一段振铃里。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询