1. 先搞清楚一件事:你防的到底是什么干扰
很多做单片机开发的朋友,一听到“电路防护”第一反应就是加TVS、加ESD,但真到选型的时候又容易犯迷糊:这两个东西长得差不多,参数也差不多,到底用哪个?加了保护器件之后,为什么板子还是烧?为什么有的板子打静电没问题,雷击浪涌一过就死?
我早年做一款带外部按键和RS485通信的仪表时,就栽过大跟头:样机在实验室跑得好好的,一到客户现场就频繁死机、复位,后来甚至直接烧掉了MCU的IO口。拆开板子看,芯片表面有个针尖大小的黑点——典型的静电击穿或浪涌过压导致的失效。那时候我对防护器件的理解仅限于“有干扰就加个TVS”,至于怎么加、加在哪、选什么型号,全靠猜。
这篇文章把我这些年做单片机电路防护的实战经验整理出来,重点讲清楚两个问题:TVS管和ESD二极管的本质区别是什么,以及面对具体的单片机电路,你到底该怎么选、怎么用。内容包括参数计算、场景分析、Layout注意事项和几个真实踩坑案例,适合正在做硬件设计、单片机系统集成或者准备参加电子竞赛(比如蓝桥杯嵌入式、单片机方向客观题)的工程师和同学参考。
1.1 静电放电(ESD)是怎么把单片机搞死的
先看一个最常见的场景:你拿着一个用单片机控制的设备,手指碰到金属外壳的USB口或者按键缝隙,只听“啪”一声——甚至听不到声音,设备就死机了。
这就是静电放电(Electro-Static Discharge,ESD)。人体在干燥环境下摩擦毛衣、走动,身上可以积累几千伏到上万伏的静电电位。当你触碰设备时,这个高压在极短时间(纳秒级)内通过接触点泄放,瞬间电流可以达到几十安培,虽然持续时间很短,但足以穿透MOS管的栅氧化层,或者让芯片内部的寄生结构发生闩锁效应(Latch-Up)。
MCU的CMOS工艺对静电特别敏感。普通IO口的HBM(人体模型)耐受电压通常是±2kV到±4kV,而实际环境里的静电放电电压可能到±8kV甚至±15kV。一旦超过芯片能承受的极限,栅氧化层被击穿是不可逆的,芯片就报废了。
ESD保护的核心思路是疏导:在干扰进入芯片之前,给它提供一条阻抗更低、更安全的泄放路径,把静电电流引导到地或者电源轨上,钳位住电压,让芯片引脚上的电压始终落在安全范围内。
1.2 浪涌与感性负载反击:TVS的主战场
再看另一个场景:你的单片机控制了一个继电器,继电器线圈一端接12V,另一端经过三极管或MOSFET接地。每次继电器断开瞬间,你会不会在示波器上看到线圈两端出现一个很高的尖峰?
继电器的本质是一个电感。根据电感的基本公式,电感电流不能突变,当回路突然断开时,电感会通过感应电动势来维持电流,这个反向尖峰的幅度可以轻松超过电源电压的好几倍,甚至达到上百伏。如果这个尖峰顺着走线串到MCU的IO口或者电源轨上,后果跟静电类似,轻则复位,重则烧毁。
除了感性负载反击,还有一类是雷击浪涌(Surge),比如室外布线的RS485总线、电源线。雷击不一定直接击中设备,但附近的雷击会在线缆上感应出很高的瞬态过压,持续时间比ESD长得多(微秒到毫秒级),能量也大得多。这时候ESD二极管往往扛不住,需要TVS管这种功率容量更大的器件来扛。
TVS(Transient Voltage Suppressor,瞬态电压抑制二极管)的设计目标就是吸收瞬态大能量,把过压尖峰钳位到安全电平。它的响应时间是皮秒级到纳秒级,比普通稳压管快得多,而且在同样的封装尺寸下能吸收的瞬态功率远大于普通二极管。
1.3 两者的边界在哪里
一句话总结:
- ESD二极管:主要对付静电放电,特点是电容低、响应快、体积小,适合高频信号线和IO口的静电防护,但瞬态功率容量小。
- TVS管:主要对付浪涌和感性负载反击,特点是功率容量大、钳位电压低,适合电源端口、总线接口等可能遭受大能量冲击的位置。
用个生活化的类比:ESD二极管像小区的保安,看到有小偷(静电)就第一时间喊一声并把人拦一下;TVS管像消防队,遇到火灾(浪涌)才有能力真正把火扑灭。两者不是完全替代的关系,很多设计里会同时用。
2. TVS管选型的核心参数与计算思路
TVS管的选型,归根到底就是在**钳位电压足够低(保护得住芯片)和正常工作电压下不误触发(不影响电路)**这两个约束之间找平衡点。每一颗TVS管都有几个关键参数要理解透。
2.1 VRWM、VBR、VC这三个电压怎么理解
拿到一颗TVS管的规格书,你会看到以下几个核心电压参数,很多人就是在这里被搞晕的。
VRWM(Reverse Stand-off Voltage,反向关断电压)
这是TVS管在正常工作时能够承受的最大直流电压或峰值电压。当电路电压低于VRWM时,TVS管处于高阻态,几乎不导通,泄漏电流极小(微安级),所以它不会影响电路的正常工作。
选型第一原则:VRWM必须大于被保护电路的最高工作电压。比如你的电源轨是5V,那VRWM至少选5V以上,留一点余量,一般选5.5V或6V。如果VRWM选得比工作电压还低,那TVS管一上电就开始导通,相当于把电源短路或是持续大量漏电,电路直接不工作。
VBR(Breakdown Voltage,击穿电压)
这是TVS管开始进入导通状态时对应的电压。通常在指定的测试电流(比如1mA)下测量。VBR一般比VRWM高10%到20%左右。从VRWM到VBR这个区间,TVS管是介于截止和导通之间的过渡区。
VC(Clamping Voltage,钳位电压)
这是TVS管在流过最大峰值脉冲电流IPP时的最大电压。也就是说,当浪涌电流流过TVS时,TVS两端会被强制压在这个电压以下。
选型第二原则:VC必须小于被保护电路(尤其是芯片)的绝对最大额定电压。比如STM32的IO口不建议超过VDD+0.3V(即3.6V左右),那你当IO口上的钳位电压最好是3.6V以下,否则保护了等于没保护,芯片照样损坏。
那是不是VC越低越好?也不是。VC太低往往意味着VBR也低、VRWM也低,电路正常工作时更容易误触发,而且相同功率等级下能承受的IPP会变小。所以这是一个平衡游戏。
如果你看到规格书上有钳位因子(Clamping Factor,VC/VBR),就能大致判断它对各种过压的抑制能力。钳位因子越小,说明钳位特性越硬,保护效果越好。
2.2 单向还是双向?判断依据
TVS管分单向和双向,从电路符号上看,单向的就是一个稳压二极管符号,双向的则是两个背靠背串联的二极管符号。
单向TVS:适用于被保护信号始终是正极性、不会出现负电压的情况。比如单片机的5V电源轨、3.3V电源轨、直流继电器驱动电路。单向TVS在反向(正电压)方向有钳位作用,正向方向实际上就是一个普通二极管,压降约0.7V,也能起到一定的负极过压保护作用。
双向TVS:适用于被保护信号可能双向摆动的场合,比如交流电源输入端、RS485总线A/B线、CAN总线的CANH/CANL。这些信号在正常工作时就有正负交替或差分摆动,用单向TVS会把正常信号钳掉。
这里有一个新手常犯的错误:在24V直流电源输入端选了一个单向TVS,觉得万事大吉,结果接反电源的时候,TVS虽然能把反向电压给导通钳住,但它是当作一个0.7V压降的二极管在扛,大电流流过时很快就会过热烧毁,起不到“防反接”的作用。TVS不是用来防反接的,防反接要用防反接电路(比如PMOS防反接、二极管防反接保险管组合)。
2.3 实际计算:从一个24V电源端口开始
我们通过一个具体案例来做选型计算,这样更有体感。假设你需要保护一个24V直流电源输入端口,后级接的是单片机系统的DC-DC或LDO,输入最高允许电压是30V,系统正常工作电流0.5A。
第一步,确定VRWM。24V电源实际会有纹波,而且在一些工业现场,24V电源的波动可能到±10%,甚至±20%。保守起见,你的VRWM至少要大于最高稳态工作电压。取24V×1.2=28.8V,那么选择VRWM≥30V的TVS相对安全。在这个电压等级附近,常用的有SMBJ30A(VRWM=30V)、SMBJ33A(VRWM=33V)等。
第二步,验证VBR。SMBJ30A的VBR标称值是33.3V(最小30V,最大36.7V),这个值高于24V,正常工作区间不会被击穿。
第三步,看VC。SMBJ30A在IPP=10.1A时,最大VC是48.4V。你的后级电源输入允许的最大电压如果是30V,那这颗TVS的钳位电压显然太高了——这是很多人的认知盲区:TVS虽然保护了后级不被几百伏打坏,但钳位电压依然可能远超后级的绝对最大额定值。
这时候怎么办?要么选更低钳位电压的TVS,比如反向工作电压低一些的型号(比如SMBJ26A,VRWM=26V,VC约42.1V),要么在后级再加一级LDO或串联电阻,让TVS先吸收主要能量,再由后级电路做二次滤波和限流。多数工业级设计不会只靠一级TVS保护所有东西。
第四步,确定功率等级。TVS的功率等级用Pppm(峰值脉冲功率)表示,计算公式是Pppm = VC × IPP。SMBJ系列是600W,SMDJ系列是3000W,5KP系列是5000W。你需要的功率取决于可能出现的浪涌电流大小。如果是室内直流电源,600W的SMBJ一般够用;如果是可能遭受雷击的户外接口,建议选3000W以上的SMDJ或5KP。
2.4 功率选型的常见误区
关于TVS功率选型,新手最容易犯的错误是:只看VC够不够低,不看Pppm够不够大。结果是TVS管钳位电压确实低,但浪涌能量太大,TVS管先于被保护器件烧毁。
实际选型时,你需要估算最坏情况下的浪涌能量。工程上常用“波形参数”来定义浪涌:比如8/20μs电流波形(8μs上升到峰值,20μs降到半峰值),或者10/1000μs。不同波形下,TVS管能承受的峰值功率不同,规格书上会给出某一特定波形下的Pppm。你需要在同样的测试波形下比较。
还有一种情况是重复性浪涌。比如继电器频繁开断,每次开断都会产生一个能量不小的尖峰。TVS管每承受一次浪涌,结温就会升高一截,如果来不及散热,几次之后就会失效。对付这种场景,选功率更大的TVS比选钳位电压更低的更重要。
3. ESD防护器件的选型逻辑与典型场景
说完了TVS,再来说ESD二极管。很多人会问:我直接用TVS不行吗?为什么还要单独做静电防护?
3.1 ESD二极管与TVS到底差在哪
核心差异在寄生电容和响应特性。
高速信号线上(比如USB 2.0、HDMI、以太网、SD卡数据线),信号的上升沿本身就很快,如果保护器件的寄生电容太大,信号边沿就会被拉平,导致信号完整性变差,轻则误码率高,重则完全不能通信。
普通TVS管的结电容通常在几十皮法到几百皮法之间,用在低速开关量电源轨问题不大,但放在USB数据线上就不行了。而ESD二极管专门针对高频、高速信号优化,寄生电容可以做到1pF以下,甚至0.2~0.5pF,对信号的损耗可以忽略。
另外,ESD器件的响应速度通常在皮秒级,比一般TVS更快。静电放电的上升沿只有几百皮秒到几纳秒,响应不够快的话,干扰一旦先进到芯片里,保护就失去了意义。
从结构上看,常见的ESD二极管有两种实现方式:一种是普通的TVS管芯片小型化,通过优化结构和掺杂降低电容;另一种是BJT型ESD结构,利用寄生BJT的导通特性来实现更低的触发电压和更好的钳位性能。BJT型ESD在低电压工艺(如深亚微米CMOS)里特别常见,因为它能够在很低的工作电压下提供有效的箝位,同时保持极低电容。
3.2 集成封装ESD阵列的应用
单片机系统里,需要ESD保护的地方往往不止一路。比如你做了一个带矩阵键盘的产品,每一路按键扫描线都需要防护;做了一个USB设备,D+和D-两条线都要防护。这时候逐个用分立ESD二极管不仅占板面积大、寄生参数大,而且不对称的走线反而容易引出新的问题。
更常见的做法是用ESD保护阵列:一个芯片里集成了多路ESD二极管,典型的有以下型号:
| 器件型号 | 通道数 | 寄生电容 | 工作电压 | 典型应用 |
|---|---|---|---|---|
| ESD9L5.0 | 1路 | 0.5pF | 5V | USB、HDMI |
| TPD4E05U06 | 4路 | 0.8pF | 5.5V | USB、HDMI、DisplayPort |
| NUP2105L | 2路 | 约5pF | 24V以下 | CAN总线、RS485 |
| USBLC6-2SC6 | 2路 | 0.6pF | 5.5V | USB 2.0高速信号 |
以USBLC6-2SC6为例,它内部集成了两个ESD二极管阵列,专门用于USB线的静电防护。它的钳位电压低至6V左右,配合1.3pF的电容,可以保证USB 2.0的480Mbps信号传输良好。ST的规格书里还给出了IEC 61000-4-2 ±15kV(空气放电)和±8kV(接触放电)的耐受指标。
3.3 ESD器件在单片机IO上的接法
单片机的普通IO口,如果不做静电防护,直接引出到外面接按键、接排针,每次人体触摸都相当于一次小型静电打击。短时间可能没事,但长期下来芯片的体质会越来越差,最终某一次静电直接击穿。
对普通IO口,防护接法有两种常见思路:
接法一:ESD二极管对地钳位。ESD管的负极接IO信号线,正极接地。当信号线上出现正向静电高压时,ESD管反向击穿导通,把能量泄放到地。这个接法适用于信号只有正电平的场景。
接法二:ESD二极管接到电源轨。ESD管的负极接IO信号线,正极接系统的电源轨(比如3.3V或5V)。静电高压来了之后,先通过ESD管钳位到电源轨,再由电源轨上的TVS、电容或者LDO进行二次吸收。这种接法的好处是钳位电压更接近电源电压,对芯片的冲击更小,但前提是电源轨本身也要有良好的稳压和吸收能力,否则静电会顺藤摸瓜打到其他芯片上。
实际高速信号线(比如USB D+/D-)上,芯片内部本身也有一定的ESD保护结构,外部再加ESD二极管是为了把电压进一步压低、并且把大部分电流引到外部路径,避免内部保护结构过热损坏。芯片引脚到ESD器件的走线一定要短,如果走线太长,走线电感会削弱钳位效果,这也是后面要单独讲的Layout问题。
4. 单片机系统里的高发故障点与防护布局
说实话,很多单片机系统的EMC/EMI问题,其实就集中在少数几个高发故障点上:电源输入、继电器驱动、按键与矩阵键盘、通信接口、以及一键开关机相关的电源路径。逐一做好针对性防护,系统的可靠性会提高一个量级。
4.1 电源输入端:防反接、防浪涌、防静电
电源输入是整个系统遭受外部干扰最直接的入口。无论是5V的USB供电,还是24V的工业电源,都要在入口处做足防护。
一个典型的单片机系统电源防护链路是:
电源入口 → 保险丝/自恢复保险丝 → 防反接二极管/PMOS → TVS管 → 共模电感(可选) → 大容量电解电容 + 陶瓷电容 → DC-DC或LDO → 单片机和外设
TVS管放在防反接的后面是合理的:因为防反接器件本身有一定压降,如果TVS放在它前面,你计算VRWM时要考虑这个压降对系统电压的影响。大多数DC-DC的输入电压范围比较宽,所以稍微压降0.3V、0.5V问题不大。
在电源输入端,TVS管的方向性选择也要结合防反接逻辑考虑。如果输入端口本身就可能被反接,那么双向TVS更保险,它不管正向反向都能钳位,至少不会因为电压反向而损坏(很多时候后级电路反而受不住反压)。当然,要真正防反接,PMOS方案或者二极管加保险丝方案才是治本的。
4.2 继电器驱动电路:续流二极管与TVS的分工
继电器、电磁铁、电磁阀、步进电机,这些都是感性负载。驱动它们的三极管或MOSFET在关断瞬间会承受极高的反电动势,如果不处理,烧驱动管是分分钟的事。
最常见的保护措施是在继电器线圈两端并联一个续流二极管(也叫反向吸收二极管、Flyback Diode)。二极管正极接线圈的低端(接驱动管的那一端),负极接线圈的电源端。当驱动管关断时,线圈电流通过二极管续流,能量消耗在线圈电阻上,反电动势被钳位在0.7V左右,驱动管就安全了。
但续流二极管有个副作用:它会让继电器断开变慢。因为线圈电流被二极管续流,磁场衰减变慢,触点分离时的电弧反而更明显,这在有电弧敏感的负载(比如大电流、高电压开关)时容易导致触点寿命缩短。
这时候可以在续流二极管上串联一个TVS管。这样续流电流不是直接走二极管的0.7V压降路径,而是先通过TVS的击穿电压(比如30V~60V),让线圈电流更快衰减,继电器断开时间变短,触点电弧减少。TVS的钳位电压越高,断开越快,但驱动管承受的电压也越高,需要权衡。
我们在选型时用了一个常见组合:1N4007 + 双向TVS(如P6KE22A串联),钳位电压设定在30V左右,配合耐压60V以上的MOSFET,实测下来继电器断开时间从原来的5.5ms缩短到2.8ms,触点电弧明显改善。
注意:续流二极管的“续流”功能不是让电流消失,而是让电流有地方去。如果你用TVS直接代替二极管,而不串二极管,线圈反电动势会直接加在TVS上,TVS瞬间导通吸收能量,效果虽然类似,但因为TVS是双向导通的,在你正常驱动继电器时线圈两端电压高,TVS也可能有漏电,选型要更谨慎。工程上比较稳妥的架构是“二极管串联TVS”。
4.3 按键与矩阵键盘:ESD防护和防鬼键
按键是人体直接接触的部件,静电放电是不可避免的。矩阵键盘电路还容易遇到鬼键(Ghost Key)问题——多个按键同时按下时,扫描结果出现错误的键值。
先说静电:每个按键的引脚在单片机的IO口上,如果要逐个加ESD二极管,成本高、占地方。一般情况下,单片机IO内部自带一定的ESD保护,只要你的IO走线不长,且按键是绝缘的塑料按键帽,静电概率会相对低。但如果按键是金属材质的、或者产品外壳开了孔、或者你要过IEC 61000-4-2的接触放电±8kV测试,那必须在按键扫描线上加ESD保护:
- 在矩阵键盘的行线和列线之间、行线与地之间,加上小电容的ESD二极管阵列。
- 关键的是,ESD器件的位置要尽量靠近排线接口/按键端口,而不是靠近单片机。
矩阵键盘防鬼键的原理:矩阵扫描时,如果某个按键按下,同时另一个按键也被按下,可能会形成回流路径,导致未按下的按键被误判为按下。标准的解决方案是在每个按键串一个二极管(通常用1N4148),让电流只能单向流动,切断回流路径。这个二极管同时也起到一定的ESD隔离作用,虽然它不是为了防ESD而存在的。
4.4 一键开关机电路里的防护细节
一键开关机电路(单片机软关机、硬关机配合)用热词里也提到了,这类电路的典型结构是:按键按下时触发电源管理芯片或MOSFET导通,单片机启动,之后单片机控制自锁保持供电,再按一次则关机。
这个电路里往往有一个大电容(用于维持短暂掉电不掉数据)和一个P-MOSFET(用于控制电源通断)。它的故障风险主要来自:
- 按键抖动和长按误触发:用软件消抖或RC滤波解决。
- 关机瞬间的寄生复位:负载断开瞬间,电源轨上的感性尖峰可能导致单片机误复位。
- 静电从按键进入触发电平:如果按键是外露的,静电可能直接打到电源控制逻辑上,导致设备被意外开机/关机。
针对这些,我的做法是:在按键SW脚到地之间放一个小电容(100pF~1nF)+ ESD二极管阵列,同时把RC滤波时间常数控制在10ms以上;在电源输出轨上加一个5V或3.3V的TVS管;在单片机的NRST复位脚上也要加一个小电容滤波,并确保复位脚到地的ESD防护。
5. PCB布局与焊接调试中的实战要点
选对了器件、算好了参数,如果PCB布局不合理,防护效果会大打折扣。这部分的经验是常规教材很少系统讲的。
5.1 防护器件必须靠近被保护对象,而且要短
TVS管和ESD二极管要尽可能靠近被保护的对象。为什么?因为防护器件本身也有引线电感(包括焊盘、走线、过孔带来的寄生电感),当瞬态电流流过时,这段电感上会产生压降(V = L × di/dt),静电的di/dt极高,哪怕0.5nH的寄生电感都会产生可观的电压增量,让实际的钳位电压比规格书上的标称值高出一大截。
所以布线原则是:防护器件的引脚走线要短、要粗,并且直接就近打在信号线和地平面之间。千万不要先走很长的线到单片机,再在单片机旁边加防护——那样干扰其实已经进入芯片引脚了。
对于ESD器件,推荐把它放在连接器/按键排线出口处,紧贴连接器的信号脚。如果板上有多层,信号线进入连接器后,先经过ESD器件再到单片机,把这个顺序刻在脑子里。
5.2 接地是灵魂:单点接地与回流路径
所有防护器件最终都要把能量泄放到地。如果你的“地”不可靠,TVS管钳位再漂亮也是白搭。
在单片机系统里,要有清晰的**数字地(DGND)和模拟地(AGND)**概念,同时对防护地要特别注意:从TVS管阴极接的地,应该直接打到最近的完整地平面过孔,然后通过最短路径回到系统的电源地。不要在防护地和芯片地之间串联长长的走线,否则干扰电流会在共地阻抗上产生压降,反而叠加到芯片的参考地上,形成干扰。
工业总线系统的“地”还要考虑**防护地与大地(PE)**的连接。RS485总线口上,很多设备会在连接器的屏蔽壳和PCB地之间跨接一个1MΩ电阻并联高压电容(如1nF/2kV),这样既可以把壳体上的静电和漏电流导到地,又不至于让多点接地形成地环路电流。
5.3 焊接与测试中的注意事项
用热风枪手工焊接TVS管和ESD二极管时,温度不要太高、时间不要太长。虽然TVS管能承受一定的高温焊接,但过高的温度会改变结的掺杂分布甚至导致封装内部应力开裂,严重时钳位电压漂移,保护性能变差。
另外,在调试阶段很多人会临时把ESD二极管焊上去测试静电性能,我建议用测试座或者容易更换的焊盘来评估:因为打静电测试是有破坏性的,有时候你打了好几枪没坏,你以为ESD保护ok了,其实器件内部已经劣化,再打几枪可能就挂了。
静电枪测试有两种常用判据:接触放电和空气放电,测试等级一般从±2kV起步,工业应用要做到±8kV接触、±15kV空气。测试时要注意:给TVS管打静电不能在同一位置连续打超过3枪,中间要等一会儿让器件冷却。
6. 选型清单与避坑记录(实战篇)
最后梳理一份可以直接参考的选型清单和我在实际项目中踩过的坑,希望能帮你少走弯路。
6.1 常用器件型号参考
| 应用位置 | 推荐器件 | 关键参数 | 选型理由 |
|---|---|---|---|
| 3.3V电源轨(MCU电源) | SMBJ3.3A / SMBJ5.0A | VRWM=5V,VC≈9V,Pppm=600W | 钳位电压低、功率适中 |
| 5V电源轨(USB/供电) | SMBJ5.0A / SMBJ6.0A | VRWM=6V,VC≈10V,Pppm=600W | 兼容USB线供电和负载开关 |
| 24V工业电源端口 | SMBJ30A / SMDJ33A | VRWM=30V,VC≈48V,Pppm=600W/3000W | 功率大、钳位合理 |
| RS485 A/B线 | NUP2105L / PESD1CAN | 工作电压24V,电容≈5pF | 专用总线ESD保护,低电容 |
| CAN H/L线 | PESD1CAN / TPD4E05U06 | 工作电压24V,电容≈5pF | 满足CAN收发器EMC要求 |
| USB D+/D- | USBLC6-2SC6 | 工作电压5.5V,电容≈0.6pF | 低电容,保证高速信号质量 |
| 继电器线圈续流 | 1N4007 + P6KE22A | 钳位电压30~33V | 续流+快速关断 |
| 按键/矩阵键盘 | ESD阵列(如ESD9L5.0) | 5V,电容≈1pF | 低成本、低电容、多路保护 |
6.2 我踩过的坑
坑一:TVS放在LDO后面,结果LDO先烧了。
有一款产品用了12V转3.3V的LDO给MCU供电,我图方便在LDO输出端加了一个3.3V的TVS。后来做浪涌测试,打±500V时LDO直接挂掉了。复盘发现:TVS在LDO输出端只能保护LDO之后的部分,浪涌瞬间LDO输入端承受的电压已经远超最大输入电压,LDO先扛不住了。正确的做法是输入端加TVS,输出端加一颗电容和一个低压ESD二极管即可。
坑二:ESD器件选了大电容的,导致I2C通信失败。
在某款传感器上用I2C总线连接,为了图省事直接拿了一颗普通TVS管放在SDA/SCL线上。结果总线频率400kHz时通信就频繁失败,示波器一看,信号上升沿被拉得非常平缓。换成一款电容只有1pF的ESD二极管后,问题彻底消失。这告诉我:高速信号线上的保护器件,容值比功率重要得多。
坑三:矩阵键盘加了二极管但方向反了。
又一次做矩阵键盘防鬼键,把1N4148的方向接反了,结果所有按键都扫描不到。检查半天才想起来,二极管是单向导通的,扫描时的电流方向只能从行线到列线,反了就把回路切断了。后来养成了习惯:无论什么电路,加了二极管之后,先拿万用表蜂鸣档顺着电流方向量一遍通断。
6.3 关于选型的最后一点心得
选择TVS管和ESD二极管,不是选“越贵越好”也不是“型号越响越好”,而是选最适合你电路工作条件和失效场景的器件。
我个人的经验顺序是:
- 先明确你的信号线上正常的电压范围是多少(包括电源纹波和信号摆幅)。
- 查清楚后级芯片(MCU、接口芯片)的绝对最大额定电压是多少——这个数据在芯片数据手册里一定有。
- 根据这两个电压确定VRWM和VC的窗口。
- 估算瞬态能量,选功率等级。
- 看信号频率,如果大于1MHz或者上升沿很陡,优先考虑低电容的ESD器件。
- 确认封装和布局空间,决定用分立器件还是阵列器件。
- 有条件的话,拿来实际打一打静电和浪涌测试,别只停留在选型表格上。
回到最开头我做的那个仪表项目:后来我在RS485接口用了NUP2105L,在电源输入端用了SMBJ30A,在按键扫描线上加了一颗ESD阵列,再把Layout按“防护器件贴近端口”整改了一遍,样品再去现场测试就再没出现过复位和烧IO的问题。有时候问题就是这么直接,只要防护思路清晰,方法踩对了,单片机系统的可靠性是完全可以靠设计保证的。
这些器件的选型和布线细节,看起来都是很小的点,但恰恰是这些“小点”决定了产品在恶劣环境下的存活率。希望这篇实战指南能帮你在遇到类似问题时,少一些拍脑袋,多一些判断依据。