24V转5V/12V不用反激:XL4015 Buck降压电路设计与实测
发布时间:2026/9/24 12:53:47 作者:尧图编辑部 阅读量:1,286

做嵌入式的人早晚会撞上给STM32找电源这件事。项目供电是24V工业电源板上要5V给MCU和外设还要12V给继电器、运放或者散热风扇这时候很多人第一反应就是“上反激式开关电源”一搜“24V转5V/12V”出来全是反激变压器设计、RCD吸收、TL431光耦补偿看得头皮发麻。其实只要不需要隔离24V转5V/12V这个需求用XL4015这颗芯片做Buck降压电路简单得多成本也低得多实测稳定特别适合毕业设计、工控板验证和自用项目。这篇文章把24V转5V/12V的完整电路、参数计算和最容易踩的坑一次性讲清楚照着抄就能用。1. 为什么我劝你别“死磕”反激1.1 反激的设计成本到底高在哪反激式开关电源确实是经典拓扑尤其在大功率、宽输入电压、需要隔离的场合它几乎是唯一解。但问题是很多人根本没到“非反激不可”的程度就被反激的设计复杂度劝退在第一步了。反激电源的核心是变压器。这个变压器不是随便绕的匝比、初级电感量、气隙、磁芯材质、线径、骨架、漏感控制每一项都直接影响输出稳定性和MOS管尖峰。举个例子24V转5V、功率才十瓦左右如果做反激你得先算匝比再考虑辅助绕组供电还要设计RCD吸收网络去吃掉漏感能量最后用TL431加光耦把反馈信号送回去调占空比。光耦的CTR电流传输比会随温度和老化漂移环路补偿稍微没调好带载就振荡这时候示波器一看方波乱七八糟新手基本就卡住了。我见过不少反激翻车案例十有八九都是变压器绕利索了但反馈环路没稳住或者RCD电阻功率选小了一开机就冒烟。反激不是不好是它的门槛和调试成本摆在那里。如果你只是做一个24V输入、输出5V和12V的小板子不需要电气隔离不搞宽电压输入那真没必要拿反激折磨自己。1.2 24V转5V/12V本质上更适合用Buck反激适合什么场景输入电压范围宽、功率几十瓦以上、输入输出必须隔离、需要多路绕组输出。但你说控制板供电24V转5V给STM32转12V给继电器和风扇这叫什么这叫同地降压。同地降压最合理的拓扑就是Buck降压。Buck没有变压器能量经过电感和续流二极管传递占空比直接决定输出电压数学模型和外围设计都比反激简单一个量级。尤其是当输入是稳定的24V工业电源时Buck的占空比范围、电感应力、开关管耐压都很好处理芯片选型余地也大。XL4015就是这样一颗很典型的非同步Buck芯片。它把开关管、控制器、基准源全集成在内部外围只需要电感、二极管、电容和两个分压电阻就能把8V到36V的输入电压稳成你想要的输出电压。没有变压器设计没有光耦补偿没有漏感问题。相比反激那一堆公式和调试步骤XL4015的方案几乎是“会用电阻分压就能做”。2. 选型思路XL4015凭什么能扛这件事2.1 XL4015硬件规格速览XL4015是一颗比较“皮实”的降压芯片我在几个项目里用到过先说几个关键参数输入电压范围8V到36V极限40V给24V系统留了充足余量。输出电流标称最大5A连续4A比较稳。给STM32供电绰绰有余带12V继电器负载也够。开关频率固定180kHz不需要外部时钟或RC振荡器。反馈基准电压1.25V分压电阻就靠这个算。内部集成NMOS功率管导通电阻很低典型在10毫欧级别。封装常见TO-263-5或TO-252-5自带散热焊盘贴片焊接不难。这个参数组合非常契合24V工业供电场景。输入8V到36V意味着24V、28V系统都能用输出5A意味着5V给STM32主板供电、12V给继电器和风扇供电都有富余。而且固定180kHz开关频率不算太高布板时对采样电路和通信电路的干扰相对容易控制。2.2 三种供电方案的横向对比有人会拿L7812CV这类线性稳压器来对比也有人坚持上反激。我做了一张表把常见方案摆在一起看方案输入24V转5V/12V隔离效率外围复杂度成本适合场景反激式开关电源需要变压器、光耦、RCD等可隔离80%~90%高高宽压输入、隔离、中等以上功率线性稳压器7812/AMS1117压差大耗散功率惊人否5V时约21%12V约50%极低极低小电流、对纹波极敏感的局部供电XL4015 Buck两路各加一颗电感二极管否85%~90%低低24V固定电压、非隔离大电流降压这个表里最关键的一点是线性稳压器的效率。24V降到5V压差19V如果负载1A稳压器上要吃掉19W功率这已经不是发热问题是能不能烧起来的问题。所以当你的5V电流超过100mA或者12V要带继电器、风扇线性稳压方案可以直接排除。反激的成本和复杂度前面说了在非隔离场景下是浪费。XL4015则需要两颗芯片分别出5V和12V或者一颗出12V再转5V整体成本十几块钱外围就那么几个件非常适合快速验证和量产维护。2.3 供电拓扑一级降压还是两级降压确定了用XL4015下一个问题是拓扑结构先用24V出12V再用12V出5V还是24V直接同时出5V和12V先说结论如果5V和12V都有一定负载直接用两颗XL401524V分别出5V和12V两路独立。这个方案最稳。为什么不用24V先降到12V再用AMS1117或7812把12V降到5V因为AMS1117的输入最大也就15V12V进去压差还有8.7V5V输出只要0.5AAMS1117上就要耗散4.35W非常烫。用7812把12V降到5V更夸张压差7V效率极低。而且两级串联会让12V负载的波动直接传导到5V继电器一吸合5V跟着掉STM32说复位就复位。独立两路的代价是板子上多一颗XL4015和多一组电感二极管但换来的是两路完全解耦。12V负载再怎么拉电流5V这一路纹丝不动。对于STM32这种对电源波动敏感的MCU来说这个解耦价值非常大。如果硬要省芯片也可以24V降到12V再用另一颗XL4015把12V降到5V但这样多一级损耗整体效率不如双路独立。我的建议是双路独立长远省心。3. 完整电路图与关键参数计算3.1 24V输入双路Buck完整电路直接上电路图这是整个项目的核心。电路分两路每路都是一颗XL4015加电感、续流二极管、分压电阻。两路共用一个24V输入地线最后单点汇合。24V输入正极 o---[F1 保险丝]---------------------------------- | | [C_IN1 100uF/50V] [C_IN2 100uF/50V] [C_IN1B 0.1uF] [C_IN1B 0.1uF] | | ------| VIN XL4015#1 | ------| VIN XL4015#2 | | | SW | | | SW | | | GND | | | GND | GND 输入负极 o---------------------| | ------| | | | | | --[L1 47uH]-- | --[L2 47uH]-- | | | | | | | | [D1 SS54] | | | [D2 SS54] | | | 阴极接SW | | | 阴极接SW | | | 阳极接地 | | | 阳极接地 | | | | | | | | ---[C_OUT1 470uF/25V] ---[C_OUT2 470uF/25V] | | | | | [C_OUT1B 22uF/25V] | [C_OUT1B 22uF/25V] | | | | --[R1_1]-- | --[R1_2]-- | | | | | | | 5V输出 o---------------------- [R2_1] | [R2_2] | | | | | | -------- | | -------- | | | | | | | | FB引脚接R1与R2连接点 FB | | FB | | | | | | | | GND ---------------------------------------------------------------------实际绘制时XL4015的FB引脚接两个电阻的中间节点电阻一端接输出一端接地计算方式见下一节。EN引脚在不需要使能控制时悬空或接VIN具体看数据手册。两路的区别只有分压电阻的取值不同5V路输出5V12V路输出12V整个电路看起来很对称非常好记。提示如果用现成的XL4015模块改模块上电位器对应R1/R2实测电压后用固定电阻替换更稳定避免电位器受震动漂移导致电压跳动。3.2 输出电压到底怎么算FB分压电阻XL4015的FB脚基准电压是1.25V输出电压由分压电阻决定。公式是Vout 1.25 × (1 R2 / R1)这里要说清楚很多资料里R1和R2的叫法不一致很容易把人绕晕。我更习惯把R1称为上分压电阻从输出端到FB脚R2称为下分压电阻从FB脚到地。上分压电阻和下分压电阻的分压点就是FB脚FB内部会把这一点稳在1.25V。算5V输出1.25 × (1 R2 / R1) 5所以R2 / R1 3。取R1 10kΩR2 30kΩ两个都是1%贴片电阻输出就是5V。如果手头没有精确的30kΩ用两个10kΩ加一个10kΩ也行但建议直接买E96系列。算12V输出1.25 × (1 R2 / R1) 12所以R2 / R1 8.6。R1取10kΩR2需要86kΩ。E96系列有86.6kΩ非常接近输出12.06V误差在1%以内没问题。如果没有也可以用82kΩ加4.7kΩ组合成86.7kΩ。这里强烈建议分压电阻用1%精度五环或者贴片1%都行因为FB脚基准本身有离散性如果分压电阻再用5%档输出电压可能偏到4.7V或5.3V给STM32供电就很危险了。3.3 电感、续流二极管和电容怎么选电感是Buck电源的关键。XL4015的常用公式是L (VIN - VOUT) × VOUT / (VIN × f_sw × ΔI_L)其中f_sw是180kHzΔI_L是电感纹波电流一般取输出电流的30%左右。以24V输入、5V输出、2A负载为例L (24 - 5) × 5 / (24 × 180000 × 0.6) ≈ 7.3μH这个值偏小实际还要考虑输入电压波动、瞬态响应和电感饱和余量所以工程上会取大一些。XL4015规格书上对5V输出推荐33μH到47μH对12V输出推荐47μH到100μH。我实际做下来24V输入时两路都选47μH额定电流大于负载电流1.2倍效果最省心。电感别一味贪大感值太大会让环路响应变慢负载突变时输出电压掉得多太小则纹波大STM32的ADC采样会受干扰。续流二极管必须用肖特基不能用普通整流二极管。因为Buck在开关管关断时靠二极管续流普通二极管反向恢复时间太长180kHz下会发热甚至炸管。我常用SS545A、40V耐压24V系统余量足够。如果你负载电流小SS34也能顶住但我建议统一SS54库存简单。输入电容用100μF/50V电解并在旁边加一颗0.1μF陶瓷电容位置尽量贴近VIN和GND引脚。输出电容用470μF低ESR电解再加一颗22μF的陶瓷电容并联电解负责储能扛瞬态陶瓷负责滤掉高频开关纹波。有些模块只靠一个大电解STM32供电纹波明显实测到100mV以上加陶瓷后能压到30mV以内。3.4 布线与散热别让PCB毁了电源XL4015虽然集成度高但毕竟是功率器件布板不规范一样会出问题。我总结三点经验第一功率回路要小。输入电容、VIN、SW、续流二极管、输出电容、地这条回路在开关切换时流过脉冲电流环路面积越大辐射干扰越严重。布板时把XL4015的SW脚、二极管、电感和输出电容尽量靠近不要绕大圈。第二散热铜皮要舍得给。XL4015在5A满载时的损耗不容小觑如果24V转5V、输出2A按85%效率算片上损耗大概1.8WTO-263封装不铺铜皮会很烫。我的做法是给芯片的散热焊盘下面铺2×2cm以上的铜皮并打过孔到背面有条件再铺一层。12V输出3A的话损耗更大最好在铜皮上再加小块散热片或用XL4016这类更大电流的芯片。第三地线采用星型接地。5V负载和12V负载的功率地电流不小如果让这些电流流经STM32的模拟地ADC读数会飘。正确做法是功率地走粗线汇到主电容地端STM32的模拟地和数字地在主电容地端单点汇合避免形成地环路。4. 接STM32时那些必须注意的细节4.1 5V→3.3V的二次稳压与去耦STM32的VDD一般需要3.3V所以5V出来之后还要过一级LDO。常见的是AMS1117-3.3但要注意AMS1117的压差本来就接近1.2V5V输入输出3.3V没问题千万不要用AMS1117直接从12V甚至24V转3.3V压差太大必然烧毁或过热。LDO后面必须配去耦电容。做法是3.3V输出点放一个10μF陶瓷电容然后每个STM32的VDD引脚旁边放100nF电容引脚越近越好。模拟电源VDDA要单独处理用磁珠把数字3.3V隔离成模拟3.3V再并10μF和0.1μF电容这样ADC基准才稳定。如果不做这一步电机一启动ADC就会跳几个LSB够你排查半天。我见过不少人只关心主电源不关心去耦结果STM32跑简单的GPIO程序正常一旦开启ADC或做PWM系统就重启。这不是代码问题是纹波和地弹把MCU的复位电路干扰了。别省这几个电容成本几毛钱能帮你省一个星期。4.2 12V负载与STM32的共地处理12V如果只是给逻辑电路供电也就罢了但大多数项目里12V会去驱动继电器、散热风扇、MOS管栅极驱动或者运放电源。这些负载的共同特点是电流瞬变剧烈继电器吸合瞬间电流冲击风扇换向产生反电动势如果不处理好共地STM32会被拖下水。我的建议是12V功率地、5V功率地、STM32数字地这三个地网络在原理图上分开命名最后在输入电源的总地端汇合。PCB上走线时12V大电流回路千万不要穿到STM32底下或者与模拟地平行走长线。继电器线圈两端一定要并续流二极管二极管阴极接12V、阳极接GND否则断开瞬间线圈产生的反向高压会顺着地线打到MCU脚上。还有一种情况是12V既给模拟电路供电又给数字外设供电比如给运放供电。此时12V要加LC滤波再进运放电源脚电感可以选10μH电容并联100μF和0.1μF模拟部分单独一个小地岛。这个习惯能让你的信号链干净很多。4.3 上电时序、假负载与其他坑Buck电源空载时有一个常见的现象输出电压比设定值略高甚至接近输入电压。这是因为非同步Buck在轻载时电感电流断续输出电容被充到接近输入电压芯片的反馈环路来不及拉回来。XL4015虽然内部有反馈但空载或极轻载时输出电压也会往上飘。解决方法是给输出端加一个假负载电阻我习惯在5V输出端并一个100Ω到220Ω的电阻12V输出端并一个470Ω到1kΩ的电阻消耗几十毫安电流让反馈环路始终处于连续工作状态。如果你的板子始终有外设吃电流不加也行但对调试验收来说假负载是兜底保险。上电瞬间的过冲也要关注。输入24V突然接入Buck的输出会因为环路响应延迟产生一个尖峰特别是输出电容较大时更明显。XL4015内部有软启动但时间很短如果实测过冲超过5%并且导致STM32复位可以在FB脚对地并联一个几nF到几十nF的电容减缓反馈响应速度或者给输入侧加慢启动电路。EN引脚的处理也要确认。XL4015的EN引脚可以做关断控制如果用不到要么悬空要么按数据手册推荐接到VIN不要让它悬空在半电压状态有些批次会出现启动不稳的情况。我做模块时习惯把EN通过10kΩ电阻上拉到VIN一劳永逸。5. 实测记录纹波、效率与温度5.1 空载与轻载表现我按上面的电路做了一版测试板5V路分压电阻取10kΩ和30kΩ12V路取10kΩ和86.6kΩ。空载时实测5V输出5.08V12V输出12.14V偏高是因为空载轻载导致的电压漂移。接上我预留的假负载电阻后5V稳定在5.03V12V稳定在12.08V可以接受。轻载0.3A下用示波器测输出纹波探头用短地线弹簧直接点在输出电容两端5V路纹波大约18mVpp12V路大约25mVpp。180kHz的开关频率也清晰可见但幅值不大给STM32供电完全没有问题。5.2 满载输出纹波实测条件输入用24V稳压电源电子负载加在输出端。5V路满载2A时纹波涨到45mVpp左右主要成分是180kHz的开关纹波和一点毛刺。12V路满载3A时纹波大约70mVpp毛刺比5V路明显因为12V路的电流变化更大功率环路的di/dt更高。这个纹波水平对STM32的数字电源来说够用但如果要给ADC采采样最好再做一级后级滤波。我通常在5V输出后再串一个10Ω电阻或者磁珠再接一个10μF电容给VDDA实测可以把模拟电源纹波压到10mV以内。这个做法对大多数集成ADC的MCU都有效。5.3 效率与温升估算用功率计记录输入电压电流再测输出电压电流效率计算很简单。24V输入、5V/2A输出时实测效率约87%XL4015封装表面温度在室温25℃下运行半小时后约62℃。12V/3A时效率约89%但表面温度已经到了88℃左右这就提示我12V这路如果长期3A工作必须加强散热或者把电流降到2A以内。从这个数据也能算出来12V/3A时输出功率36W按89%效率损耗接近4W全压在TO-263封装上不热才怪。所以对长时间大电流的设计我建议要么预留散热片安装位要么选用XL40168A甚至加同步整流芯片避免芯片长期处于高温降额状态。6. 故障排查照着这张表快速定位问题6.1 常见故障速查表现象可能原因排查方向无输出EN没使能、输入电容虚焊、芯片焊反测VIN与GND电压检查EN引脚电平补焊输出电压偏低分压电阻焊错、负载过大、电感饱和实测R1/R2分压点换大电流电感输出电压偏高分压电阻选错、空载加假负载核对分压电阻芯片异常发烫散热铜皮不够、电感饱和、二极管代换错测开关波形换SS54加强散热电感啸叫电感饱和、环路不稳、输出电容ESR太高换大饱和电流电感加陶瓷电容带载纹波大输出电容ESR高、SW环路面积大加22μF陶瓷电容调整布线STM32上电复位输出过冲、上电时序加假负载、FB并电容、检查复位电路这套速查表我贴在工作台旁边每次电源出问题都先对着走一遍比盲目换芯片快得多。说实话大多数“芯片坏了”最后查出来都是外围元件焊错或者选型不当。6.2 一次真实的“上电烧板”复盘有次我帮朋友调一块板也是一样的24V转5V/12V方案上电瞬间XL4015直接冒烟。我把板子拿过来一看续流二极管的丝印方向画反了阳极接地阴极接SW这个方向搞错焊成了整流二极管顶上。结果开关管导通时电流从VIN经电感直接灌到地等于把输入电源短路了。这个教训让我每次画板都要在原理图里标注清楚二极管的极性焊完板子再拿万用表二极管档量一遍SW对地的导通方向。另一次是上电后STM32反复复位查了半天发现是12V路的继电器一吸合12V电压瞬间被拉低到7V由于5V是从12V用AMS1117转出来的5V跟着掉到4V以下MCU直接复位。后面我把5V改成独立的一颗XL4015从24V直接出问题彻底消失。这也是我前面坚持推荐双路独立的原因之一。6.3 什么时候你仍然需要反激虽然我一直劝大家用XL4015但反激也并非一无是处。如果你的应用真的需要输入输出电气隔离比如医疗设备、工业强电环境、多设备之间地电位不统一那必须上反激。输入电压范围特别宽比如可能从20V到400V波动Buck芯片扛不住这么宽的输入也需要反激。输出要求多路且互相隔离比如给运放做±12V对称电源反激用多个绕组就能实现而Buck做不到。换句话说选反激还是选Buck不是看哪个更高级而是看需求里有没有“隔离”和“宽压”这两个字。没有这两条硬指标24V转5V/12V这种常规操作XL4015就是性价比和稳定性兼得的答案。最后再分享一个我自己的习惯无论用XL4015还是其他Buck我都会在输出端预留一组0欧电阻的位置用来断开5V和12V的后续负载电路。调试时先分别测两路空载电压没问题再贴0欧电阻带上真实负载这样哪一路出问题一眼就能定位。电源这个东西前面多花十分钟做隔离和预留后面能少熬两个通宵。