前阵子帮朋友调一块用3.7V锂电池供电的便携设备,PCB上用的是一颗Boost升压芯片,标称能把2.5V到4.5V升到5V,结果电池电压掉到3.3V左右,输出端一带载,电压直接从5V滑到4.1V,后来我把拓扑换成Buck-Boost方案,重新算了一遍电感和反馈电阻,才彻底解决问题。这篇文章就把这套设计从头到尾写出来,从Buck-Boost电路原理、芯片选型,到原理图和BOM,再到PCB布局和调试,手把手带你做出一块3.7V锂电池升5V的可靠电源板。内容不绕弯子,适合刚接触DCDC的开发者,也适合有基础想核对细节的工程师,电路图会以文字示意加连接清单的形式给出来,认真看一定能复现。
1. 为什么给3.7V电池升5V,我建议你别只盯着Boost
1.1 3.7V锂电池是“一段电压”,不是固定值
很多人以为3.7V锂电池输出就是恒定的3.7V,实际不是这样。一颗标称3.7V的锂离子电池,满电电压是4.2V,放电截止电压通常在3.0V左右,甚至有的设备会放到2.7V。这意味着一块电池从充满到放空,电压会经历4.2V、3.7V、3.3V、3.0V一个完整的下降过程。
如果电源芯片的输入范围不够宽、或者占空比调节能力有限,当电池电压下降后,升压电路可能无法维持5V输出。这里涉及两个关键问题:一是Boost拓扑的升压比是有限的,输入越低,开关管导通占空比越大,峰值电流越高,芯片容易进入限流保护;二是很多便宜升压模块虽然标称输入范围很宽,但实际带载能力会随着输入电压下降大幅缩水,所以才会出现我开头说的那个“输出跌落”现象。
设计这套电路之前,必须先明确电池的最低工作电压。我建议普通3.7V锂电池最低按3.0V设计,如果你用的是带保护板的电池包,保护板动作电压可能在2.5V到2.8V之间,但为了留出余量,电路设计仍按3.0V输入来校核比较稳妥。这样后续算电感、选芯片时,才会知道最恶劣工况在哪。
1.2 Boost和Buck-Boost到底差在哪
Boost升压电路只能把输入电压往上抬,输入电压必须低于输出电压,典型结构是“电感、开关管、二极管”三件套。Buck-Boost升降压电路则既能把电压抬上去,也能把电压降下来,其中比较主流的是四开关Buck-Boost结构,内部有四个开关管,相当于一个Buck电路前级加一个Boost电路后级组合到一起。
回到标题里的场景:3.7V锂电池升压到5V,正常情况下一路升压即可,Boost完全能覆盖。那为什么还要谈Buck-Boost?有两个很现实的原因。第一,如果你的系统里存在“输入电压可能会高于5V”的工况,比如同一个5V母线偶尔会接USB供电,或者电池不是锂电而是三节镍氢电池大约4.5V到5.4V,那么Boost就没法用了,Buck-Boost可以自动切换成降压或直通模式。第二,电池电压在4.2V到5V之间时,Boost虽然能升压,但升压比接近于1,占空比很小,控制环路容易不稳定,而Buck-Boost芯片会在“该降压时降压、该升压时升压、接近时用混合模式”,输出电压纹波和环路动态特性都会更好。
不过也要说句公道话,如果你只做纯电池供电、不会出现输入高于输出的情况,直接用Boost芯片更便宜,效率也不差。我之所以在整套设计里选了Buck-Boost方案,是因为这个板子后面还要兼容USB 5V输入,一颗芯片同时解决升降压问题,比用两颗芯片简单得多。
1.3 先判断需求:你的系统真的需要Buck-Boost吗
我见过很多朋友一上来就问“Buck-Boost芯片哪个好”,结果聊完发现他只需要3.7V电池升5V,负载电流不到500mA,用一颗几毛钱的Boost芯片就搞定了。选拓扑之前,先把需求框死,可以避免从选型就开始跑偏。
你可以按下面几个问题来判断:
- 有没有外部5V输入,比如USB线直接给板子供电?有的话,优先考虑Buck-Boost或者独立的电源路径管理芯片。
- 电池电压是否会长时间高于目标输出电压?如果电池满电4.2V,目标也是4.2V以下,降一点电压再输出,用Buck-Boost会更稳。
- 输出电流超过1A吗?超过1A时,Boost电感峰值电流会很大,芯片发热明显,Buck-Boost内部的同步整流结构通常效率更高。
- 对PCB面积和成本敏感吗?Buck-Boost芯片普遍比Boost芯片贵,而且需要4颗开关管,集成芯片也贵一些。
如果上面四个问题只有一个“有”,我更建议老老实实用Boost,省钱省面积。如果中了两条以上,尤其是兼容USB供电,那Buck-Boost这条路是值得的。
2. 核心原理:电感储能、公式推导、四开关结构
2.1 Boost电路一个开关周期内发生了什么
要理解Buck-Boost,先得把Boost吃透。Boost升压的看家本事是“电感电流不能突变”,整个工作过程分两个阶段。
第一阶段,开关管导通。输入电压直接加在电感两端,地PWM信号控制开关管,把电感一端接到GND,Vin通过电感向电感充磁,电感电流线性上升,能量以磁场形式储存在电感里。这个阶段负载电流完全由输出电容提供,所以输出电容不能太小,否则纹波会很难看。
第二阶段,开关管关断。电感电流不能突变,电感两端电压会自动反向,变成“左负右正”,把原来存下的能量通过二极管向输出端释放。此时电感上感应电动势和输入电压叠加,所以输出端电压能高于输入电压。二极管在这里很关键,它防止输出电容反向放电到电感或开关管。
Boost的升压比就是靠控制这两个阶段的时间比例实现的。用占空比D表示导通时间占一个周期的比例,输入电压Vin、输出电压Vout之间有一个近似关系:Vout约等于Vin除以(1-D)。占空比越大,升压比越高,但开关管导通时间越长,电感峰值电流也越大,效率会跟着下降。
2.2 也就是Vout=Vin/(1-D)这个公式怎么来的
推导很简单,把开关周期看成两个阶段。导通阶段电感两端电压是Vin,电感电流变化量等于Vin乘ton除以L。关断阶段电感两端电压是Vout减去Vin(忽略二极管正向压降),电流变化量等于(Vout - Vin)乘toff除以L。稳定工作时,一个完整周期内电感电流的净变化为零,所以两段变化量绝对值相等:
Vin * ton / L = (Vout - Vin) * toff / L
两边消掉L,再把ton换成D乘周期T,toff换成(1-D)乘T,整理后就是Vout等于Vin除以(1-D)。实际电路中,二极管和开关管都有压降,输出电压可以写成:
Vout = (Vin - Vsw_sat) / (1-D) - Vd
以3.7V电池升5V为例,忽略管压降,占空比D等于1 - Vin/Vout = 1 - 3.7/5 = 0.26,也就是导通时间占26%。当电池电压掉到3.0V时,D约为0.4。这个差别很关键,电感峰值电流不仅和负载有关,还和(1-D)有关。输出电流Iout在连续导通模式下,平均输入电流约等于Iout除以(1-D),再叠加半个纹波电流,就是电感峰值电流。负载1A、电池3.0V时,D=0.4,平均输入电流大约1.67A,如果纹波再大点,电感峰值轻松超过2A,选电感时一定要注意饱和电流。
2.3 四开关Buck-Boost怎么组合出稳定输出
四开关Buck-Boost结构可以理解为“Buck级 + Boost级”共用同一个电感的组合体:输入侧两个开关管,一个负责Buck阶段的High-Side和Low-Side,输出侧两个开关管,一个负责Boost阶段的Low-Side和High-Side,中间串一个电感。
工作模式分三种。第一种,输入电压远高于输出电压,工作在Buck模式,输入侧的High-Side开关以PWM方式通断,电感和输出侧组成降压通道。第二种,输入电压远低于输出电压,工作在Boost模式,输入侧High-Side始终导通,输出侧Low-Side开关以PWM方式通断,完成升压。第三种,输入电压接近输出电压,芯片会在一个周期内同时用Buck和Boost的开关动作,形成所谓“过渡模式”,保证电压切换时不会有中断。
对于3.7V电池升5V来说,电池电压大部分时间低于5V,芯片主战场是Boost模式。但电池刚充满的4.2V到5V之间,升压比很小,很多普通Boost芯片会进入不稳定状态,而四开关Buck-Boost会适当切一点Buck路径进来,让环路更平滑。这也是我把方案定格在Buck-Boost上的一个重要原因。
3. 方案选型:给锂电升5V用的Buck-Boost芯片
3.1 选型前先看这五个参数
芯片选型不能只看“能不能升到5V”,一定要结合锂电池的电压范围和输出电流需求来筛。我个人看五样东西。
第一,输入电压范围。要覆盖3.0V到4.2V,最好留到2.5V以下,因为电池带载时电压可能比空载低。第二,输出电流能力。这里有个容易看错的地方,芯片标的1A输出往往是指某个输入电压下的值,比如5V输入升5V,或者3.3V输入升5V,不能想当然。第三,开关频率。频率高,电感可以选小一点,但可能带来热噪音和干扰问题;频率低,电感和电容会变大。第四,静态电流和效率曲线。如果是电池供电,轻载时静态电流太大会非常耗电,优先找带轻载PFM或低静态电流模式的芯片。第五,封装和外围复杂度。QFN小封装虽然好焊,但手工打样对新手不太友好,要综合评估。
3.2 以TPS63020为例:管脚和外围思路
TPS63020是一颗我用过很多次的四开关Buck-Boost芯片,输入电压范围1.8V到5.5V,输出电压可以调到2.5V到5.5V,内部集成同步整流开关管,外围只需要电感、输入输出电容和反馈电阻。芯片引脚主要包括VIN、EN、L1/L2(接电感两端)、VOUT、FB、GND、PS/SYNC等,其中PS/SYNC用来设置低功耗模式还是强制PWM同步模式。
对于3.7V锂电池升5V的场景,TPS63020的输入电压范围完全覆盖3.0V到4.2V,输出5V时在电池电压3.6V左右可以提供1A以上的输出电流,对于多数便携设备够用。芯片外围设计最关键的是电感不能随便选,手册推荐2.2uH到3.3uH,选小了负载能力不足,选大了会影响动态响应。另外EN引脚最好做上拉,否则芯片默认关断,输出为零。
3.3 同样能用的Boost芯片和他们的边界
如果你需求明确,只用纯Boost方案,也有不少成熟芯片,比如MT3608、SX1308、XL6009。MT3608和SX1308便宜量大,支持2V到24V输入、输出最高28V,很多模块都是基于它们做的。但它们内部开关管电流限制有限,带载能力随着输入电压下降得厉害,而且非同步整流,用二极管或外置肖特基,效率偏低,满载发热明显。
XL6009也是一颗老牌Boost芯片,输入范围宽,输出电流比较大,但它启动电压要求高,而且开关频率只有400kHz左右,电感和电容体积都偏大。这类芯片用来做个实验板没问题,但到量产,尤其是锂电池供电场景,效率、静态电流、保护功能往往都不如专用升降压芯片。
三颗典型芯片放在一起,差别很清楚:
| 芯片方案 | 拓扑 | 输入范围 | 输出能力 | 效率 | 外围复杂度 | 成本 |
|---|---|---|---|---|---|---|
| TPS63020 | 四开关Buck-Boost | 1.8V~5.5V | 5V输出约1A+ | 中高,同步整流 | 中等 | 较高 |
| MT3608/SX1308 | Boost | 2V~24V | 低压输入时电流受限 | 一般 | 低 | 低 |
| XL6009 | Boost | 3V~32V | 较高但体积大 | 一般 | 低 | 低 |
3.4 不同方案横向对比表
如果你的系统只是纯电池、升5V、负载不超过500mA,其实用MT3608这类Boost模块就够,成本最低。如果要用到1A以上,或需要兼容USB 5V输入,或者对动态响应和纹波有要求,那直接上Buck-Boost芯片更省心。选型时不要被标称“输入范围2V到24V”迷惑,那只是芯片能工作的范围,不代表全范围内都能输出5V,真正要看的是输入输出电压交叉点上的效率和限流值。
4. 手把手画原理图:TPS63020电路图、电阻计算和BOM
4.1 完整电路连接图(文字版)
下面这张图是TPS63020为核心的简化原理图,文字版尽可能把每个引脚的连接画清楚。图中没有画出所有去耦细节,但核心功率回路和反馈回路是完整的。
Vin (3.7V锂电池正极) │ ├─ C1 10uF ── GND │ │ ┌──────────────────┐ └──│ VIN VOUT│────┬──── Vout (5V) │ │ │ │ │ ├─ C2 22uF ── GND L1 ──│ L1 L2 │────┘ │ │ EN ──│ EN FB │──── R1 (上端) ─ Vout GND──│ GND PS/SYNC │ │ │ │ R2 (下端) ─ GND └──────────────────┘除了功率回路,还有几个引脚处理要说明。EN引脚必须接高电平,直接接Vin或者用电阻上拉都可以;PS/SYNC引脚如果要强制PWM模式,可以接逻辑高,如果要轻载省电就接低。FB引脚是误差放大器输入,不能悬空,反馈分压电阻的取样点必须从输出电容正极处拉一根独立的走线,不要经过功率电流路径,否则负载电流会在走线电阻上产生压降,导致输出电压测量位置不对。
4.2 反馈电阻:从目标电压倒推阻值
反馈电阻决定输出电压,计算公式很简单:Vout = Vref * (1 + R1/R2)。TPS63020的参考电压Vref典型值是0.5V,目标输出电压5V,代入公式:
5 = 0.5 * (1 + R1/R2) R1/R2 = 9
所以R1阻值是R2的9倍。阻值太小,反馈网络本身耗电会增加;阻值太大,FB引脚的输入漏电流会在电阻上产生误差。经验上把R2选在100kΩ附近,R1选在900kΩ附近。我习惯用E24系列电阻R1=910kΩ、R2=100kΩ,实际输出是5.05V左右;如果不想有0.05V偏差,可以用E96系列R1=909kΩ、R2=100kΩ,输出约5.045V。5V设备通常能接受±5%的范围,也就是4.75V到5.25V,所以用标准E24电阻完全没问题。
如果输出目标不是5V,比如要做3.3V或者12V,把目标值代进公式重新算一遍即可,乘法运算不用我多说。有一点要注意,反馈分压电阻中间节点到FB引脚之间的走线尽可能短,并且要和电感、开关节点拉开距离。因为FB节点是高阻节点,很容易拾取开关噪声,一旦噪声耦合进去,输出电压就会出现周期性抖动。
4.3 电感、电容怎么选:参数计算比抄封装更重要
很多新手直接沿用参考设计里的电感2.2uH,这是可以,但不一定最优。电感的感值会影响纹波电流大小。根据电感纹波电流公式:
ΔI = Vin * D / (fsw * L)
TPS63020开关频率典型2.4MHz,以输入3.7V、占空比0.26为例,电感2.2uH时:
ΔI = 3.7 * 0.26 / (2.4e6 * 2.2e-6) ΔI ≈ 0.182A
这个纹波值不算大,但还要考虑电感饱和电流。电感峰值电流是平均输入电流加半个纹波电流。输出1A、输入3.0V时,D约0.4,平均输入电流Iin约等于Iout/(1-D) = 1/0.6 ≈ 1.67A,峰值电流约1.76A。考虑芯片限流、启动瞬间和负载瞬态,电感的饱和电流至少留1.5倍余量,也就是2.5A以上。所以我建议电感参数按“2.2uH到3.3uH,饱和电流大于2.5A,DCR尽量小于100mΩ”来选。同样感值的电感,饱和电流差别很大,只看封装不看规格书,一定会踩坑。
输入输出电容以低ESR陶瓷电容为主。输入电容主要作用是为高频开关电流提供低阻抗路径,至少10uF,放在VIN引脚附近;输出电容用来减小输出电压纹波,推荐22uF以上,可以选一颗22uF再并联一颗0.1uF高频去耦电容。电容耐压值至少10V,X5R或者X7R材质优先,因为它们的容量在直流偏压下衰减比Y5V小很多。很多人在5V输出后端并100uF大电容,反而导致启动时过冲,这个后面会说到。
4.4 完整BOM表
下面这张BOM表是我实际去打样时用的物料清单,全部是容易买到的型号和参数。
| 位号 | 参数/型号 | 数量 | 备注 |
|---|---|---|---|
| U1 | TPS63020 | 1 | 四开关Buck-Boost芯片 |
| L1 | 2.2uH,饱和电流大于2.5A | 1 | 功率电感,DCR越小越好 |
| C1 | 10uF,X5R,10V | 1 | 输入电容,靠近VIN引脚 |
| C2 | 22uF,X5R,10V | 1 | 输出电容,靠近VOUT引脚 |
| C3 | 0.1uF,X7R,10V | 1 | 高频去耦,可选 |
| R1 | 910kΩ,1% | 1 | 反馈分压上臂 |
| R2 | 100kΩ,1% | 1 | 反馈分压下臂 |
| R3 | 100kΩ | 1 | EN上拉,可省略直连Vin |
如果你打算把板子放在金属外壳里长期工作,注意电感的磁场泄漏,尽量选屏蔽式电感,比如贴片一体成型电感或者带磁屏蔽的电感,否则会对附近的音频电路或者无线模块产生干扰。不过屏蔽电感一般贵一点,自己权衡。
5. PCB布局、焊接和第一次上电
5.1 开关电源布局最核心的一句话:让高频电流回路最短
DCDC布局说复杂复杂,说简单就一句话:高频电流换流的回路面积一定要小。对于TPS63020这类同步Buck-Boost,最关键的是输入电容、芯片、电感、输出电容这几个器件组成的功率回路。布局时把输入电容尽量靠近VIN引脚,输出电容尽量靠近VOUT引脚,电感紧挨着L1/L2引脚,地引脚通过过孔直接打到地平面,避免长走线绕圈。
我自己习惯的顺序是:先固定芯片,把VIN输入电容放在芯片左上侧,电感横在芯片右边,输出电容放在VOUT右边,这样功率回路呈一条直线,电流走向清晰。反馈电阻和FB走线放在芯片左下侧,远离电感。电感正下方的地层最好挖空一点,防止磁场在地层感应涡流。如果做不到挖空,至少不要在电感正下方走敏感信号线。
5.2 手工焊接顺序和检查
如果你是手工焊QFN封装,不要先涂一大坨锡膏。我常用的方法是在焊盘上薄薄上一层锡,再用烙铁加低温锡膏预上锡,然后把芯片对准摆放,热风枪均匀加热到锡融化,看到芯片自动回正就说明焊住了。温度建议330摄氏度左右,风速不要太大,吹太久容易把芯片吹鼓包。
焊完以后先不要急着上电,拿起万用表蜂鸣档测三组短路:VIN对GND、VOUT对GND、SW对GND,这三组应该都开路或阻值在几百欧以上。如果VIN对GND直接短路,大概率是输入电容焊反或者芯片方向放反。电容焊反时陶瓷电容会慢慢发热,长时间还可能炸裂。上电前检查比上电后排查省事太多。
5.3 第一次上电要用限流源,别直接怼电池
第一次上电最忌讳直接接电池,因为如果板子上有短路,电池内阻小,短路电流能瞬间烧毁走线和芯片。我建议先用可调直流电源设成3.7V,电流限制设成0.2A或0.3A,上电后看电源显示电流是多少。正常待机时电流只有几毫安到十几毫安,如果此时EN没拉高,则基本只有静态电流。如果一上电就电流飙到0.3A甚至被限流,先去查输出电容方向、反馈电阻焊接、芯片引脚有没有连锡。
电流正常后,再手动把EN引脚接到高电平,此时输出端应该出现5V。测量时用万用表测输出电压,同时观察输入电流有没有突然增加。如果没有输出,逐点量VIN电压、EN电压、SW节点波形,很快能定位是哪一级没工作。
5.4 效率测试和SW点波形
调试完成以后,建议做一次效率测试。用电子负载或者电阻做负载,从空载到满载分几个点,分别记录输入电压、输入电流、输出电压、输出电流。效率等于输出功率除以输入功率。实际测下来,TPS63020在电池电压3.7V、输出5V/0.8A左右时,效率大约在85%上下,负载太轻或者太重都会下降。如果效率明显偏低,优先看电感DCR和SW节点波形。
用示波器测SW节点波形能看出很多问题。正常工作时SW点应该是一个方波,频率稳定,占空比随输入电压变化。如果波形上有严重振铃,说明回路寄生电感大,需要调整布局,或者在SW节点加一个RC吸收电路。如果占空比不断跳变,可能是芯片在切换Buck和Boost模式,属于正常现象。异常波形处理完后再进行满载老化测试,连续跑半小时看芯片温度和输出电压稳定性,这样一套板才算可靠。
6. 实测中的三个坑,希望你不用重踩
6.1 满载掉压:罪魁祸首往往是电感饱和电流不够
有一次我给板子接1A负载,输出电压直线从5.0V跌到4.2V,芯片还烫得厉害。一开始以为是芯片坏了,后来查手册发现SW引脚电流限制触发得过于频繁,再一查才发现电感是便宜的铁氧体电感,规格书上饱和电流只有800mA。电感饱和后相当于失去储能能力,开关管导通时相当于直接把输入短路到大电感,电感电流飙升,芯片自然进入限流保护,输出就保不住。
解决方式很简单,换成饱和电流大于2.5A的电感,问题立刻消失。实际项目里,这类“满载掉压”问题有八成都和电感有关,而不是芯片本身。所以选电感时一定要看规格书里的饱和电流曲线,有些电感虽然标称电流2A,但实际在1.5A时感值已经衰减了50%,这时候纹波会变大,输出纹波也会变大。
6.2 轻载啸叫:不能只怪电感,先看工作模式和反馈电阻
板子在100mA以下轻载运行时发出吱吱声,这是很多开关电源的通病。啸叫来源主要是电感或陶瓷电容在特定频率下产生机械振动。如果芯片工作在PFM模式,开关频率会随着负载变化掉到人耳可听范围内,比如20kHz以下,这时候电感线圈或电容就会发声。
解决办法是优先确认芯片是不是处于轻载脉冲模式。TPS63020的PS/SYNC引脚接低电平时启用省电模式,轻载时会丢脉冲,容易啸叫;把PS/SYNC拉高切换到强制PWM模式,开关频率固定到2.4MHz,超出人耳范围,啸叫就会消失,代价是轻载静态电流变高。另外,反馈电阻如果阻值取得特别大,比如R2取1MΩ,FB引脚极其容易耦合开关噪声,也可能引起低频抖动。所以反馈电阻不要一味求大,100kΩ附近是一个平衡点。
6.3 电池电压接近输出电压时,输出反复波动
这个现象可能出现在电池满电4.2V、目标输出5V时,虽然升压比只有1.19,但某些Buck-Boost芯片在切换Buck和Boost模式的边界上,控制算法切换不及时,会看到输出电压出现周期性小脉冲波动,或者SW点波形出现打嗝。TPS63020在不同输入电压下会做模式切换,如果切换判断阈值附近有噪声,就可能反复横跳。
我在实际调试中处理过两次这种问题,一次是输入走线太细、电池电压纹波在模式切换时跳动,在VIN引脚并一颗10uF陶瓷电容后解决;另一次是输出电容偏小,在VOUT引脚额外并一颗22uF电容后解决。总体来说,保证输入输出电容都在推荐值以上,并且把芯片的反馈环路尽量干净,这个现象很少出现。如果仍然存在,利用PS/SYNC强制PWM模式通常也能改善。
最后再分享一个小技巧:做支撑实验时,可以在输出端临时串一个0.5Ω的电阻再并一个470uF电解电容,观察上电瞬间出现过冲。很多电源在负载切换时会有几十毫秒的振铃,如果这个振铃幅度超过5.5V,后级负载可能扛不住。调这个板子时,我习惯把输出电容控制在22uF到47uF之间,既保证稳定,也避免启动时充电电流过大导致过冲,这个小原则在后续几版电源设计里帮我省了不少返工时间。