ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

嵌入式双路DC-DC降压电源设计实战:从芯片选型到PCB布局与调试

嵌入式双路DC-DC降压电源设计实战:从芯片选型到PCB布局与调试 在这几年做嵌入式项目的过程中我越来越确信一件事电源设计往往决定了一个嵌入式系统能不能稳定跑到最后。MCU再强、外设再多只要供电纹波一大、掉电时序一乱整套设备就会呈现出各种让你抓狂的“幽灵故障”——莫名重启、ADC采集跳变、通信偶发丢包。今天要分享的这个项目就是一套非常典型的嵌入式电源方案双路DC-DC降压模块同时输出5V和3.3V从需求拆解、芯片选型、电路计算到PCB布局和实测调试我会把整个设计和实现过程完整写出来。这套方案非常适合正在做STM32、ESP32或其他主流MCU项目的开发者参考也适合所有想系统搞懂DC-DC降压电路设计的朋友拿来当作入门到进阶的实战教材。1. 内容整体设计与思路拆解1.1 嵌入式系统中的双电压需求从哪来做过嵌入式开发的朋友都知道一套完整的嵌入式系统里几乎很少只用一个电源电压就能搞定所有器件。以最常见的MCU系统为例核心板和底板上的器件至少需要两种电压等级5V主要供给USB接口、舵机、电机驱动逻辑端、CAN收发器、LCD背光、传感器模块像超声波、激光雷达等以及部分运放电路。3.3V绝大多数MCUSTM32、ESP32、GD32等的I/O供电电压还有Flash存储芯片、温湿度传感器、MPU6050惯性传感器、蓝牙/WiFi模组等。如果系统由12V或24V的锂电池/适配器供电那我们就需要一个降压电路把较高的输入电压降到稳定的5V再从5V或者直接从输入降压得到3.3V。这个场景在无人机飞控、机器人主控板、智能家居网关、车载电子设备的电源子系统里极其常见。一开始我图省事直接用LDO线性稳压器来做降压比如用AMS1117-3.3把5V转成3.3V。实测下来在电流需求小的时候还凑合但当系统里同时挂载WiFi模块瞬时电流能到300mA以上和多个传感器时LDO的压差损耗带来的发热问题就非常明显了。如果从12V直接降到3.3VLDO上消耗的功率就是12-3.3×I电流一大发热量根本扛不住效率可能只有30%左右。这就是为什么这个项目选择DC-DC降压方案的根本原因——高效率、低发热、能应对较大的电流负载。1.2 为什么选择双路DC-DC而非两级降压加LDO的组合确定使用DC-DC方案之后还有一个关键决择是输入电压先经过一路DC-DC降到5V再用一路LDO从5V转3.3V还是直接做两路独立的DC-DC降压我最终选择了双路独立DC-DC降压并且是两路都直接从输入端取电比如从12V分别降压到5V和3.3V而不是先降到5V再降3.3V。这么设计主要基于三个理由效率最优。每一级DC-DC的转换效率通常能到90%左右。如果采用5V→3.3V的LDO方案这级效率只有66%3.3/5整体功耗会白白浪费在发热上。如果采用5V→3.3V的DC-DC虽然效率也不错但电能在两级转换中被重复处理综合效率不如两路独立降压来得干净。负载隔离。5V负载舵机、电机驱动、USB往往是电流波动比较大的比如舵机堵转时电流会突然从几百毫安飙升到好几安培。如果3.3V是从5V那路转换过来的5V电压跌落会直接传导到3.3V输出严重时MCU会复位。两路独立可以从根源上避免这种串扰。灵活性。双路独立降压可以让两路输出分别调节电压比如其中一路做成可调输出还能分别控制使能时序这对复杂系统的上电时序控制非常关键。当然独立双路的代价是板面积稍大、元件数多一些、成本略高。但权衡下来在绝大多数可靠性要求较高的嵌入式场景里这个取舍是值得的。1.3 方案选型降压拓扑的核心要点标题里提到的DC-DC降压专业术语叫Buck拓扑也就是降压斩波电路。它的核心思想是通过高速开关管MOSFET以一定占空比对输入电压进行斩波再经LC滤波器平滑成稳定的直流输出。Buck电路的关键优势在于开关管在导通和截止两种状态下损耗都很小因此转换效率远高于线性稳压。在这个项目里我采用的是集成MOSFET的同步整流Buck芯片。所谓同步整流就是芯片内部把原来的续流二极管换成了另一颗MOSFET用低导通电阻Rdson来降低续流压降进一步提升效率。现在主流的DC-DC芯片基本都支持同步整流选型时优先考虑。整个方案的结构可以概括为四部分功能模块核心作用关键元件输入滤波抑制输入侧纹波和反冲电压输入电容、TVS管、保险丝Buck降压主电路高频斩波、能量转换开关芯片、电感、续流MOS芯片内置反馈与补偿稳定输出电压、调节动态响应反馈电阻、补偿电容、电感输出滤波降低输出纹波、平滑波形输出电容、前馈电容实际设计时每一部分都有不少需要注意的细节我会在后面的章节里结合参数计算和布局经验展开讲。2. 芯片选型与外围元件参数计算2.1 主控芯片选型三个关键参数DC-DC芯片是整个模块的核心选型时我通常重点看三个参数输入电压范围、最大输出电流、开关频率。另外静态功耗、封装类型、反馈电压精度也会纳入考量。结合这个项目的具体需求输入电压12V兼容9V~24V范围留足余量输出15V最大输出电流2A给舵机、USB等供电输出23.3V最大输出电流1.5A给MCU和外设供电根据这些参数我对比了几款常用芯片芯片型号输入电压范围最大输出电流开关频率反馈电压封装MP15844.5V~28V3A1.5MHz0.6VSOP-8TPS54305.5V~36V3A500kHz1.221VSOIC-8XL40158V~36V5A180kHz1.25VTO-263SY83034.5V~40V3A1.2MHz0.6VSOT23-6实际项目中我最终选了MP1584作为第一路5V/2A第二路3.3V/1.5A选了一颗输入耐压稍低但静态功耗极低的同步降压芯片。两路加起来正好覆盖项目需求成本也控制得住。有一个选型心得想分享给大家**不要只关注电流规格而忽略电感的选择。**很多标称3A的芯片如果不搭配合适饱和电流的电感实际能达到的持续输出电流可能只有标称值的50%—60%而且容易因为电感饱和导致芯片过热甚至烧毁。电感选型在下一节会重点展开。2.2 电感选型的完整计算过程电感是Buck电路里最核心的储能元件直接影响纹波电流大小、效率和动态响应。很多人选电感只看封装大小和阻值但其实关键的参数有三个电感值、饱和电流、直流电阻DCR。电感值的计算公式为L (Vin - Vout) × Vout / (Vin × f × ΔIL)其中ΔIL为电感纹波电流一般取最大输出电流的20%~40%。拿5V/2A这路来实际算一下Vin12Vf1.5MHz取ΔIL0.6AL (12-5) × 5 / (12 × 1.5×10⁶ × 0.6) ≈ 3.24μH再算一下饱和电流的要求。电感的峰值电流等于输出电流加上一半的纹波电流Ipeak Iout ΔIL/2 2 0.3 2.3A考虑到输入电压跌落、电感误差等因素至少要选饱和电流大于3A的电感。我最终选了标称3.3μH、饱和电流4.5A的功率电感留有充足余量。这里要特别提醒一个新手容易踩的坑**规格书上标的饱和电流是电感值衰减到初始值30%左右时的电流不是电感完全失效的电流。**如果长期工作在这个临界点附近电感会急剧发热还会发出可听见的啸叫声。所以选型时饱和电流余量留到1.5倍以上比较稳妥。DCR参数同样重要。DCR越大满载时电感的铜损就越大功耗会直接表现为发热。一般建议选择DCR小于50mΩ的电感以减小满载损耗。2.3 输入输出电容、反馈电阻与前馈电容输入电容的作用是吸收来自电源线的纹波、稳定芯片的输入电压。对于Buck电路由于输入电流是断续的输入电容必须能承受较大的纹波电流。陶瓷电容是首选ESR低通常使用10μF~22μF的X5R/X7R电容同时再并联一个0.1μF的高频去耦电容。如果输入线比较长比如超过20cm建议再串联一个磁珠或增加一个电解电容防止线路寄生电感引起振铃。输出电容直接决定输出纹波大小。Buck电路的输出纹波主要由输出电容的ESR和电容量共同决定。粗略估算纹波电压约为ΔIL × ESR ΔIL / (8 × f × Cout)。对于3.3V/1.5A这路纹波电流约0.45A如果选用22μF陶瓷电容ESR约5mΩ在1.2MHz开关频率下ΔV ≈ 0.45 × 0.005 0.45 / (8 × 1.2×10⁶ × 22×10⁻⁶) ≈ 0.00225 0.00213 ≈ 4.4mV这个纹波对于MCU供电来说绰绰有余。实际项目中我在输出端并联了22μF陶瓷电容 47μF钽电容的组合兼顾低ESR和一定的储能能力实测纹波非常理想。反馈电阻用于设定输出电压。绝大多数Buck芯片的反馈引脚都有一个基准电压如0.6V、0.8V、1.25V通过分压电阻网络把输出电压分压后反馈到FB引脚使FB电压等于基准电压。计算关系Vout Vref × (1 R1/R2)以MP1584为例Vref0.6V若R1取100kΩ则R2 R1 × Vref/(Vout-Vref) 100k × 0.6/(5-0.6) ≈ 13.6kΩ。实际选择标准E96系列电阻取13.7kΩ即可。前馈电容也叫Cc并联在R1上它的作用是在负载突变时把输出电压的突变更快地耦合到反馈引脚改善瞬态响应。推荐容值在10pF~100pF之间容值太大会影响稳定性。我常用22pF起步实测动态响应不错。2.4 使能引脚与软启动上电时序的隐藏需求这个项目用到双路输出如果5V和3.3V同时上电遇到大容量负载电容时会产生很大的浪涌电流可能导致电源跌落。MP1584这类芯片的EN使能引脚支持外部电阻分压或者直接接输入电压同时还集成了软启动功能。我在设计时给两路分别加了独立的RC延时电路控制EN引脚的启动时序。具体做法是在EN引脚和输入之间串联一个电阻并对地接一个电容通过调整RC时间常数来错开两路的启动时间。实测效果是上电时5V先建立延迟约10ms后3.3V再建立整个上电过程非常平稳。这里有一个容易被忽略的细节**EN引脚不能悬空。**悬空状态下引脚电平不确定芯片可能上电后不工作也可能误触发使能。稳妥做法是直接通过100kΩ电阻接到输入电压或者按照芯片手册推荐接法处理。3. 原理图设计与PCB布局实战3.1 完整原理图设计要点原理图设计时我会把两路DC-DC电路分别画清楚每路遵循同样的结构框架输入接口防反接二极管、保险丝、TVS管→ 输入电容 → Buck芯片含BST自举电容→ 功率电感 → 输出电容 → 反馈分压网络。下面按这个顺序逐一说明输入接口保护电路对于嵌入式板卡建议在DC输入座后面串一个自恢复保险丝500mA~2A再并联一个TVS管比如SMBJ24A吸收浪涌电压。防反接可以使用串联肖特基二极管但会引入约0.3V~0.5V的压降如果输入电压余量小的话要留意。我做的这个模块输入电压有12V压降0.4V完全不影响所以加了防反接。BST自举电容同步Buck芯片的高端MOSFET驱动需要自举电路提供栅极驱动电压BST引脚和SW引脚之间需要接一个10nF~100nF的陶瓷电容。这个电容位置要尽量靠近芯片引脚否则会影响高端MOS的开关速度增加开关损耗。很多DIY爱好者忽略这个电容的摆放结果效率上不去、芯片发烫其实关键就在这。反馈网络的布线R1和R2构成的分压点必须从输出电容的正极引回采样点尽量靠近负载端避免采到电感侧的开关噪声。反馈走线要远离SW引脚和电感否则高频噪声耦合到FB引脚会引起输出抖动甚至振荡。补偿网络部分芯片如TPS5430需要外部RC补偿网络来调整环路稳定性。补偿元件的参数通常在数据手册里有推荐值也可以按“适中相位裕度”的原则来选。我一般会先用手册推荐值再实测负载阶跃响应来判断是否有振铃必要时微调补偿电容。3.2 PCB布局DC-DC电路成败其实在布局很多新手认为DC-DC电路只要原理图对PCB随便画都能工作。这个想法害人不浅。DC-DC电路的高频开关节点噪声非常大如果布局不合理输出纹波可能比设计值大10倍以上甚至引起芯片内部过压击穿。我总结了四个布局铁律**第一功率回路要最小化。**功率回路指的是输入电容→芯片VIN→芯片SW→电感→输出电容→地这个回路所围成的面积越小越好。开关电流在这个回路里高速切换回路面积越大寄生电感越大产生的电压尖峰就越高。最理想的情况是输入电容、芯片、电感、输出电容呈一字或L形排列且地脚直接通过过孔连接到地平面。**第二SW节点铜皮不要大面积铺地。**SW节点是开关节点电压在0V和输入电压之间高速跳变。这个节点的铜皮面积要控制既不能太小否则过流能力不足也不能太大到形成天线向外辐射噪声。通常按照芯片手册的建议宽度布线即可。**第三反馈走线要远离SW和电感。**反馈网络是高阻抗节点极易耦合开关噪声。布局时让反馈电阻尽量靠近FB引脚反馈走线走底层或内层并在周围铺地保护。避免反馈走线与功率走线平行且距离小于5mm。**第四地平面尽量完整。**双层板设计中底层尽量保留完整地平面不要被信号线割裂成碎片。地平面的作用是给高频开关电流提供一个低阻抗回流路径如果地平面不完整回路电感增大后地弹噪声会直接影响芯片的参考地和输出电压稳定性。3.3 双路模块的布局规划对于双路DC-DC模块布局时还要额外考虑两路之间的相互干扰。我最终的布局方式是第一路5V/2A放在板卡左侧第二路3.3V/1.5A放在板卡右侧两路功率部分保持至少5mm间距。输入座和输入滤波电容放在板卡上边沿两个芯片的VIN引脚都就近连接输入电容避免一路的高频纹波通过输入线污染另一路。输出排针分别放在板卡左右两侧便于接线。两路的GND在输入电容处单点汇聚避免形成地环路。这样做出来的板子实测效果不错两路之间互相干扰很小即使在5V满载2A、3.3V空载的情况下3.3V输出纹波也没有明显恶化。4. 常见问题与排查技巧实录4.1 上电后输出电压不对——先排查反馈网络刚调试这类电路时最容易遇到的现象是上电后输出电压与设计值偏差很大比如5V那路只输出2.5V。遇到这种情况第一反应应该是检查反馈电阻焊接是否虚焊或者贴错阻值。反馈引脚电压如果被拉低芯片会认为输出电压不足从而试图升高占空比如果此时输入电流被限流输出电压就会跌落。我的排查流程一般是检查R1、R2阻值是否与设计一致断电后用万用表测量。上电后万用表测量FB引脚电压确认是否接近芯片基准电压如0.6V。如果FB电压偏高或偏低测量SW引脚波形判断芯片是否在快速开关。检查反馈走线是否存在过长绕行、离电感过近的问题。4.2 电感啸叫——环路不稳定或电感饱和电感发出高频啸叫是DC-DC电路很常见的故障。啸叫的本质是电感在音频范围内20Hz~20kHz产生机械振动根源通常是环路不稳定导致输出电压振荡、电感电流出现低频振荡或者电感饱和后磁芯储能能力下降引起激烈的磁致伸缩。排查步骤用示波器观察输出端是否有低频纹波叠加例如20kHz左右的周期振荡。检查输入电压和输出电流是否在芯片正常工作范围内排除芯片进入打嗝模式hiccup mode的可能性。测量电感温度如果烫手且电流大大概率是电感饱和。检查补偿网络参数是否按照手册推荐值选取不要随意改动。我遇到过的情况是反馈电容取值太大100pF导致环路相位裕度不足输出在轻载时出现周期性振荡并伴随啸叫。换成22pF后问题立刻解决。经验是如果啸叫与负载电流强相关优先怀疑电感如果啸叫与负载无关优先怀疑环路稳定性。4.3 输出纹波过大——示波器测量方法有问题很多朋友测量纹波时把示波器探头的地线夹直接夹在GND测试点上结果测出来的纹波大得吓人。其实这未必是模块的问题而是测量方式引入了噪声。示波器探头地线夹是一个很大的环路天线开关电源的磁场会在环路上感应出几mV到几十mV的噪声叠加在真实信号上。正确的纹波测量方式使用弹簧接地夹也就是把探头地线缩短到最短或者用同轴线直接焊接在输出电容两端测量。示波器带宽限制设为20MHz滤掉高频噪声。测量点选择在输出电容引脚处测量线要尽量短。用这个方式实测我的模块5V输出纹波约8mV3.3V输出纹波约6mV对于嵌入式系统来说非常理想。另外还要注意**如果输出端接了较长的杜邦线再测量测到的纹波会包含线路压降和分布电感效应数值会偏大。**评估模块本身的性能要在输出电容处直接测量。4.4 芯片发烫——效率与散热两手抓DC-DC电路如果芯片发热严重除了布局问题外最常见的原因有开关频率设置不当、电感饱和、芯片焊盘散热不良。MP1584这类芯片底部有裸露焊盘exposed pad必须通过过孔连接到地平面帮助散热。如果PCB设计时漏了这排过孔芯片正常带载时温度会比预期高出20℃以上。我建议所有做DC-DC模块的朋友在打样后第一件事就去测一下芯片在满载时的温度。用热成像仪当然最直观没有的话用热电偶点测芯片表面也行。如果温度超过85℃就要回头检查电感饱和电流、散热焊盘和布局。4.5 电源跌落引起MCU复位——动态响应能力不足5V那路在给舵机供电时偶尔会出现MCU突然复位的问题。排查后发现舵机堵转瞬间电流峰值接近3A持续几毫秒5V输出电压随之跌落到4.3V以下导致5V转3.3V的电源也跟着跌落MCU掉电复位。这个问题的根源在于Buck电路的环路响应速度赶不上负载突变的速度输出电容在瞬间被抽走大量电荷。解决办法增大输出电容特别是低ESR的陶瓷/钽电容组合提供瞬态电荷。减小电感值在纹波允许范围内提高电流响应速度。启用芯片的强制PWM模式如果支持避免轻载时进入跳频模式导致瞬态响应变差。我最终通过把5V输出电容从22μF增大到两个22μF并联并换成支持强制PWM模式的芯片工作状态问题彻底解决。5. 测试验证与性能数据分析5.1 实测设备与测试条件完成PCB焊接和基本调试后正式的性能验证阶段也很关键。我用的测试设备直流稳压电源输入12V限流3A可编程电子负载两路分别测5V和3.3V数字示波器带宽100MHz配弹簧接地夹红外热成像仪测试项目包括空载电压精度、不同负载下的输出稳压精度、效率曲线、纹波电压、瞬态响应、长时间满载温升。5.2 效率曲线与数据整理实测数据如下输入12V常温25℃输出通道负载电流输出电压输入功率效率5V通道0.5A5.02V3.0W84%5V通道1.0A5.01V5.8W86%5V通道2.0A4.98V11.5W87%3.3V通道0.5A3.32V2.0W83%3.3V通道1.0A3.31V3.9W85%3.3V通道1.5A3.30V5.8W85%整体效率在83%~87%之间对于小功率降压模块来说属于正常水平。如果想把效率提到90%以上可以考虑选用低静态功耗、低Rdson的同步整流芯片并优化电感的DCR。**效率测试的注意点**测试时万用表测量电压和电流会引入接触电阻和表笔压降如果输入电流较大建议用四线开尔文接法或者直接读取电源的功率显示值。否则算出的效率会偏低让你误判模块性能。5.3 动态响应实测用电子负载给5V通道施加0.1A→2A的阶跃负载上升时间约10μs用示波器观察输出电压波形。实测电压跌落约120mV恢复时间约50μs动态响应尚可。如果希望进一步压低下冲幅度可以继续增大输出电容或者优化补偿网络但注意不要过度否则环路稳定性会变差。这个指标对于大多数嵌入式场景比如WiFi模块突发发射、舵机动作已经完全够用。如果项目里有更严苛的负载突变场景比如4G模组发射时脉冲电流达2A且上升时间极短建议考虑把输出电容换成高分子钽电容或聚合物电容甚至加入前馈电容来提升环路响应。5.4 温升实测与散热建议在25℃室温、密闭外壳环境下双路同时满载运行30分钟后热成像显示MP1584芯片表面最高温度约78℃电感表面温度约65℃3.3V那颗芯片表面温度约70℃这个温度在安全范围内但考虑到嵌入式设备常在密闭外壳中运行环境温度可能达到50℃以上我建议如果长期满载运行尽量在模块上增加散热铜皮面积或在PCB上预留风扇/散热片安装位。另外两路要避免同时满载放在同一个密闭小空间里热量累积会让芯片温度轻松突破100℃。6. 后续扩展这个模块还能怎么改6.1 改成可调电压输出如果想把双路模块改成可调电压比如1.2V~12V可调只需要把反馈电阻中的R2换成电位器或多圈可调电阻。建议在电位器两端并联固定电阻防止电位器触点接触不良导致反馈引脚开路输出电压飙升。另外可调范围受限于芯片的最小占空比和最大占空比不是任意电压都能稳定输出设计前最好先看一下芯片手册的占空比范围。6.2 增加输出使能控制和状态指示双路独立DC-DC很适合做电源管理扩展。可以在EN引脚加MCU控制的MOSFET开关来实现软件上电/断电控制还可以加LED指示灯和电源良好Power Good信号输出用于系统诊断。Power Good信号可以直接连接MCU的GPIO电源异常时MCU能立刻感知并执行保护动作。6.3 与MCU组合成完整的电源管理板我后续基于这个模块做了一个小型的电源管理板输入支持12V DC口或Type-C接口双路输出分别接MCU核心板和传感器矩阵还增加了一个负压输出-5V用于运放电路用两片电荷泵和LDO实现。整块板集成下来尺寸只有50mm×40mm非常适合做飞控或机器人主控的电源子板。从需求分析、芯片选型、参数计算到PCB布局和实测优化这个双路DC-DC项目基本覆盖了一个嵌入式电源设计工程师日常会遇到的核心问题。搞懂Buck电路的设计逻辑之后再去看其他电源方案升压、降压升压、反激很多思路都是相通的。最后说一个我做这类项目的体会**电源设计没有玄学所有问题都有对应的物理根源。**芯片发烫就查热阻和散热路径纹波超标就查ESR和回路面积啸叫就查环路稳定性和电感饱和度——一步步测量、推理、验证问题总能定位到具体的电路节点上。搞电源最忌“凭感觉换元件”示波器和热成像仪才是真正的老师。希望这篇文章能帮你少走一些弯路。
返回列表