news 2026/9/7 6:17:02

手撕DCDC BUCK:CCM、DCM、BCM工作模式与工程调试全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手撕DCDC BUCK:CCM、DCM、BCM工作模式与工程调试全解析

简介:面向硬件工程师与电源设计初学者的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有一个非常漂亮的特性:输出电压和输入电压之比等于占空比。也就是说,Vin=12V、占空比D=0.25时,Vout=3V。这个关系叫“伏秒平衡”,是CCM模式最核心的数学表达,第4章会详细推导。

2.2 DCM:轻载下的断续状态

DCM全称是Discontinuous Conduction Mode,断续导通模式。当负载电流变小时,电感的平均电流需求也变小了,但在一个开关周期内,开关管导通时间并不会按比例无限缩小(芯片有最小导通时间的限制),结果就是:电感电流在一个周期内有一段期间降到了零,并且在零位一直停留到下一个开关周期开始。

我还是用电梯的类比:早上高峰期,传送带上一直有货物,这是CCM;深夜时分,可能隔很久才有一批货物过来,传送带大部分时间是空转的,这就是DCM。

DCM模式下,电感电流在一个周期内出现“无电流区间”,输出电压的调节关系不再满足简单的Vout=DVin,而是会偏离这个值。这一点非常关键,因为很多人在计算BUCK输出电压时会想当然地用DVin,结果在轻载实测时发现输出电压偏高,怎么算都对不上,其实就是因为电路已经进入了DCM模式。

从效率角度看,DCM其实有它的好处:电感电流降到零之后,异步BUCK的二极管自然截止,没有续流损耗;同步BUCK如果实现了“二极管模拟”(Diode Emulation)功能,也会在下管电流降到零时提前关断下管,避免电感电流反向流动,从而节省这部分能量损耗。所以很多BUCK芯片在轻载时都会自动进入DCM,以获得更高的轻载效率。

2.3 BCM:临界模式,两种模式的交界点

BCM全称是Boundary Conduction Mode,临界导通模式,也叫CRM(Critical 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纹波。

输出电容还会直接影响环路的带宽。输出电容越大,环路的等效极点频率越低,系统的动态响应越慢;但如果电容带ESR,ESR又会引入一个零点,可以提升相位裕度。这就是为什么有些老式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的过程。这个过程比看十篇文章都管用。等你把波形和处理问题的直觉建立起来,再回头看芯片手册里的参数曲线,你会发现每一条曲线都在替这个物理规律“说话”。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 6:11:28

MODBUS RTU调试实战:帧格式、CRC校验与RS485踩坑全解析

1. 这条协议为什么值得花一整篇来聊熟悉我的读者应该知道,这个系列一直在记录我实际调试嵌入式设备时碰到的各种问题。这次要聊的MODBUS协议,算不上新技术,从上世纪70年代末诞生到现在已经四十多年,但直到今天,你去翻任…

作者头像 李华
网站建设 2026/9/7 6:10:05

ST25R3911 demo SDK实战:从环境搭建到NFC读写器开发

简介:意法半导体推出的ST25R3911近场通信演示开发套件,是一套面向物联网设备开发者的嵌入式软件包。它解决在Linux操作系统中快速实现近场通信读写器与卡片模拟功能的工程问题,适用于智能家居设备配对、短距离数据交换、门禁控制等物联网场景…

作者头像 李华
网站建设 2026/9/7 6:09:58

高带宽住宅IP:打通AI大模型训练的数据获取链路

上个月帮一个团队做YOLOv8的自定义数据集扩充,准备从KITTI里抽取目标检测样本。原本以为只是下载几个压缩包的事,结果从下午折腾到半夜——四个下载任务断了一半,同一个IP连续请求不到十分钟就被返回403,好不容易拖下来的文件解压…

作者头像 李华
网站建设 2026/9/7 6:09:53

ControlCAN库文件Zip深度拆解:从VCI协议到CAN上位机开发实战

简介:ControlCAN库文件是周立功公司提供的CAN通信开发库,主要面向需要在x86与x64架构上编写CAN总线应用程序的开发者;CAN总线以实时性强、可靠性高著称,常用于汽车电子、工业自动化与嵌入式系统。压缩包共含27个文件,大…

作者头像 李华
网站建设 2026/9/7 6:09:46

OpenCV 4.6.0 Windows环境配置与高频问题排查实战

简介:OpenCV 4.6.0完整源码包面向计算机视觉开发者,适合需要从底层编译、定制模块或研究源码实现的人群,也可用于服务器端无预装库时的离线构建。包内共有6991个文件,以C/C源文件、头文件、Python脚本、CMake构建脚本以及用于算法…

作者头像 李华