2、上电稳定性基础:上电时序、浪涌电流、电压跌落、缓启动电路原理

上电,听起来很简单对吧?插上电源,按下开关,系统就启动了。但在我十几年的硬件生涯里,因为上电问题导致产品翻车的案例,一只手都数不过来。你想想看,一个电路板,功能都调通了,一上电就复位、烧保险、甚至冒烟——问题往往就出在“上电”这个瞬间。

这一章,我们就来聊聊上电稳定性的四个核心话题:上电时序、浪涌电流、电压跌落和缓启动电路。搞懂了这些,你设计的产品才能“站得稳、跑得久”。

核心观点:上电不是“1”和“0”的切换,而是一个动态过程。忽略这个过程的工程师,迟早会在测试室里加班到深夜。

上电稳定性知识框架 上电稳定性 上电时序 浪涌电流 电压跌落 缓启动电路 多电源轨供电顺序 FPGA/CPU 上电要求 输入电容充电电流 保险丝/断路器选型 电源内阻与线路压降 负载瞬态响应 NTC 热敏电阻 MOSFET 缓启动

2.1 上电时序:谁先谁后,有讲究

现在的板子,动不动就是三五组电源:3.3V、1.8V、1.2V、0.9V……它们不是同时上来就完事了。很多芯片,尤其是 FPGA、CPU 和高速 ADC,对电源上电顺序有严格的要求。

为什么?因为芯片内部有 ESD 保护二极管和寄生结构。如果核心电压还没建立,I/O 电压先上来了,电流会通过 ESD 二极管倒灌进核心电源网络,轻则锁死,重则烧毁。我记得有一次,一个同事设计的板卡,3.3V 先于 1.2V 上电,结果 FPGA 的 I/O bank 直接挂了,换了两片才找到根因。

我的习惯:设计多电源系统时,先看数据手册里的“Power Sequencing”章节。如果手册没写,默认遵循“先核心、后 I/O”的原则——先给内核供电,再给外围接口供电。

实现上电时序控制,常见的方法有几种:

  • RC 延时 + 使能引脚:最简单,但精度差,适合对时序不敏感的场景。
  • 专用电源时序芯片:比如 TI 的 TPS3808、ADI 的 LTC2928,可以精确控制延时和顺序。
  • FPGA/CPLD 控制:灵活,但需要 FPGA 本身先上电,存在“先有鸡还是先有蛋”的问题。
  • MOSFET 级联:利用前一级电源的 PG(Power Good)信号去使能后一级。
方法 精度 成本 适用场景
RC 延时 低(±20%) 极低 简单系统、非关键时序
专用时序芯片 高(±2%) 中等 FPGA、CPU 供电
FPGA/CPLD 高 较高 复杂系统、可编程需求
MOSFET 级联 中等 低 多路电源、中等复杂度

2.2 浪涌电流:上电瞬间的“洪水猛兽”

你插上电源的那一刻,板子上的大电容——尤其是电解电容和陶瓷电容——相当于短路。电流会瞬间冲到峰值,可能达到稳态电流的 10 到 100 倍。这就是浪涌电流(Inrush Current)。

为什么会这样?电容的充电电流公式是 I = C × dV/dt。上电瞬间 dV/dt 极大,所以电流也极大。如果电源或保险丝扛不住,就会触发过流保护,或者直接把保险丝熔断。

我曾经遇到过一个产品,客户反馈“一插电就烧保险”。查了半天,发现输入端并联了 4 个 470μF 的电解电容,浪涌电流峰值超过了 30A,而保险丝额定只有 2A。嗯,这显然不是保险丝的问题,是设计的问题。

避坑指南:我曾经在选型保险丝时只看额定电流,忽略了浪涌电流的 I²t 特性。结果保险丝在正常上电时反复熔断。后来改用慢断型保险丝,并增加了 NTC 限流,问题才解决。

浪涌电流的典型计算公式:

I_peak = V_in_max / R_esr_total

其中:
V_in_max = 最大输入电压
R_esr_total = 电源内阻 + 线路电阻 + 电容 ESR + 保险丝电阻

实际设计中,我们通常用以下方法抑制浪涌电流:

  • NTC 热敏电阻:冷态电阻大,热态电阻小,简单有效。但注意,如果频繁开关机,NTC 来不及冷却,限流效果会大打折扣。
  • 固定电阻 + 继电器:上电时先通过电阻限流,等电容充满后再用继电器短路电阻。效率高,但成本也高。
  • MOSFET 缓启动:通过控制栅极电压的上升斜率,让 MOSFET 逐渐导通,等效于一个可变电阻。这是目前最常用的方法。

2.3 电压跌落:电源被“拉垮”了

上电瞬间,浪涌电流从电源线上流过,会在电源内阻和线路阻抗上产生压降。结果就是:你明明设置了 5V 输出,上电瞬间却跌到了 4.5V 甚至更低。这就是电压跌落(Voltage Sag)。

电压跌落的危害很大。如果跌落到芯片的欠压锁定(UVLO)阈值以下,芯片会反复复位,系统永远起不来。或者,如果跌落导致逻辑电平混乱,可能引发数据错误。

我个人习惯在设计初期就估算电压跌落:

V_drop = I_inrush × (R_source + R_trace + R_connector)

举例:
I_inrush = 10A
R_source = 0.1Ω(电源适配器内阻)
R_trace = 0.05Ω(PCB走线电阻)
R_connector = 0.02Ω(接插件接触电阻)
V_drop = 10 × (0.1 + 0.05 + 0.02) = 1.7V

如果电源输出是 5V,跌到 3.3V,很多芯片就罢工了。所以,要么降低浪涌电流,要么减小回路阻抗,要么提高电源的带载能力。

关键点:电压跌落不是电源本身的问题,而是“电源 + 线路 + 负载”整个系统的瞬态响应问题。设计时要把这三者放在一起看。

2.4 缓启动电路原理:让电压“软着陆”

缓启动(Soft-Start)的核心思想很简单:限制上电时的电流变化率,让电压缓慢上升,而不是“砰”的一下跳上去。

最常见的缓启动电路是基于 MOSFET 的。原理图大致如下:

输入 V_in —— [R1] —— 栅极 G —— [C1] —— GND
                    |
                    MOSFET (Q1)
                    |
输出 V_out —— 负载电容 C_load —— GND

工作过程:上电时,R1 和 C1 组成 RC 充电回路,栅极电压 Vgs 缓慢上升。MOSFET 的导通电阻 Rds(on) 从无穷大逐渐减小到毫欧级。这样,电流就被限制住了。

缓启动时间由 R1 和 C1 决定:

T_soft_start ≈ R1 × C1 × ln(V_in / V_th)

其中 V_th 是 MOSFET 的阈值电压

举个例子:R1 = 100kΩ,C1 = 1μF,V_in = 12V,V_th = 2V,那么 T_soft_start ≈ 100k × 1μ × ln(12/2) ≈ 0.18 秒。这个时间足够让负载电容缓慢充电,浪涌电流可以降低到原来的十分之一甚至更低。

我的经验:缓启动时间不是越长越好。太长了,系统启动慢,用户可能觉得“死机了”。我一般控制在 10ms 到 500ms 之间,具体看负载电容大小和电源的带载能力。

除了 MOSFET 方案,还有集成缓启动功能的电源芯片。比如很多 DC-DC 转换器都内置了软启动引脚,接一个电容就能设定启动时间。这种方案更简洁,也更容易控制。

最后,给你一个检查清单,设计上电电路时可以对照着看:

  • 是否所有芯片的电源时序都满足数据手册要求?
  • 浪涌电流是否在保险丝、MOSFET 和电源的承受范围内?
  • 电压跌落是否会导致芯片复位或逻辑错误?
  • 缓启动时间是否与系统启动时间匹配?
  • 是否考虑了最坏情况(如高温、低输入电压)下的表现?

上电稳定性,说白了就是跟“瞬间”较劲。把这一章的内容吃透了,你设计的产品就能在通电的那一刻,稳稳地站起来。