ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

电源模块设计入门:Buck、LDO、USB PD与锂电管理全解析

电源模块设计入门:Buck、LDO、USB PD与锂电管理全解析 电源模块设计入门Buck、LDO、USB PD、锂电管理一次讲透硬件开发中电源设计往往是“看起来简单、做起来翻车”的重灾区。不少刚接触嵌入式的小伙伴画完 MCU 最小系统后信心满满结果一上电要么芯片发烫、要么纹波大得离谱、要么电池用几天就鼓包。这些问题的背后往往是对常见电源拓扑和电源管理方案理解不够系统。本文围绕电源模块设计入门这条主线把Buck 降压电路、LDO 线性稳压、USB PD 协议供电、锂电池充放电管理四个核心方向一次讲透。内容从原理拆解到选型对比再到完整设计实战新手可以按顺序阅读有基础的开发者可以直接跳到实战和排错部分对照参考。1. 电源模块的核心概念与应用场景1.1 为什么电源设计如此重要嵌入式系统里电源不仅仅是“把电压变一下”这么简单。它决定了整块电路板能否稳定工作、待机功耗是否达标、EMC 是否容易过、产品寿命是否长久。一个典型的物联网节点可能同时需要 3.3V 给 MCU、1.8V 给 Flash、3.7V 给锂电池、5V 给 USB 通信这些不同电压轨之间如何高效、低噪声地转换就是电源模块设计的核心任务。很多初学者容易陷入一个误区认为只要买一个电源模块接上去就能完事。实际项目中芯片对电源的要求非常苛刻包括电压精度、纹波大小、瞬态响应能力、上电时序等。比如某些射频芯片对电源纹波极其敏感如果 LDO 选型不当或布板不佳直接就影响通信灵敏度。1.2 常见电源方案的分类与边界常见的电源方案可以分为三类线性稳压器LDO适用于压差小、电流小、对噪声敏感的场合。开关电源Switch Mode Power Supply, SMPS包括 Buck降压、Boost升压、Buck-Boost升降压适用于效率要求高、输入输出电压差的场景。充电管理芯片专门针对锂电池的充电曲线进行管理包含恒流/恒压控制、截止电流判断、温度保护等。此外随着 USB PDPower Delivery协议在快充和物联网设备中的普及基于 Type-C 接口的电源协商供电也成为了新的热点。1.3 开发者需要掌握哪些能力电源模块设计的入门不等于背芯片手册。核心要掌握三件事能看懂常见拓扑的原理图比如 Buck 电路的续流回路、LDO 输入输出电容的作用。能根据项目需求选型包括输入输出电压范围、最大电流、效率、纹波、封装、成本。能对照数据手册完成外围电路设计并对常见异常波形进行初步排查。接下来的内容就按这三个层次逐步展开。2. 环境准备与工具说明电源模块设计不像软件代码那样有强制的“编译环境”但仍需要准备一系列硬件和软件工具。下面是个人经验中比较常用的一套组合。工具类别推荐工具用途说明原理图与 PCB 设计KiCad / Altium Designer / 立创 EDA绘制原理图、布局布线电路仿真LTspice / Multisim / TI WEBENCH验证 Buck 波形、LDO 稳定性基础测量数字万用表测量电压、通断、电阻波形分析示波器100MHz 以上测量纹波、开关节点波形、启动波形负载测试电子负载或功率电阻测试不同电流下的输出电压变化焊接工具电烙铁、热风枪、恒温焊台焊接贴片器件、飞线调试如果你的实验室条件有限也可以用开发板和现成模块先做验证。版本与器件说明本文涉及的 Buck 电路原理、LDO 工作方式和 USB PD 协议协商逻辑均属于通用知识不绑定特定芯片型号。示例中使用的芯片型号仅为方便演示实际选型请参考最新数据手册和封装信息。3. Buck 降压电路原理详解3.1 Buck 电路是什么Buck 电路也叫降压斩波电路是最常用的 DC-DC 降压拓扑。它通过高速开关和电感储能把较高的输入电压转换成较低的稳定输出电压。与 LDO 相比Buck 电路的优势在于效率高特别是在输入输出电压差大的情况下优势更明显。举一个直观例子输入 12V输出 3.3V负载电流 1A。LDO 方案的话12V 到 3.3V 压差高达 8.7VLDO 只能把多余的能量以热量形式消耗掉功耗为 8.7W而输出功率只有 3.3W效率约 27%。Buck 电路则不同它利用电感的储能特性理论上效率可以做到 80%~95%发热量小得多。3.2 Buck 电路基本组成与工作原理一个标准的非同步 Buck 电路由以下部分组成开关管通常为 MOSFET由 PWM 信号驱动续流二极管非同步 Buck 使用或低边 MOSFET同步 Buck 使用电感储能元件输出电容滤波、稳定输出电压反馈电阻与控制环路调节占空比电路简化为两个阶段开关管导通阶段输入电压通过开关管施加到电感一端电感电流线性上升电感储存能量同时给负载供电并给输出电容充电。开关管关断阶段电感电流不能突变此时电感通过续流二极管继续向负载供电电感电流线性下降输出电容维持电压稳定。输出电压与输入电压的关系为Vout D × Vin其中 D 是占空比即开关管导通时间占整个开关周期的比例。这就是为什么“修改占空比可以改变输出电压”——本质上就是控制开关管导通和关断的时间比例从而控制电感两端平均电压进而改变输出。3.3 同步 Buck 与异步 Buck 的区别异步 Buck使用二极管作为续流器件结构简单、成本低但二极管存在约 0.3V~0.7V 的正向压降大电流时续流损耗明显一般适用于中低电流场合。同步 Buck使用低边 MOSFET 替代二极管导通压降只有 MOSFET 的导通电阻乘以电流远小于二极管压降所以重载效率更高。但同步 Buck 需要增加驱动电路并要防止上下管同时导通造成“直通”短路因此需要死区时间控制。对比项异步 Buck同步 Buck续流器件二极管低边 MOSFET效率中低电流下尚可大电流损耗大大电流下效率优势明显成本较低较高设计复杂度简单中等需要死区控制典型应用小功率非隔离电源大电流降压、CPU 供电等3.4 为什么需要自举电容Bootstrap Capacitor同步 Buck 的高边 MOSFET 通常采用 N 沟道 MOSFET。N 沟道 MOSFET 的导通条件是栅极电压比源极电压高一定值而高边管的源极是开关节点SW电压会随着开关在 Vin 和 GND 之间摆动。为了让高边管能可靠导通就需要一个自举电容。利用低边管导通时把电容充电到 VCC等开关节点浮高后电容上的电压把高边管栅极拉到高于源极一个 VCC 的电位从而维持导通。新手布局时自举电容要尽量靠近芯片的 BOOT 引脚和 SW 引脚否则会影响高边管驱动波形导致效率下降甚至无法启动。3.5 Buck 输出电容怎么计算输出电容的主要作用是滤波减小输出电压纹波同时为负载瞬态提供瞬时能量。输出电容的估算可以从两个角度出发满足纹波要求纹波主要由电感电流纹波在电容 ESR 上产生的压降决定。满足瞬态响应要求负载突然变化时输出电容需要提供足够的电荷来维持输出电压稳定。简单估算方法如下先计算电感纹波电流ΔI_L (Vin - Vout) × D / (f_SW × L)其中f_SW是开关频率L是电感值。然后根据允许的输出纹波电压ΔVout和 ESR 要求估算C_out ≥ ΔI_L / (8 × f_SW × ΔVout)这里公式是理想情况下的简化模型实际还需要叠加 ESR 的贡献。选型时可以适当加大电容值留裕量。4. LDO 线性稳压器原理、选型与陷阱4.1 LDO 工作原理LDOLow Dropout Regulator低压差线性稳压器的核心是一个工作在放大区的调整管。输入电压经过调整管后通过反馈电阻采样输出电压误差放大器将反馈电压与基准电压比较动态调整调整管的压降从而维持输出电压稳定。用通俗的话讲LDO 就像是一个“自动调节的可变电阻”多余的能量以热的形式消耗掉。LDO 的优点非常明显输出纹波小、噪声低、响应速度快、外围电路简单。缺点也很致命只能降压不能升压而且输入输出压差越大效率越低。4.2 关键参数解读Dropout 电压压差指 LDO 正常稳压所需的最小输入输出电压差。如果输入电压过低低于 Vout DropoutLDO 就“失稳”了输出会跟着输入下降。静态电流IqLDO 自身消耗的电流。对于电池供电设备静态电流越小越有利于延长待机时间。PSRR电源纹波抑制比衡量 LDO 对输入纹波抑制能力的参数。高 PSRR 的 LDO 适合给射频、音频、模拟传感器等敏感电路供电。最大输出电流LDO 能持续提供的负载电流。选型时一定要留裕量不要顶着极限跑。4.3 LDO 与 DC-DC 的区别和适用场合很多新手会纠结同一个问题LDO 和 DC-DC 到底怎么选其实不矛盾可以按下面几条经验判断压差小、负载电流小几十毫安到几百毫安、噪声敏感的模拟电路优先选 LDO。压差大、负载电流大对效率有要求的数字电路优先选 Buck。电池供电设备的数字部分通常先用 Buck 把电池电压降到中间电压再用 LDO 给 MCU/传感器供电这样可以兼顾效率和噪声。还要注意一点LDO 的“地”不是无限理想的。在大电流情况下PCB 走线电阻会导致地平面电位偏移从而影响输出电压精度。因此 LDO 的地线布局要采用单点接地或星形接地避免输出大电流走线经过反馈地。4.4 NMOS 功率管 LDO 的特点传统的 LDO 调整管常用 PMOS因为 PMOS 源极接输入栅极控制方便。但 PMOS 在低压大电流场景下的导通电阻较大效率受限。NMOS 功率管 LDO 因为载流子迁移率更高可以在同等面积下实现更低的导通电阻从而支持更大电流和更低压差。但 NMOS 是“源极跟随”结构输出电压比栅极电压低一个 VGS因此需要额外的电荷泵或偏置电路提供更高栅极驱动电压。实际选型时NMOS 功率管 LDO 通常用于对低压差和效率要求较高的场合比如 3.3V 转 1.8V、1.8V 转 1.2V 等大电流低电压场景。由于芯片内部已经集成了电荷泵对于外部使用来说与普通 LDO 差别不大但要注意数据手册中对输入偏置电压脚的特殊要求。5. USB PD 供电设计基础5.1 USB PD 是什么USB PDPower Delivery是 USB 协会推出的快速充电和供电协议。相比传统 USB 的固定 5V 供电USB PD 通过 Type-C 接口中的 CC 线进行通信协商可以让设备和电源适配器协商出更灵活的电压和电流组合例如 5V/3A、9V/3A、15V/3A、20V/5A 等。在物联网设备、KVM 切换器、扩展坞、嵌入式主机中USB PD 的应用非常广泛。一端接 USB PD 充电器另一端设备通过协议芯片协商获取合适电压再经过 Buck/LDO 降压给系统各模块供电这是一种非常简洁的“单口多电压”整机电源方案。5.2 Sink 端受电端怎么实现 PD 协商如果设备需要“吃”PD 充电器的电通常有两种方案购买集成 PD Sink 协议的芯片比如常见的 PD Trigger 小板或协议芯片。直接用 MCU 配合 USB PD 协议栈实现适合需要深度定制电压选择的场景。第一种方案工作流程如下PD Sink 芯片连接 Type-C 接口的 CC1/CC2 引脚上电后芯片自动与充电器Source 端通信发起 Source_Capabilities 请求然后发送 Request 报文请求目标电压充电器确认后切换输出。对于硬件工程师来说外围电路主要集中在CC1/CC2 引脚需要 5.1kΩ 下拉电阻到地部分芯片内置。VBUS 输入加 ESD 保护、TVS、输入电容。使能引脚控制整个电源路径的通断。5.3 USB PD 与锂电池充电的关系很多人会混淆“USB PD 快充”和“锂电池快充”。实际上USB PD 是充电器和设备之间关于电压电流的协商机制而锂电充电管理是设备内部电池充电曲线的控制两者是前后级关系。举个例子一台带电池的设备PD 芯片负责把充电器的 20V 协商下来然后 Buck 电路把 20V 降到锂电充电管理芯片适合的输入电压比如 9V 或 5V随后充电管理芯片按照恒流/恒压/截止三阶段给锂电池充电。理解这层关系后设计复杂电源链路时就不容易搞混。5.4 USB PD 设计注意事项协议芯片和 Type-C 连接器之间尽量短走线CC 线串扰会影响协议握手。VBUS 上的电容不要过大否则会触发充电器过流保护或慢启动问题。如果需要支持双向 PDDRP必须选择支持完整协议栈的芯片并仔细处理 Try.SRC 和 Try.SNK 时序。USB PD 协议芯片的固件版本必须和实际充电器兼容否则会导致协商失败输出电压停在 5V 默认档位。6. 锂电充放电管理设计要点6.1 锂电池充电的三个阶段当前绝大多数锂电池充电管理芯片采用恒流CC→ 恒压CV→ 截止EOC三段式充电策略。以单节 3.7V 锂电池为例预充阶段如果电池电压低于 3.0V先以小电流约 0.1C预充激活电池保护电路。恒流充电CC电池电压上升到 3.0V 以上后以设定电流恒流充电电池电压逐渐上升。恒压充电CV电池电压达到 4.2V不同类型可能为 4.35V/4.4V后改为恒压充电电流逐渐下降。充电截止充电电流降到约 0.1C 或芯片内置阈值时停止充电。6.2 电量计算与硬件设计硬件设计里电量计算主要依赖两种方法电压法简单直接通过 ADC 采样电池电压查表估算电量。缺点是电池带载电压会明显下降精度差适合成本敏感、对电量精度要求不高的场景。库仑计法通过串联采样电阻或芯片内部集成的高边/低边采样对充放电电流进行时间积分精度高但成本也高。充电电流采样电阻的选择要特别注意温漂。对于大电流充电2A 以上采样电阻上消耗的功率不可忽略建议用低温漂合金电阻同时布局时远离热源。6.3 关键保护电路锂电池的不当使用可能导致起火或爆炸因此保护电路必不可少过充保护电池电压超过上限时切断充电回路。过放保护电池电压低于下限时切断放电回路。过流和短路保护电流超过阈值或发生短路时快速断开。常见方案是直接选用内置保护的锂电保护芯片比如 DW01 8205A 的经典组合。充电管理芯片负责充电曲线保护芯片负责安全边界两者配合使用。6.4 硬件设计要点与布线建议充电电流较大时充电芯片的散热焊盘必须铺铜并打过孔散热。电池正负极走线要尽量短粗减小线路压降。电池 NTC 热敏电阻要贴着电池本体走线远离大电流路径。不要为了省成本省略电池保护芯片量产品优先选用带保护的完整方案。7. 完整实战5V USB 输入 → 锂电池充电 → 3.3V 系统供电接下来用一个常见的实战案例把上述内容串起来。场景如下输入5V USB 接口或 5V USB PD 默认档位电池单节 3.7V 锂电池输出3.3V 给 MCU 和传感器供电同时支持 USB 在线供电7.1 系统电源树设计USB 5V ──┬── 锂电池充电管理芯片 ── 锂电池 ──┬── 系统负载切换 ── 3.3V Buck/LDO ── MCU │ │ └── 5V 供电轨 ──────────────────────┘当 USB 接入时系统可以由 USB 直接供电同时给电池充电。USB 断开时系统自动切换为电池供电。7.2 器件选型思路充电管理芯片选一颗带线性充电或开关充电的单节锂电池充电芯片。电流 1A 以下可选线性充电方案成本低、外围简单2A 以上建议选开关充电。3.3V 稳压方案如果电池电压是 3.0V~4.2V需要把电池电压降到 3.3V。这里有两种选择一是 LDO优点是噪声低、静态功耗小适合轻负载二是 Buck适合负载电流大500mA 以上的场景。电源切换可以用两颗 PMOS 实现“USB 优先”的自动切换也可以用专门的电源路径管理芯片。7.3 电路设计示例核心片段下面是一个简化的电源树核心原理图描述实际连接需根据具体芯片数据手册调整。USB 5V ──┬─── 输入保护TVS/ESD── 充电芯片 IN 引脚 │ └─── 5V 供电轨 ── PMOS_S1 ──┐ ├── SYS 节点 锂电池 BAT ── 保护板 ── PMOS_S2 ────┘ SYS 节点 ── 3.3V LDO或 Buck── 3.3V 输出 ── MCUP-MOS 开关控制逻辑输入状态USB 是否存在PMOS_S1PMOS_S2SYS 供电来源USB 插入是导通断开USB 5VUSB 移除否断开导通锂电池7.4 软件控制逻辑示例核心片段如果使用 MCU 配合充电芯片的状态引脚可以做更智能的电源管理。以下是一个简单的状态检测逻辑以 C 语言伪代码展示。// 文件路径src/power_manage.c #include power_manage.h // 充电芯片状态引脚定义 #define CHG_STAT_1_PIN GPIO_PIN_0 #define CHG_STAT_2_PIN GPIO_PIN_1 #define CHARGE_EN_PIN GPIO_PIN_2 typedef enum { POWER_SOURCE_USB 0, POWER_SOURCE_BATTERY, POWER_SOURCE_UNKNOWN } power_source_t; power_source_t power_get_source(void) { // 读取 USB 检测引脚高电平表示 USB 已插入 if (usb_detect_read() 1) { return POWER_SOURCE_USB; } // 读取电池电压判断是否处于欠压状态 uint16_t batt_mv battery_read_millivolt(); if (batt_mv 3000) { // 电池欠压进入低功耗保护模式 return POWER_SOURCE_UNKNOWN; } return POWER_SOURCE_BATTERY; } void power_system_init(void) { // 使能充电芯片 gpio_write(CHARGE_EN_PIN, 1); // 根据电源来源执行不同策略 power_source_t source power_get_source(); switch (source) { case POWER_SOURCE_USB: // USB 供电时可以打开大功率外设 printf(Power source: USB\n); break; case POWER_SOURCE_BATTERY: // 电池供电时降低外设功耗 printf(Power source: Battery\n); break; default: // 进入低功耗模式 printf(Power source: Unknown, enter sleep\n); break; } }这段代码只是核心逻辑片段实际项目中需要根据你的 GPIO 库、ADC 驱动、日志打印方式调整。7.5 焊接与调试步骤先用可调电源在 USB 输入端加 5V确认整板待机电流正常。测量锂电池 BAT 电压确认充电芯片输出电压正常。插上电池测量充电电流确认处于恒流充电状态。测量 3.3V 输出确认电压精度在 ±2% 以内。用示波器观察 3.3V 纹波正常情况下纹波应小于 30mV根据负载不同会有差异。拔掉 USB确认系统自动切换为电池供电3.3V 输出电压无跌落。8. 常见问题与排查思路8.1 Buck 电路输出电压异常问题现象常见原因解决思路输出电压比设定值低电感饱和导致电感量下降更换更大饱和电流的电感输出有周期性开关噪声补偿网络参数不合适按数据手册重新计算补偿元件上电瞬间输出过冲软启动电容过小或缺失检查软启动引脚电容适当加大轻负载电压升高最小占空比限制或轻载模式异常检查 PFM/轻载模式配置8.2 LDO 发热严重LDO 发热的根本原因很简单输入输出压差和负载电流共同决定的功率损耗变成了热。公式为P_loss (Vin - Vout) × I_load如果发热严重优先做两件事一是换成 Buck 电路二是降低 LDO 输入电压比如先 Buck 到 3.6V 再 LDO 到 3.3V。同时确认 PCB 散热焊盘是否正常接地铺铜。8.3 USB PD 协商失败现象设备插入充电器后只显示 5V无法进入目标电压。可能原因CC 电阻值不对、协议芯片固件不兼容、VBUS 电容过大。解决方案先用 PD 诱骗器确认充电器输出能力检查 CC1/CC2 下拉电阻更换协议芯片的固件版本测试。8.4 锂电池充不满或很快就没电这个现象要从三个维度排查充电截止电流判断充电管理芯片检测到小电流后截止如果截止电流阈值设置过高电池会“提前饱”实际容量不足。待机功耗整板待机电流过大电池自然不耐用。用万用表串联测待机电流通常 MCU 休眠 关闭外设后应在几十微安量级。电池本身质量问题容量虚标或内阻过大也会导致充电快、放电也快。9. 电源设计最佳实践与工程建议9.1 布局布线建议输入电容尽量靠近芯片 VIN 引脚输入电容到 VIN 引脚的回路面积越小EMI 越小。功率回路面积要小以 Buck 电路为例开关管、续流管、输入电容构成的脉冲电流回路要是整个 PCB 上面积最小的回路。反馈采样要远离开关节点反馈电阻的采样点应直接接在输出电容的负载端避免靠近电感或 SW 节点防止被开关噪声干扰。地平面尽量完整电源模块下方尽量不要走高速信号线。9.2 器件选型建议电感的饱和电流要大于电路最大峰值电流的 1.2~1.5 倍。输入输出电容优先选择低 ESR 的 X5R/X7R 陶瓷电容。Buck 芯片的开关频率与电感量、输出电容共同决定纹波选型时可以用 WEBENCH 或 LTspice 做一轮仿真免得 PCB 回来再改版。LDO 选型时不仅要看最大输出电流还要关注封装热阻θJA计算最大功耗下结温是否在安全范围内。9.3 电源监控与保护设计电源上电时序不敏感的芯片可以用简单的 RC 延时电路敏感芯片需要使用电源时序控制器或通过 MCU GPIO 控制使能引脚。量产品一定要保留测试点TP方便产线测试电压、波形和电流。在输入端口增加 ESD/TVS 保护特别是 USB、外部电源接口等容易受静电冲击的位置。所有电源设计变更先在小批量测试板上验证再导入量产。9.4 文档与记录习惯电源调试最容易“改了一处忘了另一处”。建议在原理图上直接标注关键波形测试点、输入输出电容选型依据、电感饱和电流计算过程。调试时养成记录波形和数据的习惯方便后期 review 和问题回溯。10. 总结与下一步学习路线本文围绕电源模块设计入门系统梳理了 Buck 降压电路、LDO 线性稳压、USB PD 供电协商、锂电池充放电管理四个核心知识点。通过完整的 5V 输入→锂电充电→3.3V 系统供电实战案例演示了电源树设计、器件选型、硬件连接和软件控制的基本方法。下一步可以根据你的实际方向继续深入如果做小型传感器节点重点研究低静态电流 LDO、电池电量估算和低功耗电源切换电路。如果做电机驱动或大功率设备继续学习 Buck 的环路补偿、同步整流技术、MOSFET 驱动设计和 EMI 抑制。如果做快充或 USB 相关产品深入研究 PD 协议状态机、DPDM 快充协议和 Type-C 检测电路。电源设计是一个需要不断积累的领域很多经验来自“焊板子、抓波形、烧芯片”的循环。建议你从一块简单的电池供电开发板开始亲手测一遍充电电流、休眠电流、Buck 开关波形和纹波这些实际数据要比背十遍数据手册更有用。如果本文对你有帮助可以收藏备用后续还会继续整理电源相关的实战调试笔记。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进