做电源前级保护的人多少都遇到过这种场面:一台样机上电测试,输入端插拔瞬间冒出个七八伏的尖峰,后级那颗 5V 供电的 MCU 和传感器就集体阵亡。事后复盘,大家第一反应都是"加个过压保护"。可真去选料的时候又发现问题——专用的过压保护芯片交期长、阈值固定、封装还挑板子;而手边一堆 2N3904、2N3906、9013、9012 这类三极管,几毛钱一颗,随手就能搭出一个能用的保护电路。这篇就聊怎么用分立三极管搭一个过压保护电路,并且先把仿真跑通,把触发点、响应时间、误触发这些关键指标在电脑上看清楚再动手焊板子。
"由三极管构成过压保护电路的仿真"这个题目,核心其实就两件事:一是电路拓扑怎么设计,让三极管在正确的时机从截止跳到饱和;二是仿真怎么设置,才能把真实电路里那些容易忽略的细节(比如稳压管软拐点、上电斜坡误触发、锁存保持能力)复现出来。我把第一篇的重点放在串联关断式拓扑上,因为它结构最干净、逻辑最好理解,也最适合拿来练手。撬棒式(Crowbar)那种用两只管子拼"可控硅"的玩法,留到后面单独说。
适合阅读的人:会看原理图、知道三极管有截止/放大/饱和三种状态,但对"怎么把分立器件拼成一个能自动动作的保护电路"还不太有把握的硬件工程师、电子爱好者、在校学生,都能直接抄作业。
1. 三极管过压保护的两个角色:谁负责"判断",谁负责"动手"
一个能自动动作的保护电路,无论多复杂,本质上都拆成两件事:判断电压是否超标,以及在超标时把输出切断或短路。分立三极管方案里,这两个角色通常由两组管子分别承担,而不是一颗管子全包。这个分工思路想清楚了,后面所有电阻取值都有依据。
1.1 检测级:稳压管串在基极回路,而不是并在分压点上
最容易被抄错的细节就在这里。很多人脑子里第一反应是"用一个电阻分压,把分压点接三极管基极",或者"稳压管并在下分压电阻上"。这两种做法在过压保护里都不好用。
分压接基极的问题很直接:三极管基极只要 0.65V 就导通了。5V 输入、10k/10k 分压,基极拿到 2.5V,管子早就深度饱和了,等于这个保护电路在正常工作电压下就已经动作,完全没法用。要压到 0.65V 以下,分压比得做到 1:7 以上,噪声容限极差,输入稍微一抖就触发。
稳压管并分压点同样别扭:正常工作时稳压管处于截止区,漏电流和结电容会直接影响分压点电位,而且它只在输入超过 Vz 之后才把分压点"钉住",钉住的那一刹那基极电压已经从 0.4V 跳到 0.65V 以上,触发点变得又软又飘。
我采用的接法是稳压管串联在基极支路上,整体路径是:
Vin → R1 → 稳压管(阴极) → 稳压管(阳极) → Q3 基极 → Q3 发射极 → GND ↕ R2 (基极到地)这样,只有当Vin - I·R1超过稳压管的击穿电压 Vz 之后,稳压管才开始导通,把电流送进 Q3 的基极。R2 的作用是把基极电流转换成基极电压,同时提供一个泄放通道。在输入电压低于阈值时,稳压管完全截止,Q3 基极被 R2 拉到 0V,整个检测级"零消耗"——这条支路在正常工作时几乎不耗电,也没有噪声耦合路径,这是我最看重的一点。
1.2 执行级:串联关断管为什么必须是 PNP
检测级决定了"什么时候动作",执行级决定了"动作时干什么"。串联关断式的基本结构是在电源正线上串一颗 PNP 三极管 Q2,发射极接输入,集电极接输出,负载挂在输出和地之间。
为什么偏偏是 PNP?因为高边开关的导通条件是"基极电位低于发射极",关断条件是"基极电位接近发射极"。而我们的检测级最擅长做的事情恰恰是"在过压时把某个节点拉到地"。如果串联管用 NPN 放在正线上,正常导通要求基极比发射极高出 0.65V 以上,而发射极等于输入电压,那就需要一个比输入还高的基极电压,要么加自举电容,要么加辅助绕组,小信号电路里根本做不出来。
换成 PNP 就顺了:正常时用一颗 R3(10k)把 Q2 的基极拉到地,Veb ≈ Vin,管子深度饱和,输出基本等于输入(只差一个 Vce_sat)。过压时,我们需要把 Q2 的基极"抬"上去,抬到接近 Vin 的位置,管子就截止了。抬基极这个动作,交给一颗 PNP 管 Q1 来完成——Q1 发射极接 Vin,集电极接 Q2 基极,Q1 一旦饱和,就把 Q2 基极短路到 Vin 附近。
所以完整的执行链是:Q3(NPN)检测到过压 → 拉低 Q1(PNP)的基极 → Q1 饱和 → Q2(PNP)基极被抬高 → Q2 截止 → 输出断电。三级联动,每一级的输入输出关系都很清晰。
1.3 保护管绝不能停留在放大区
还有个新手常犯的错误:把串联管设计成"线性调节"的样子,指望它做限压而不是切断。这在实际保护电路里是要命的。
三极管工作在放大区时,Vce 会随负载电流和基极电流变化,管子上承受的压差乘以电流就是实打实的功耗。假设输入过压到 12V,负载要 100mA,串联管如果停在放大区把输出稳在 5V,那它自己要吃掉(12-5) × 0.1 = 0.7W,一颗 SOT-23 的 2N3906 根本扛不住,几分钟就热失效了。而饱和/截止两种状态不一样:饱和时 Vce_sat 只有零点几伏,截止时电流为零,两种状态的功耗都极小。
所以保护电路的管子必须被"驱赶"到开关状态——要么完全导通,要么完全截止,绝不允许停在中间的放大区。仿真里判断这一点很简单:跑瞬态,观察 Q2 的 Vce 波形,凡是长时间处于 1V 到 3V 之间的段,就是危险的放大区停留,必须调整驱动电流。
2. 把触发点算准:阈值公式的推导与实际取舍
设计意图说完了,接下来是硬核部分——阈值到底等于多少。这部分算不准,仿真跑出来和理论差个 0.3V,你就会怀疑人生。
2.1 从 Vz + Vbe 到带电阻修正的阈值表达式
先写最粗糙的估算:触发时稳压管刚好击穿,基极刚好到 Vbe(on),所以
Vin_trip ≈ Vz + Vbe4.7V 稳压管配 0.65V 的 Vbe,得 5.35V。这个数偏低,因为忽略了 R1 上的压降。
把 R1 上的压降补进去。设触发瞬间流入稳压管支路的总电流为 I,则
Vin_trip = Vz + Vbe + I · R1而 I 由两部分组成:流过 R2 的电流(Vbe/R2)和真正进基极的电流 Ib。取 R2 = 10k、Vbe = 0.65V,则 R2 支路电流为 65µA;设 Ib 约 15µA,合计 I ≈ 80µA。取 R1 = 5.1k:
Vin_trip = 4.7 + 0.65 + 80µA × 5.1k = 4.7 + 0.65 + 0.41 = 5.76V这个 5.76V 才是应该拿去和仿真对比的数。仿真跑出来落在 5.6V 到 5.8V 之间都算合理,偏差主要来自稳压管的软拐点。
把公式整理成通用形式,方便换参数:
Vin_trip ≈ Vz + Vbe + R1 · (Vbe/R2 + Ib)从式子里能直接读出三条设计经验:
- R1 越小,阈值越接近
Vz + Vbe,但 R1 太小会让稳压管支路的电流变大,正常工作时虽然不导通,可一旦到阈值附近,电流上升会很快,容易引起抖动。 - R2 越大,R2 支路的分流越小,阈值越准,但 R2 太大会让基极驱动不足。折中的 5k~20k 区间比较舒服。
- 调阈值最省事的办法是换 Vz,而不是改电阻比。Vz 变 0.5V,阈值直接变 0.5V,还不用重新算电流;改电阻比则会同时影响电流和压降,连带一堆参数。
2.2 4.7V 稳压管的温度系数那点事
为什么我在这个电路里反复提 4.7V 这个数字?因为稳压管有个很有意思的特性:击穿电压在 5V 附近时,温度系数接近零。
低于 5V 的稳压管工作在齐纳击穿区,温度系数是负的,大约 -2mV/°C,温度升高击穿电压下降。高于 5V 的稳压管工作在雪崩击穿区,温度系数是正的,大约 +5mV/°C 到 +10mV/°C。而在 4.7V 到 5.1V 这个区间,两种机制的影响互相抵消,整体温漂能压到 ±1mV/°C 以内。
再看三极管的 Vbe,它是铁打的负温度系数,约 -2mV/°C。两者叠在一起,4.7V 稳压管配 NPN 检测级,从 -20°C 到 +85°C 的触发点漂移可以控制在几十毫伏量级。如果换成 9V 稳压管,光是稳压管自己就会有近百毫伏的漂移,再加上 Vbe 的负漂移,总漂移可能超过 150mV,对于 5V 轨来说已经吃掉 3% 的余量了。
这是纯靠文档看不出来的经验,仿真也能验证:加一句.step temp -20 85 15,跑直流扫描,把每一条曲线的触发点画出来,斜率就是温漂。我实测过一批 4.7V 稳压管,-20°C 到 85°C 的触发点漂移基本在 40mV 以内,换 6.2V 的管子直接跳到 120mV 以上。
2.3 滞回电阻和锁存电阻的取值逻辑
阈值附近最怕的是什么?抖动。输入电压如果正好卡在 5.76V 上下波动,保护电路一会动作一会恢复,输出跟着一会被切断一会被接通,后级设备等于在反复断电,比过压本身还伤。
两个解决思路,一个是滞回,一个是锁存。
滞回的做法是加一颗正反馈电阻:从执行级的输出节点(Q2 集电极或者 Q1 集电极)回接到检测级的基极节点,动作之后把阈值往下拽一点。比如动作后阈值降到 5.4V,那就意味着必须等输入掉到 5.4V 以下才会恢复,中间 0.36V 的死区就挡住了抖动。滞回量由反馈电阻和 R2 的比例决定,我一般取 R2 的 5 到 10 倍。
锁存的做法更彻底:动作之后永不自动恢复,必须断电重启。这对保护电路来说其实是好事——电压异常说明系统已经处于故障状态,这时候自动恢复反而是隐患,很可能反复冲击后级。我在这个电路里用的是锁存方案:从 Q1 的集电极(也就是 Q2 的基极节点)接一颗 100k 电阻回到 Q3 的基极。
它的工作原理是:Q1 一旦饱和,集电极电压被拉到接近 Vin,这颗 100k 电阻就把 Vin 上的一部分电流灌回 Q3 基极,Q3 自己维持在自己导通的状态,形成自锁。此时即使输入掉回 5V 以下,只要 Vin 还高于大约 1V,这个自锁回路就还能提供足够的基极电流,Q3 保持导通,输出保持断电。只有把输入彻底断掉(低于 1V 左右),自锁才解除。
100k 这个值是这么估的:锁存回路需要给 Q3 提供Ic/β的基极电流。Q3 集电极负载是 R3(10k)加上 Q1 基极支路,总电流约 0.5mA,按 β=100 算需要 5µA 基极电流。锁存回路在 Vin=5V 时能提供(5-0.75)/100k ≈ 42µA,是需求的 8 倍多,余量充足。如果想让它保持到更低的电压,把 100k 减小到 47k 就行,代价是正常状态下对 R2 分压点有轻微影响。
提示:滞回和锁存不要同时上。两个一起用的时候,滞回会把锁存的门槛拉得乱七八糟,排查起来非常痛苦。选一个,做干净。
3. 搭建仿真:网表、模型与激励源的设置
电路想清楚了,接下来把它翻译成能在电脑上跑的仿真。这一步的关键不是软件操作,而是模型参数的选择和激励源的构造——这两样决定了你的仿真结果有没有参考价值。
3.1 选哪套仿真器:ngspice/LTspice/Multisim 的适用场景
我平时主要用三套工具,各有各的场合:
| 工具 | 适合场景 | 我的使用习惯 |
|---|---|---|
| ngspice | 批量参数扫描、脚本化、服务器上跑 | 网表手写,.step和.dc用得最多 |
| LTspice | 交互式调参、看波形、快速验证 | 拖元件搭图,改参数即时看结果 |
| Multisim | 教学演示、需要示波器和探针的直观效果 | 给学生讲课时用,自己设计时很少开 |
这三套的 SPICE 内核都是同源的,网表格式基本能互通,关键差异在模型库和收敛策略。这篇文章我给出的是标准 SPICE 网表,ngspice 和 LTspice 都能直接跑,Multisim 里也有文本网表入口。
如果你是第一次跑,建议用 LTspice,因为它画完原理图之后可以右键点元件改参数,波形窗口能直接做光标测量和差分运算,调触发点这种活效率高很多。等你把参数定型了,再转成 ngspice 网表做成批处理,跑蒙特卡洛或者温度扫描。
3.2 一份可以直接跑的网表(含逐行注释)
下面这份网表就是前面分析的串联关断式电路。节点命名我尽量贴近原理图,方便对照。
* 三极管串联关断式过压保护 - 阈值检测 + 锁存 * 输入 5V 标称,过压到 9V,触发点约 5.76V .options reltol=1e-4 abstol=1e-12 vntol=1e-7 itl1=200 * ---- 激励源:5V 起步,1ms 时跳到 9V,持续 5ms ---- V1 in 0 PULSE(5 9 1m 200u 200u 5m 20m) * ---- 检测级 ---- R1 in zk 5.1k ; 限流,同时也参与阈值设定 D1 zb zk DZ ; 稳压管:阳极=zb,阴极=zk R2 zb 0 10k ; 基极下拉 / 电流-电压转换 Q3 q1b zb 0 qn ; 检测管:集电极=q1b,基极=zb,发射极=0 * ---- 执行级 ---- R5 in q1b 10k ; Q1 基极上拉,正常时保证 Q1 截止 Q1 qbb q1b in qp ; 抬压管:饱和时把 Q2 基极拉到 Vin R3 qbb 0 10k ; Q2 基极下拉,正常时保证 Q2 饱和导通 Q2 out qbb in qp ; 串联开关管 * ---- 锁存反馈 ---- R6 qbb zb 100k ; 动作后自锁,防止阈值附近抖动 * ---- 负载 ---- RL out 0 100 ; 100Ω 负载,对应 50mA @5V * ---- 器件模型 ---- .model qn NPN(Is=1e-14 Bf=200 Vaf=100 Rb=10 Rc=1 Re=1 + Cjc=4p Cje=8p Tf=0.4n Tr=100n) .model qp PNP(Is=1e-14 Bf=150 Vaf=60 Rb=10 Rc=1 Re=1 + Cjc=8p Cje=12p Tf=0.5n Tr=150n) .model DZ D(Is=1e-14 Rs=1 N=1.2 Cjo=100p BV=4.7 IBV=0.02 Tt=1u) * ---- 分析指令 ---- .tran 1u 20m .dc V1 4 8 0.01 .end几个必须说明的地方:
稳压管的方向。SPICE 里二极管语句是Dname 阳极 阴极 模型名。这个电路里我们要求它反向击穿,阴极必须接高电位那一侧,所以写成D1 zb zk DZ——zb 是阳极,zk 是阴极,而 zk 通过 R1 连到输入,电位更高。我见过不止一个人写反,结果仿真跑出来"保护电路在 2V 就动作了",排查半天。反向击穿的模型参数是BV(击穿电压)和IBV(击穿点的测试电流),IBV=0.02表示 20mA 时击穿电压为 4.7V,这个值会影响拐点的软硬程度。
模型的 Bf 和 Vaf。2N3904 的 β 在 100 到 300 之间,2N3906 在 100 到 200 左右。Vaf(正向厄利电压)决定了放大区里 Ic 对 Vce 的敏感程度,对开关电路影响不大,但如果你后面要分析放大区停留时的功耗,这个参数就重要了。Cjc/Cje是结电容,直接决定关断延迟,别省。
脉冲源的四个时间参数。PULSE(V1 V2 Tdelay Trise Tfall Ton Period),我用的PULSE(5 9 1m 200u 200u 5m 20m)意思是:1ms 时开始上升,上升沿 200µs,跳变到 9V 保持 5ms,然后下降沿 200µs 回到 5V,周期 20ms。这里的 200µs 上升沿是故意做慢的,因为真实电源的上电斜坡往往就是几百微秒到几毫秒,太快反而看不出误触发问题。
3.3 直流扫描与瞬态分析:两种跑法看不同问题
网表末尾我留了两条分析指令,它们看的是完全不同的东西,别混着用。
直流扫描.dc V1 4 8 0.01的作用是把输入从 4V 慢慢升到 8V,步长 10mV,看输出什么时候掉下去。这条指令回答的是"触发点是多少"这个静态问题,跟时间无关。跑完之后把V(out)对V1画图,会看到一条接近方波的曲线,掉下去的那个横坐标就是触发点。
瞬态分析.tran 1u 20m是把脉冲激励加进去,看时间轴上的完整过程:输入怎么爬升、输出什么时候掉、掉下去要多久、锁存能不能稳住。这条指令回答的是"动态响应怎么样"这个时间相关问题。
我一般的流程是:先跑直流扫描,把 R1、R2、Vz 调到位,触发点对准 5.7V 左右;然后跑瞬态,看响应时间和锁存;最后再回头跑一次直流,加上温度扫描,确认漂移在可接受范围。三步走下来,电路的基本行为就摸清楚了。
4. 波形读图:四个必须看懂的现象
仿真跑出来一堆曲线,真正需要盯的就那么几个现象。这一节我把它们逐个拆开,每个现象背后是什么物理过程,怎么判断是好是坏。
4.1 直流扫描定位真实触发点
跑完.dc V1 4 8 0.01,把V(out)和V(in)画在同一张图上。你会看到两条线在起始段几乎重合——因为 Q2 饱和导通,输出跟随输入,只低一点点,这个差值就是 Vce_sat。
接着在某一点,输出线垂直掉到接近 0V,输入线继续往上走。这个垂直掉落的位置就是真实触发点。
按前面的计算,理论值是 5.76V。实际跑出来大概率是 5.6V 到 5.7V,比理论值低一点。原因是稳压管的拐点不是刀切一样锐利的,N=1.2这个理想因子意味着在 4.7V 之前就已经有微弱的漏电流,几微安到几十微安,刚好够把 Q3 往导通方向推一点。如果想让拐点更硬,把N调到 1.05 到 1.1 之间,或者把IBV加大到 0.05 以上。
还有一个细节值得看:输出掉落的过程中有没有平缓段。如果输出从 5.7V 一路平滑滑到 0V,说明 Q2 是被慢慢推过放大区的,这个过程中 Q2 的功耗不低。如果是垂直掉下去,说明 Q1 一饱和就把 Q2 基极短路了,切换很干净。前者需要把 R5 改小(加大 Q1 的驱动电流),后者说明设计没问题。
4.2 关断延迟到底由什么决定
直流扫描看的是"从哪开始动",瞬态分析看的是"动得多快"。
从输入超出阈值,到输出真正掉到 10% 以下,这段时间我称它为关断延迟。这个电路的关断延迟由三个环节串联:
- 检测级延迟:基极电流把 Q3 从截止推到饱和,主要受基极节点的 RC 时间常数影响,也就是 R1、R2 和 Q3 的 Cje。估算量级在亚微秒。
- 驱动级延迟:Q3 拉低 Q1 基极,Q1 从截止到饱和。Q1 的基极节点时间常数由 R5 和 Q1 的 Cje 决定,10k × 12p ≈ 120ns。
- 开关级延迟:Q1 集电极把 Q2 基极抬高,Q2 退出饱和。这个延迟跟 Q2 的存储电荷有关,饱和越深,退出越慢。2N3906 从深度饱和退出的存储时间可以到几百纳秒。
加起来,实际关断延迟大概在 1µs 到 3µs 量级。对大多数后级芯片来说,这个速度足够——大部分 LDO 和 DC-DC 的过压耐受时间都在几十微秒以上。但如果你的后级是对电压极其敏感的射频器件或者高压工艺的模拟前端,就需要注意了,可能需要更快的手段。
降低延迟的两个有效手段:一是减小 Q2 的饱和深度,也就是把 R3 从 10k 加大到 22k,让 Q2 在正常状态下的基极电流小一些,退出饱和更快;二是给 Q2 基极并一颗小电容(几十皮法),提供一条快速关断通路,代价是正常开关时的边沿变缓。这两个手段我在不同项目里都用过,看你更在乎哪一头。
4.3 上电沿缓慢引起的误触发
这是个很隐蔽的问题,也最值得在仿真里提前发现。
想象一下输入电源上电的过程:电容充电,电压从 0V 慢慢爬升。如果爬升时间很长,比如 10ms,那么在电压经过 5.76V 之前,一切正常。但问题出在爬升过程中 Q3 的基极状态。
在输入低于稳压管击穿电压时,稳压管截止,Q3 基极通过 R2 接地下拉,理论上应该是 0V。但实际上,稳压管的结电容 Cjo 会把输入端的电压变化耦合到基极节点。缓慢上升时,耦合量很小,i = C·dV/dt,10ms 爬 5V,dV/dt = 500V/s,乘上 100pF 只有 50nA,在 10k 电阻上产生 0.5mV,完全可以忽略。
真正的问题出在斜坡快到阈值附近时。当输入接近 5.7V,稳压管开始微弱导通,基极电压刚好卡在 Vbe(on) 附近,此时 Q3 的集电极电流很小,处于放大区。Q1 的基极被这个小电流拉低一点点,可能刚好让它进入放大区。这个状态下,Q1 集电极电流不大但也不小,可能让 Q2 基极抬高一点点,输出掉一点点,然后输入继续上升,真正触发。整个过程输出是个"台阶"而不是干净的下落。
仿真里故意用 200µs 的慢上升沿,就是为了看见这个台阶。如果看见了,说明阈值附近的过渡不够陡,处理方法是把 R1 减小、R2 增大、或者选拐点更硬的稳压管。如果没看见明显的台阶,说明设计余量足够。
另外,如果输入电源的软启动时间真的很长(几十毫秒以上),可以在基极节点加一颗小电容(100pF ~ 1nF)做低通,把缓变分量滤掉,只对快速过压响应。这是用响应速度换抗误触发的典型取舍。
4.4 关断后输出残压与负载的关系
最后一件事:输出被切断之后,电压真的掉到 0 了吗?
仿真里看V(out)的下降沿。如果负载是纯电阻 100Ω,输出会随着负载电流放电,时间常数由负载电阻和输出端的总电容决定,大概是100Ω × C_out,几百皮法的话就是几十纳秒,很快就到 0。
但如果负载是容性的,比如后级有一颗 100µF 的电解电容,情况就完全不同了。Q2 一旦截止,这颗电容上的电荷没有泄放通道,输出会长时间保持在高位,慢慢通过负载或者漏电流泄放。如果负载是轻载甚至空载,这个残压能维持好几秒。
这在仿真里怎么体现?把 RL 换成RL out 0 100加一句CL out 0 100u,再跑瞬态。你会看到输出掉到一个中间值之后就基本平了,形成一个"残压平台"。这个平台高度等于电容上剩余电荷除以总电容,实际上就是切断瞬间的电压减去一点点。
实际意义是什么?有三点:
- 后级电路在"被切断"之后仍然承受着高于安全的电压,直到电容自然泄放。如果后级是敏感器件,这个残压就是隐患。
- 需要给输出并一颗泄放电阻,比如 1k,让电容在毫秒级内放完。代价是正常工作时多耗几毫安。
- 如果负载是容性且容量很大,还要考虑切断瞬间电容对 Q2 的反向冲击,可能需要加反向保护二极管。
提示:仿真里给输出并一颗 1k 泄放电阻,再跑一次瞬态,对比有和没有的波形,你就明白为什么很多电源模块的输出端都会挂一颗不起眼的电阻了。
5. 换成撬棒式:两只三极管拼出"可控硅"
串联关断式的优点是干净、可恢复、对电源冲击小;缺点是在某些场景下不够快、残压问题不好解决。这时候另一种拓扑就有优势了:撬棒式,动作时直接把电源轨短接到地,靠熔断器或者 PTC 切断电路。
5.1 再生反馈的触发条件与维持电流
撬棒式的核心是两只三极管交叉耦合,拼出一个等效的可控硅结构:
┌───────────┐ Vin ────┤ Q4 (PNP) E│ │ │ │ B ────┤──── Q5 (NPN) C │ │ │ C ────┤──── Q5 B ──── 触发节点 └───────────┘具体来说,Q5 是 NPN,发射极接地;Q4 是 PNP,发射极接 Vin。Q5 的集电极接 Q4 的基极,Q4 的集电极接 Q5 的基极。这个正反馈环一旦被"点火",两只管子就会互相把对方往饱和里推,最后形成一个从 Vin 到地的低阻通路,把电源轨拉垮。
点火的方式:在 Q5 的基极上接检测支路,也就是前面那套 R1 加稳压管加 R2 的结构。当输入过压,检测支路往 Q5 基极注入电流,Q5 导通,集电极拉低 Q4 基极,Q4 导通,集电极又把 Q5 基极往上顶,正反馈建立,瞬间进入锁定状态。
这个过程在仿真里看得非常清楚:输入一到阈值,输出(此时其实就是被短路的轨道电压)会在一两百纳秒内垂直塌下去,塌到 1V 左右(两只管子饱和压降之和),然后持续保持这个状态,直到输入电流被外部元件限制住。
关键参数有两个:触发电流和维持电流。
触发电流就是让正反馈能够建立起来的最小基极注入电流。太小了不行,正反馈还没建立就熄火了。经验上,触发电流要保证Ic_Q5 × β_Q4 ≥ I_维持。我在仿真里一般用.dc扫描输入电压,看输出从高阻态塌下去的那个点,就是触发点;然后反向扫描(输入从高往低降),看它什么时候恢复高阻,中间那段就是维持区。
维持电流是正反馈能够自持的最小总电流。这个值跟管子的 β 和两个耦合电阻有关,通常在毫安量级。如果外部电路(比如熔断器还没熔断)的限流值低于维持电流,撬棒就会"熄火",电路恢复,然后输入继续上升又重新触发,来回震荡。这就是为什么撬棒式必须配一个能在毫秒级动作的限流元件,否则会变成振荡器。
5.2 熔断器配合与解除方式
撬棒式和熔断器是一对固定搭配,这一点必须说清楚。
动作逻辑是这样的:输入过压 → 撬棒导通 → 电源轨被短路 → 电流迅速上升到熔断器的额定电流以上 → 熔断器在几毫秒内熔断 → 电路彻底断电。整个过程后级设备承受的过压时间就是"撬棒响应时间 + 熔断器熔断时间",通常几毫秒。
这里有个容易忽略的点:熔断器的额定电流和撬棒的短路电流要匹配。熔断器选大了,熔断时间会拖到几十毫秒甚至几百毫秒,后级虽然被短路了但输入仍然在高位,管子会持续承受大电流。假设输入是 12V 稳压源,撬棒短路电流受限于源的内阻,可能是 5A,熔断器选 2A 的情况要 10ms 以上才熔断,这 10ms 里两只管子要扛12 × 5 = 60W,瞬间就冒烟了。
所以实际设计里,撬棒式的短路电流通常要开到额定电流的 5 到 10 倍,让熔断器在 1ms 以内动作。这要求电源本身的瞬态输出能力足够,同时撬棒管子得选能扛住这种脉冲电流的型号,SOA(安全工作区)要留够余量。
解除方式就只有一种:换熔断器。这也是撬棒式和串联关断式最大的体验差异——串联式断了电,你把输入恢复到正常范围就自动恢复(如果没有锁存);撬棒式一旦动作,物理上就断了,必须人工更换元件。
选哪种?我的经验是:后级价值高、希望可恢复的场合用串联关断;后级怕的是短时高压脉冲、要求响应极快的场合用撬棒;两者都怕的场合,串联关断加一颗 TVS 做二级防护。TVS 负责吸收纳秒级尖峰,串联关断负责毫秒级的持续过压,分工明确。
6. 从仿真到实物:几个容易翻车的地方
仿真跑通了不代表板子能用。下面这几个坑,我在不同的项目里都踩过,写出来省得你重复。
6.1 二极管方向和模型参数写错
前面提过一次,这里再强调一遍,因为它太常见了。稳压管在 SPICE 网表里的阳极阴极顺序,和你在原理图软件里看到的符号方向,经常对不上。
一个快速的验证方法:跑直流扫描,把V(zk)和V(zb)都画出来。正常情况下,V(zk)应该等于V(in) - I·R1,在触发前基本跟随输入;V(zb)在触发前应该接近 0(因为 R2 下拉),触发后爬到 0.65V 左右。如果发现V(zb)从一开始就跟着输入走,那说明管子方向反了,电流从基极直接流走了。
模型参数方面,最常见的错误是直接拿理想二极管模型当稳压管。默认的D模型没有指定 BV,击穿电压是无穷大,管子永远不会击穿,保护电路永远不会动作。必须显式写BV=4.7。另外IBV的默认值是 0.1mA,这个值对应的拐点非常硬,跟真实稳压管差得远,改成 0.02 或者更贴近你的实际器件的手册值。
6.2 收敛失败与常见的收敛选项
"仿真发散"是每个人迟早会遇到的问题。这个电路里,发散通常出现在两个位置:稳压管的击穿拐点,以及正反馈建立的那一瞬间。两处都是强非线性区域,牛顿迭代容易跳飞。
网表开头我加了这行:
.options reltol=1e-4 abstol=1e-12 vntol=1e-7 itl1=200reltol=1e-4:相对容差,默认 1e-3 对一些高阻节点太松,收紧到 1e-4 会更稳。abstol=1e-12:电流绝对容差,默认 1e-12 已经比较严了,如果遇到高阻节点(比如 100k 反馈支路)可以降到 1e-13。vntol=1e-7:电压绝对容差,默认 1e-6,收一格。itl1=200:直流工作点的迭代次数上限,默认 100,非线性强的电路经常不够用。
除了这些,还有几个通用的救命选项:
- 在每个节点对地加一颗
1G的电阻,给悬空节点一个直流通路。 - 给非线性器件串一颗小电阻(1Ω 以内),把电流陡变平滑掉。
- 用
.tran ... uic跳过直流工作点计算,直接从零状态开始,适合启动瞬间的电路,但会丢失稳态信息。 - 瞬态分析时减小最大步长
tmax,比如.tran 1u 20m 0 1u,强制每微秒算一步。
我个人的经验是,先试着收紧容差和加大迭代次数,八成的发散都能解决;剩下两成通常是电路本身有问题,比如某个节点缺直流通路,或者激励源设置得不合理。
6.3 容差、温度与器件选型余量
仿真跑出来的那个 5.68V 触发点,是一个"标称值",实物上永远不会刚好是这个数。影响因素至少有三个:
- 稳压管的初始容差:4.7V 的稳压管,不同厂家、不同批次的击穿电压可能差 ±5%,也就是 4.47V 到 4.94V。这一项就能让触发点飘 ±0.25V。
- R1、R2 的电阻容差:1% 精度的金属膜电阻,两个一起算,对触发点的影响大概 ±1%,也就是 ±0.06V。
- Vbe 的批次差异和温漂:-20°C 到 85°C 大概 -0.2V,不同管子之间还有 ±50mV 的差异。
三项叠加,最坏情况下触发点的分布范围可能是 5.2V 到 6.2V,跨度 1V。这个宽度在设计上能不能接受,取决于你的系统余量。如果后级器件的绝对最大额定值是 6.5V,那 6.2V 的上限就有点悬了。
降低离散性的做法:用 1% 精度、温度系数 50ppm 以内的稳压管(比如 BZX84C4V7 这类),电阻用 1% 金属膜,把 R1 的电阻值适当加大以降低它对绝对阈值的敏感度(但会牺牲一点精度),并且在批量生产前做一次典型的器件抽样测试,把实测分布和仿真分布对照。
如果离散性还是太大,那就退回到专用保护芯片。分立方案的灵活性是有代价的,这个代价就是精度和一致性。我一直的态度是:分立三极管方案适合对阈值精度要求不苛刻、追求成本和灵活性的场合;一旦阈值精度要求进入 ±3% 以内,就该考虑集成方案了。
提示:仿真里做容差分析,最简单的办法是用
.step param把 R1 和 Vz 参数化,然后跑蒙特卡洛。ngspice 支持.step param VZ list 4.5 4.7 4.9这种写法,一次跑三条曲线,快得很。
最后再分享一个实测小技巧:判断保护电路有没有真正工作在开关状态,用热像仪比用示波器更直观。板子正常工作时,串联管 Q2 摸上去应该是温的但不烫;如果发烫,说明它停在了放大区,赶紧回头查 R3 和 R5。这个土办法在调试阶段救过我两次,比反复看波形快得多。