3.7V锂电池升5V:Buck-Boost电源设计全解析
前阵子帮朋友调一块用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我建议你别只盯着Boost1.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信号控制开关管把电感一端接到GNDVin通过电感向电感充磁电感电流线性上升能量以磁场形式储存在电感里。这个阶段负载电流完全由输出电容提供所以输出电容不能太小否则纹波会很难看。第二阶段开关管关断。电感电流不能突变电感两端电压会自动反向变成“左负右正”把原来存下的能量通过二极管向输出端释放。此时电感上感应电动势和输入电压叠加所以输出端电压能高于输入电压。二极管在这里很关键它防止输出电容反向放电到电感或开关管。Boost的升压比就是靠控制这两个阶段的时间比例实现的。用占空比D表示导通时间占一个周期的比例输入电压Vin、输出电压Vout之间有一个近似关系Vout约等于Vin除以(1-D)。占空比越大升压比越高但开关管导通时间越长电感峰值电流也越大效率会跟着下降。2.2 也就是VoutVin/(1-D)这个公式怎么来的推导很简单把开关周期看成两个阶段。导通阶段电感两端电压是Vin电感电流变化量等于Vin乘ton除以L。关断阶段电感两端电压是Vout减去Vin忽略二极管正向压降电流变化量等于(Vout - Vin)乘toff除以L。稳定工作时一个完整周期内电感电流的净变化为零所以两段变化量绝对值相等Vin * ton / L (Vout - Vin) * toff / L两边消掉L再把ton换成D乘周期Ttoff换成(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时D0.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-Boost1.8V~5.5V5V输出约1A中高同步整流中等较高MT3608/SX1308Boost2V~24V低压输入时电流受限一般低低XL6009Boost3V~32V较高但体积大一般低低3.4 不同方案横向对比表如果你的系统只是纯电池、升5V、负载不超过500mA其实用MT3608这类Boost模块就够成本最低。如果要用到1A以上或需要兼容USB 5V输入或者对动态响应和纹波有要求那直接上Buck-Boost芯片更省心。选型时不要被标称“输入范围2V到24V”迷惑那只是芯片能工作的范围不代表全范围内都能输出5V真正要看的是输入输出电压交叉点上的效率和限流值。4. 手把手画原理图TPS63020电路图、电阻计算和BOM4.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系列电阻R1910kΩ、R2100kΩ实际输出是5.05V左右如果不想有0.05V偏差可以用E96系列R1909kΩ、R2100kΩ输出约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.5ADCR尽量小于100mΩ”来选。同样感值的电感饱和电流差别很大只看封装不看规格书一定会踩坑。输入输出电容以低ESR陶瓷电容为主。输入电容主要作用是为高频开关电流提供低阻抗路径至少10uF放在VIN引脚附近输出电容用来减小输出电压纹波推荐22uF以上可以选一颗22uF再并联一颗0.1uF高频去耦电容。电容耐压值至少10VX5R或者X7R材质优先因为它们的容量在直流偏压下衰减比Y5V小很多。很多人在5V输出后端并100uF大电容反而导致启动时过冲这个后面会说到。4.4 完整BOM表下面这张BOM表是我实际去打样时用的物料清单全部是容易买到的型号和参数。位号参数/型号数量备注U1TPS630201四开关Buck-Boost芯片L12.2uH饱和电流大于2.5A1功率电感DCR越小越好C110uFX5R10V1输入电容靠近VIN引脚C222uFX5R10V1输出电容靠近VOUT引脚C30.1uFX7R10V1高频去耦可选R1910kΩ1%1反馈分压上臂R2100kΩ1%1反馈分压下臂R3100kΩ1EN上拉可省略直连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之间既保证稳定也避免启动时充电电流过大导致过冲这个小原则在后续几版电源设计里帮我省了不少返工时间。