升压还是降压模块怎么选:MT3608、XL6009、LM2596 与 XL4016 对比

Cartoon comparison of a small deep-blue boost converter with a blue trimmer, black inductor and bare silver solder pads in front of a teal up arrow, beside a larger blue buck converter with two black heatsinks, a copper toroid and blue screw terminals in front of a navy down arrow

把你的电源电压,和负载需要的电压摆在一起看。电源比较高 —— 12 V 降到 5 V —— 就买降压(buck,step-down)模块,例如 LM2596XL4016。电源比较低 —— 3.7 V 的电芯升到 5 V —— 就买升压(boost,step-up)模块,例如 MT3608XL6009没有一款是两个方向都能做的。

这个决定的另一半,是知道哪些东西不该拿来顶。线性稳压器和两颗电阻做的分压,都能给出一个比较低的电压,但两者都不能取代 DC-DC 降压模块;市电变压器更是另一回事。而把它们区分开来的那套算术,同时也解释了为什么模块上印的那个安培数,不是你真正拿得到的安培数。

升压还是降压 —— 你到底需要哪个方向?

降压和升压用的是同样三个零件 —— 一个开关、一颗电感、一颗二极管 —— 只是接的顺序不同,而顺序把方向定死了。降压里,电感夹在开关和负载之间,所以负载在每个周期里只看到输入一部分的时间,平均下来就比较低。升压里,电感直接从输入充电,然后开关断开,塌缩的磁场把储起来的能量经二极管推出去,叠在输入电压之上。所以升压的输出永远不可能低于它的输入,降压的输出也永远碰不到它的输入:方向是拓扑定的,不是那颗可调电阻定的。

两个方向都要留余量。LM2596 内部的开关是一颗双极晶体管,就算完全导通也还是要掉掉一伏多,而这个压降是在电感看到输入之前就先被扣掉的 —— 所以 12 V 进去撑不住 11.5 V 出来,留大约 1.5 V 的余量才合理。升压有一个对称的问题,但原因不同:它的输出由开关每个周期导通多久决定,而只升一点点,要求的导通时间会短到控制器根本做不出来。低过那个下限,它就不再平顺地稳压,改成跳脉冲,输出于是会漂、会有纹波。给升压一个像样的比例去做事。

模块 方向 输入 输出 舒服的持续输出 接线方式
MT3608 升压(step-up) 2–24 V 最高 28 V,永远高于输入 3.7 V → 5 V 时约 1 A;比例越大越少 四个裸焊盘 · 36 × 17 mm
XL6009 升压(step-up) 5–32 V 这块模块上最高约 35 V 12 V → 24 V 时约 1.5 A 四个裸焊盘 · 43 × 21 mm
LM2596S 降压(step-down) 4.5–40 V 1.25–37 V,比输入低约 1.5 V 约 2 A(芯片 3 A,板上没配散热片) 四个裸焊盘 · 43 × 21 mm
XL4016 降压(step-down) 8–36 V(绝对最大 40 V) 1.25–32 V 配上它自己的散热片和通风,最高到 8 A 蓝色螺丝端子 · 大板

台面上要用到的东西

ItemPriceQty
XL830L Digital Multimeter with backlight Portable Multimeter Electronics ProjectXL830L Digital Multimeter with backlight Portable Multimeter Electronics ProjectMULTIMERM25.95
Power Supply Adapter DC Universal AC to DC Converter PSU 5V2A 5V3A 9V2A 12V2A - P.S. ADAPTOR (12V2A)Power Supply Adapter DC Universal AC to DC Converter PSU 5V2A 5V3A 9V2A 12V2A - P.S. ADAPTOR (12V2A)PSA1202RM15.95

这里每一款模块出厂时停在几伏,就看它那颗可调电阻当时刚好被转到哪里,所以要在接上负载之前,先用万用表量输出焊盘,把电压调好。12V 2A 火牛是做降压测试很方便的台面电源;升压模块则从电池、或你手上任何一个比较低的电源供电。

这里每一款模块都是 DC 进、DC 出。碰市电的是那个 12 V 火牛,模块自己从头到尾不碰市电;降压模块也不是市电降压变压器,虽然两者都会交给你一个比较小的电压。它们同样不隔离 —— IN− 和 OUT− 是同一片铜,输入和输出共用一个地。只做低压直流。

升压这个拓扑还有一个后果,接线之前值得先知道。它的电感和续流二极管构成一条从输入到输出的永久通路,所以升压模块没办法关掉自己的输出:把输出短路,短路电流是沿着这条通路落在你的电源上,而不是落在芯片上,一颗 18650 会往里灌几十安。把一块 3.7 V → 5 V 的模块误接 12 V,不管可调电阻转到哪里,负载那一头都会收到大约 11.5 V。降压模块的芯片一停就会把开关断开;升压没有这个「关」,所以开关和保险丝都要放在它的输入端。

这里没有一款是升降压(buck-boost)。如果你的电源会跨过输出 —— 一颗锂电从 4.2 V 掉到 3.0 V,而你要的是 3.3 V —— 降压会在放电末段失守,升压会在一开头失守。用像 18650 充电升压板这类电池模块,把电芯升到干净的 5 V,再从你开发板自己的稳压器上取 3.3 V。两种拓扑里电感各自坐在哪里:

为什么模块上印的安培数,永远不是你拿得到的安培数?

开关式转换器不是一个把电压节流掉的阀门,它是一台能量泵。一颗 MOSFET 以固定频率把输入切碎 —— LM2596 是 150 kHzXL4016 是 180 kHzXL6009 是 400 kHzMT3608 是 1.2 MHz —— 每切一刀就把一份能量停在电感里,电感再用另一个电压把它交出去。几乎没有东西被丢掉,所以 Pin ≈ Pout ÷ η,在合理的比例下 η 大约 0.85–0.92,比例拉大就往下掉 —— TI 自己给 LM2596 在 12 V 进、3 V 出、3 A 的数字是 73%。

往下降,电流会变大。12 V 进、5 V 出、2 A 的负载,出去的是 10 W。效率 90% 的话,输入要供 11.1 W,11.1 W ÷ 12 V = 0.93 A —— 电源交出去的电流,比负载收到的还少。

往上升,电流会变小。一颗 3.7 V 电芯、12 V 出、0.5 A 的负载,出去的是 6 W。效率 85% 的话,电芯要供 7.1 W,7.1 W ÷ 3.7 V = 从电池抽 1.9 A —— 差不多是输出电流的四倍。这 1.9 A 必须是真的拿得出来的:带保护板的 18650 通常在 2–3 A 附近就跳保护,USB 口只给 0.5 A,这就是为什么在实验室电源上很乖的升压模块,一换成真实电源就掉电重启。

看懂这一层,印在板上的额定值就说得通了。MT3608 和 XL6009 数据手册上那个 4 A,是内部开关的电流上限,而在升压里,那颗开关坐在输入那一侧。倒过来算 3.7 V → 5 V:输入 4 A 的天花板,最多允许 4 × 3.7 × 0.9 ÷ 5 ≈ 2.7 A 输出 —— 而且远在到那之前,22 µH 的电感和一块 36 × 17 mm 的板子就已经烫到抓不住了。在那个比例下,1 A 左右才叫舒服;比例再拉大就更低。

降压这一边,输入电流是比较小的那个数,所以 3 A 级的 LM2596 可以老实照它的额定值走 —— 前提是热出得去。它的 TO-263 散热脚只贴在一小块铜箔上,板上没配散热片,所以舒服的数字大约是 2 A。XL4016 带两片带鳍散热片和一颗粗铜线绕的环形电感,是有原因的:5 V 8 A 等于送出 40 W,10% 的损耗就是 4.4 W 的热要散掉。散热片会烫是正常的,线径也要跟着电流走 —— 8 A 大概要 1.5 mm²(16 AWG)。

卡通两格图:一个高的青色水塔经一支由细变粗的深蓝箭头流向一个矮宽的青色水塔,旁边是一个矮宽的青色水塔经一支由粗变细的深蓝箭头流向一个高的青色水塔
水塔的高度是电压,箭头的粗细是电流。降压从高电压那边抽走细细一股,在低电压这边交出粗粗一股;升压刚好相反,这也就是它把电池吃得那么快的原因。

降压模块 vs 分压电阻 —— 为什么不能直接用两颗电阻?

分压电路确实会给出输入电压的一个分数:Vout = Vin × R2 ÷ (R1 + R2)。12 V 送进两颗 1 kΩ 电阻,中点就停在 6 V —— 只要上面什么都不接。挂一个 100 Ω 的负载上去,负载就加入了这个分压,和下面那颗电阻并联:1 kΩ ∥ 100 Ω = 90.9 Ω,中点于是掉到 12 × 90.9 ÷ 1090.9 = 1.0 V —— 才刚给它一份工作做,就只剩原来读数的六分之一。

换小一点的电阻,只是把代价搬个位置。分压电路只有在自己流的电流远远大过负载电流时才够硬,所以要在 0.5 A 的负载下守住 6 V,就得让分压自己流大约 5 A:R1 差不多 1.1 Ω,R2 差不多 1.2 Ω,一颗上面烧掉约 33 W,另一颗约 30 W,而且不管有没有负载都一直烧。六十几瓦的电阻,只为了送出三瓦。就算这样,它还是会随每一次变化往下垮,因为分压没有回授:里面没有任何东西在量输出、在做修正。它是算术,不是稳压,绝对不能拿来供电。

卡通图:左边两颗电阻组成的分压不接负载,青色指针笔直朝上并有一个青色勾号;右边同一组分压接上一个灰色方块负载和一颗昏暗的黄色灯泡,指针已经垮到很低,上方浮着一个橙色叉号
同一组分压,两种情况。什么都不接的时候,中点读到的正是算术答应你的数字;一接上负载,负载就成了分压的一部分,电压掉下来,灯泡也就只剩一点微光。

分压电路真正的工作是在信号上:把一个电压缩小到 5 V 的模拟输入读得进来的范围;在那里它只抽几微安,什么都不会垮。下面这个程序把 Arduino 变成一台电压轨监视器 —— 从模块的 OUT+ 接 100 kΩ 到 A0,再从 A0 接 22 kΩ 到共同的地 —— 可以看到大约 27 V 以内的电压轨。这个分压点自己的源阻抗大约是 18 kΩ,高过 ATmega328P 的 ADC 最适合的大约 10 kΩ,所以要从 A0 再接一颗 100 nF 电容到地 —— 它一边把 ADC 的取样电容喂饱,一边顺手把开关纹波抹平。先用万用表把输出调好,再做这一步。

// Rail Watch - 用 Arduino UNO 读出 DC-DC 模块的输出电压。
//
// 分压:  模块 OUT+ --[100k]--+--[22k]-- GND(与模块 OUT- 共地)
//                             |
//                             +--[100nF]-- GND   (喂饱 ADC 的取样电容)
//                             |
//                             A0
// 12 V 的轨上,这组分压只抽大约 0.1 mA,24 V 时 0.2 mA。
// 这就是为什么它当传感器可以,当电源不行。

const int   PIN_RAIL = A0;
const float R_TOP    = 100000.0;  // 欧姆,模块 OUT+ 到分压点
const float R_BOTTOM =  22000.0;  // 欧姆,分压点到地
const float VREF     = 5.00;      // 用万用表量 5V 脚,把量到的值填进来

// 分压点只看到电压轨的 R_BOTTOM / (R_TOP + R_BOTTOM),所以要按比例还原回去。
const float DIVIDER  = (R_TOP + R_BOTTOM) / R_BOTTOM;   // 5.545

void setup() {
  Serial.begin(9600);
  Serial.println(F("Rail Watch - reading A0"));
}

void loop() {
  // 取 16 次平均:开关电源的轨上,ADC 最后一位会一直跳。
  long sum = 0;
  for (int i = 0; i < 16; i++) {
    sum += analogRead(PIN_RAIL);
    delay(2);
  }
  float counts = sum / 16.0;

  float vTap  = counts * (VREF / 1023.0);   // 分压点上的电压
  float vRail = vTap * DIVIDER;             // 把分掉的部分还原回去

  Serial.print(F("rail = "));
  Serial.print(vRail, 2);
  Serial.println(F(" V"));

  delay(500);
}

降压模块 vs 线性稳压器 —— 什么时候线性才是对的那颗?

线性稳压器 —— 7805、AMS1117-3.3 —— 其实是一颗串在负载路径上、被自动调整的晶体管,等于一颗会自己变的电阻,外面套着一个把输出稳住的回授环。回授正是分压电路缺的那样东西,所以线性稳压器是真的在稳压。但整个负载电流都要从这颗调整管流过去,它拿掉的每一伏,都在那里烧成热。12 V 进、5 V 出、1 A,那 1 A 要跨过 7 V 的压降 —— 7 W 的热,效率是 5 ÷ 12,大约 42%。

由此有两件事跟着成立。线性稳压器永远不可能升压,因为串联电阻只会让电压变小:它的输出永远低于输入,至少低一个压差,经典 7805 大约是 2 V。而它真正对的位置,正好是开关式的优势消失的地方:小压降配小电流(5 V 降到 3.3 V、100 mA,只浪费 0.17 W),以及不欢迎开关纹波的模拟、音频或射频电路。

裸焊盘还是螺丝端子 —— 你要动多少焊工?

MT3608、XL6009 和不带显示的 LM2596 到手时,四个角上是四个裸的镀通孔 —— 一头 IN+/IN−,另一头 OUT+/OUT− —— 线要自己配、自己焊;我们的焊排针教程烙铁与助焊剂入门都讲过。XL4016 换成的是蓝色螺丝端子:剥线、插进去、拧紧。赶学校 deadline 的时候,这一点比那点差价重要得多。

这个选择也顺带决定了你台面上的工作顺序。裸焊盘的模块没有地方夹表笔,也没有地方接电源,所以先把输入和输出的短线焊上去,再给输入通电,用表在输出线上读数、把可调电阻调好,最后才把负载接上。

有两个款式可以让你完全省掉万用表:带显示的 XL6009带显示的 LM2596,都有一个三位数的 LED 电压表,还有一颗 S1 按键可以把读数在输入和输出之间切换,两款都是螺丝端子。除此之外,一支 XL830L 万用表加一个 12 V 2 A 火牛,就是这层货架预设的台面配置;而在上面那四款之间,还坐着 XL4005 5 A 降压XL6019 5 A 升压。不管接线方式是哪一种,调整都是同一件事 —— 表接输出,螺丝刀转可调电阻,负载先不要接:

卡通对照图:左边是深蓝色板角上两个镀了银圈的裸通孔,旁边散着红黑两条已上锡的线、一支烙铁和一卷焊锡;右边是蓝色板角上一排亮蓝色螺丝端子夹着红黑两条线,一支螺丝刀正插在其中一颗螺丝上
MT3608、XL6009 和不带显示的 LM2596 给你的是裸的角落焊盘,所以要预留几分钟拿烙铁。XL4016 和两款带显示的版本都是螺丝端子,一支螺丝刀就够。

我们从真实客户身上看到的常见错误

手上是 12 V 火牛、要喂 5 V 负载,却买了升压。这是这一类里最常见的买错,而且可调电阻救不了 —— 升压的输出不可能低过它的输入。

把标题上的电流当成承诺。在升压上,那个数字是输入路径上的开关上限,所以一块 2 A 的模块,从 3.7 V 电芯供电、要它做 12 V,给得出来的只有几百毫安。改用瓦数来估:把负载的电压乘上它的电流,除以 0.85,再除以你的电源电压。最后那个数字,就是你的电源必须供得出的电流;在升压上,同时也是模块自己那个开关上限必须放得过的电流。

先接负载,才调输出。这些多圈可调电阻到手时停在上一手留下的位置,常常是 9 V 或更高。先让模块通电、输出上什么都不接,用万用表量输出焊盘,转螺丝,然后才接负载 —— 我们的 LM2596 调压教程里一步一步都写了。

把 IN+ 和 IN− 接反。这些裸模块上没有防反接二极管,输入极性接反就是当场烧掉。每一次都看清楚丝印。

常见问题

降压模块和升压模块差在哪里?

降压把电压往下调,升压把电压往上抬,而这个方向是开关、电感、二极管的接法定死的 —— 怎么调都改不了。电源比负载高,买降压;电源比负载低,买升压。

有没有一块模块既能升又能降?

这四款都不行;那要升降压(buck-boost)或 SEPIC 拓扑。如果电池电压会跨过你要的目标值,就先把它升到稳定的 5 V,再从那里往下稳压。

降压模块是不是比线性稳压器好?

只要压降大一点、电流真一点,是的:降压模块搬能量的效率大约 85–92%,线性则把差额全烧成热 —— 12 V 降到 5 V、1 A 就是 7 W。但压降很小、电流很小,或者电路对噪声敏感的模拟场合,线性还是赢。

可以用分压电阻代替降压模块吗?

不行。分压没有回授,一带负载输出就垮:12 V 经两颗 1 kΩ 电阻,空载读 6 V,接上 100 Ω 负载就只剩大约 1 V。分压是用来把信号缩小送进模拟输入的,永远不拿来供电。

LM2596 还是 XL4016 —— 降压该买哪一款?

大约 2 A 以内选 LM2596 —— 一块 Arduino、几颗传感器、一小段灯带。负载到好几安就选 XL4016,因为散热片、铜和螺丝端子它都有;要留意它的输入是从 8 V 起跳的。

最后更新:2026 年 8 月。有问题?WhatsApp 联系我们

Leave a Reply

Your email address will not be published. Required fields are marked *