电源选型:我问自己的三个问题
电路几乎从来不按你手上现成的电压工作。它要的电压得你自己做出来,而做这件事的只有两大类器件:线性稳压器和开关电源。看完这篇你会知道:这两类该怎么选、各自会发多少热,以及锂电池怎样才能安全地充上电。
- 输入和输出之间的压差有多大?超过 3V 左右、电流又超过 0.3A 左右,就别用线性稳压器了。
- 这部分电路怕不怕电噪声?无线模块和高精度模拟电路是怕的。
- 有多少空间、允许多热?密封的小盒子里,热量没地方去。
这三个问题帮我省了不少返工的时间。
电源架构:从电池到负载,这是一套能量分配系统
电源部分就是一套配送系统:每个模块都需要特定的电压、特定的电流和一定的干净程度,而且要送到它自己的引脚上。
电源系统是多级转换体系
典型产品电源链大概是这样的:
输入(USB/电池) → 保护(保险丝、防反接) → 充电管理 → 电池 → DC/DC转换 → 多路电压轨 → MCU/传感器/LED/电机
同一块板子上不同模块需要的电压不一样:
| 模块 | 典型电压 |
|---|---|
| MCU | 3.3V |
| Arduino | 5V |
| 传感器 | 1.8~3.3V |
| LED | 2~3V |
| 大功率负载 | 12V/24V |
所以一个产品里经常同时有几条电源轨:5V、3.3V、1.8V。电源轨就是其中一路供电电压。
这条链上每一级都会损失一部分功率,敏感的模块可能还需要在自己这一路加滤波。
保险丝有四个参数要过:额定电流、额定电压、能安全分断的故障电流,以及熔断速度。接上电池之后,第三条最关键:锂电池短路时会灌出极大的电流,保险丝得能把它切断而不炸开。举个例子,Class T 保险丝在 125V DC 下能分断 20kA。
LDO 线性稳压器:简单干净,但会发热
LDO(低压差线性稳压器)是一种输入只比输出高一点也能正常工作的线性稳压器。它的行为像一个自动电阻:把多余的那部分电压降掉,让输出保持稳定,而降掉的电压会变成热。损耗很好算:
P_loss = (Vin - Vout) × I
用一句话读这个公式:损耗等于它两端降掉的电压乘以流过的电流。5.5V 降到 5V、1A 的时候损耗 0.5W,效率大约 91%;12V 降到 5V、1A 的时候损耗 7W,效率只有 42%。
好处是:几乎不用搭电路,便宜,输出安静又稳定。
我一般在这些场景用 LDO:
- 3.6V 的锂电池给需要 3.3V 的单片机供电,只多出 0.3V,几乎不发热。
- 后面接的模块怕噪声,比如音频放大器或者模数转换器的基准电压。
12V 到 5V 的大电流场景我不会用 LDO,散热片会大得离谱。
几个实际中学到的点:
- 芯片内部的温度 = 环境温度 + 损耗 × 封装的热阻,别超过数据手册给的上限。
Buck 降压型开关电源:高效但有纹波
Buck 反过来做:它不把多余的电压烧掉,而是把输入以每秒几千次的频率切开,再把结果滤回一个稳定的输出。开关由 MOS 管完成,MOS 管是靠电压而不是靠电流控制的开关;电感和电容负责把波形滤平。效率通常在 85%~97%。
代价是输出上有一个跟着开关频率抖动的小波动,这就是纹波。外围元件也更多:一个电感、一个在开关断开时给电感电流找出路的二极管,以及输入和输出电容。
电池尺度上也有纹波,原因不一样。逆变器抽取的电流按两倍电网频率(100Hz)脉动,电池线缆的电阻把这些脉动变成整条直流母线上的电压波动。Victron 的指南把 24V 系统的报警值定在 2.25V RMS。
所以压差超过 3V 左右、电流超过 0.3A 左右,我默认用 Buck:12V 降到 5V,或者电池降给耗电大的负载。LM2596 模块是我工作台上的常备件:便宜,输出用一个小螺丝就能调。
几个踩过的坑:
- 电感按它要过的电流选。超过它的上限(饱和)之后,它就不再像电感,而像一根普通的导线,于是不再限制电流,MOS 管可能因此损坏。
- MOS 管和电感相接的那段铜走线要短而宽;这个点开关很快,会散出干扰。
Boost 升压与 Buck-Boost 升降压
Boost 反过来,把低电压升成高电压,所以一节 3.7V 的锂电池可以带 5V 或 12V 的负载。它在开关导通时把能量存进电感,开关断开时让能量与输入串联放出,两个电压就叠加起来。Buck-Boost 对付的是输入一开始高于输出、后来又低于输出的情况:锂电池满电 4.2V、快没电 2.7V,它自己切换模式来稳住 3.3V。
实际中要注意的:
- Boost 启动时可能抽一大股电流,所以多数会慢慢升上来,这叫软启动。
- Boost 的输出不要短路,保护怎么做要提前想好。
电池充电管理与保护板:两个都不能省
锂电池不能直接接 5V 充电。电流必须被限制、电压必须一直盯着,这件事由专门的充电芯片来做。
- TP4056:一颗小的充电芯片。它先用稳定的电流充,直到电芯到 4.2V,然后改成稳住这个电压,多出来的电压变成热。芯片底下那个大焊盘就是把这些热带进板子里,所以要在它下面铺铜、打过孔。
- 保护板(一颗 DW01 加一组 8205A 开关):它全程盯着电芯的电压和电流,电压升到 4.30V 左右、掉到 2.40V 左右、电流过大或者输出短路,它就直接断开。
单节锂电池的完整链路是这样的:

多数电芯出厂时就已经把保护板做在里面,是一体的。
输入 5V → TP4056 → 【锂电池 + 保护板(一体化)】→ Buck/Boost → 各路负载
↑____充电____↑ ↑____放电____↑
- 充电时,TP4056 控制进去的电流,保护板盯着电压。
- 放电时,电流经过保护板流出电芯,它继续盯着电压有没有掉得太低、有没有短路。
设充电电流的时候要记住电从哪来:你的 USB 口。常见的 1A 对小型电池来说太大了。保护板必须贴在电芯上,不能放在主板那头隔着两根线。市面上多数 TP4056 模块已经把 DW01 和 8205A 集成进去,充电和保护是一块板。
效率与热设计:高效率不代表不发热
一个效率 95%、输出 50W 的 Buck,仍然会把大约 2.6W 变成热,足够让 MOS 管明显发热。
这些热从 MOS 管底下的焊盘传到外壳,再散到空气里;手机充电器和笔记本电源适配器就是拿外壳当散热片。
要检查的是:
- 温度,靠测试或者仿真,确认在最恶劣的环境下没有任何器件超过它的上限。
电源选型三问与综合实践
同样的负载下会发生什么?
- LM7805,线性稳压:9V 进、5V 出接 Arduino。五分钟之后芯片明显发烫,效率大约 55.6%。
- LM2596,Buck 模块,同样负载调到 5V:几乎不热,效率大约 92.6%。
靠电池供电的东西,我会先用开关电源。
拆开一个旧手机充电器
我拆过一个旧手机充电器,从市电插头一路把电追到 USB 口。
AC 220V → 保险丝电阻 → 共模电感 → 整流桥 → 400V 大电解电容 → 高频变压器初级 → 开关管(集成IC) → 变压器次级 → 肖特基整流 → 电解滤波 → 5V USB 输出
我觉得最有意思的是光耦,它跨在危险的高压侧和安全 5V 侧之间的那道隔离带上。
核心认知
设计链路:能源流 → 电压转换 → 热路径 → 结构集成,这是电子与工业设计的交叉地带。
常见疑问
保护板为什么必须和电池一体化?
因为它必须尽量贴着电芯,通常用镍带直接焊在电芯的极耳上。放到主板上,电流就得先经过额外的导线和接插件再进出电芯。
可以直接用 TP4056 给带保护板的电池充电吗?
可以,这就是常规做法。TP4056 负责充电,保护板是最后一道防线。
为什么我的 Buck 电路依然发烫?
一两瓦的实际损耗,如果没东西把热带走,就会把芯片内部温度顶上去。检查电感的电流能力、芯片周围的铜皮面积,以及热往哪里走。
知识库模块卡片
我工作台上常备的稳压模块
| 模块名 | 类型 | 输入电压 | 输出电压 | 最大电流 | 效率 | 发热 | 适用场景 |
|---|---|---|---|---|---|---|---|
| LM7805 | 线性稳压 | 7-25V | 5V | 1.5A(需散热) | ≈Vo/Vin | 极大 | 小电流、噪声敏感 |
| LM2596 模块 | Buck | 4.5-40V | 可调 1.25-37V | 2-3A | 85-93% | 小 | 压差大、效率优先 |
充电和保护在一块板上
| 模块 | 功能 | 充电方式 | 保护功能 | 备注 |
|---|---|---|---|---|
| TP4056+保护板 | 单节锂电充电 | 线性,1A 可调 | 过充、过放、过流、短路 | 必须配合保护板使用 |
拓展阅读
市电适配器按功率怎么选
市电适配器按功率分成几档:100W 以下基本都用反激(flyback);再往上用正激、推挽和桥式;现代电脑电源用谐振的 LLC,效率能到 90%~96%。
把纹波压下去
想同时要效率和干净的输出,就在 Buck 后面再加一级 LDO。
输入直流电源 → Buck → LDO → 负载
Buck 负责大压差,比如 12V 降到 5.5V,效率 90% 以上;剩下的 0.3~0.5V 交给 LDO,压差这么小,它几乎不发热,同时把波动抹平。
先定电池
先算清系统需要哪些电压,再挑电池:锂电池 3.7V、镍氢 1.2V,这决定了你要 Boost 还是 Buck-Boost。
长成电池组之后
这套东西长成电池组之后,同样的问题会以更大的尺度回来。Victron Wiring Unlimited 讲得很细,我的离网太阳能项目大量参考了它:家用低负载太阳能板电路规划设计