ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

STM32开发板ESD防护实战:TVS二极管选型与布局避坑指南

STM32开发板ESD防护实战:TVS二极管选型与布局避坑指南 1. 为什么你的STM32开发板总在“莫名其妙”地挂掉如果你玩STM32有一段时间了大概率遇到过这种情况板子昨天还好好的今天插上USB突然就不识别了或者手一碰某个引脚芯片就发烫、程序跑飞、甚至直接冒烟。你反复检查代码逻辑没问题你换了一根USB线还是不行你甚至怀疑是不是买到了假芯片。但真相往往不在代码里而在你看不见的地方——静电。我刚开始做STM32项目那会儿最惨的一次是冬天实验室地毯上走两步去摸开发板手指还没碰到排针就看见一个小火花“啪”地一下然后ST-Link就再也连不上了。后来拆开一看USB接口旁边的TVS二极管已经击穿短路。那次之后我才真正意识到STM32的5V和3.3V电路防护不是“可选加分项”而是“保命底线”。尤其是现在很多开发板为了成本USB口、排针、传感器接口几乎都是裸奔状态ESD静电放电能量直接灌进芯片STM32的IO口耐压能力远没有你想象的那么强。这篇文章就是写给那些刚上手STM32、还在用最小系统板或者自己画板子的朋友。我会把TVS二极管在5V和3.3V电路里的选型逻辑、放置位置、参数计算、实测踩坑全部拆开讲清楚。不堆公式不抄手册只讲你在实际项目里真正用得上的东西。看完之后你至少能做到拿到一块新板子知道哪里该加TVS加什么型号为什么这么加以及加了之后怎么验证它真的在干活。2. TVS二极管到底在保护什么从ESD脉冲到STM32的脆弱IO2.1 ESD不是“电压高一点”那么简单很多人对静电的理解停留在“冬天摸门把手被电一下”觉得顶多就是疼一下对电路能有多大影响但ESD事件在电子学里的定义完全不同。人体模型HBM下一个成年人走动后身上积累的静电电压可以达到几千伏甚至上万伏放电时间在纳秒到几十纳秒级别瞬间电流峰值能到几十安培。这个能量如果直接打到STM32的引脚上芯片内部的ESD保护结构根本来不及响应栅氧层就会被击穿。STM32的数据手册里通常会标注IO口的绝对最大耐压比如-0.3V到VDD0.3V或者4V左右。注意这是“绝对最大”意思是超过这个值芯片就可能永久损坏而不是“推荐工作范围”。ESD脉冲的电压远远超过这个阈值所以你不能指望芯片自己扛。TVS二极管的作用就是在ESD能量到达芯片之前把它钳位到一个安全的电压水平同时把大电流旁路到地。2.2 TVS和稳压二极管、压敏电阻的区别新手最容易混淆的就是TVS、稳压管和压敏电阻。我见过有人拿1N4728稳压管当保护用结果响应速度太慢ESD脉冲早就把后级芯片打穿了。这三者的核心区别在于响应时间和钳位特性。器件类型响应时间钳位电压精度适合场景TVS二极管皮秒级高击穿电压公差小ESD、浪涌、快速瞬变稳压二极管微秒级中等稳压、过压保护慢速压敏电阻纳秒级低钳位电压偏高电源浪涌、雷击防护TVS的核心优势是皮秒级响应和低钳位电压。当ESD脉冲到来时TVS的PN结在极短时间内发生雪崩击穿阻抗急剧下降把电压钉在钳位电压上。这个钳位电压必须低于STM32 IO口的绝对最大耐压否则保护就是摆设。2.3 单向TVS和双向TVS怎么选单向TVS有一个PN结正向导通特性像普通二极管反向是雪崩击穿。双向TVS相当于两个单向TVS反并联正反方向都能钳位。对于STM32的5V和3.3V电路选择逻辑是这样的直流电源线用单向TVS。比如5V电源输入正常电压是5VTVS反向击穿电压选6V左右正向导通电压0.7V。如果电源被反接单向TVS正向导通会把电源短路可能烧毁TVS但能保护后级。不过现在很多电源芯片本身有反接保护所以单向TVS主要防的是正向浪涌。信号线用双向TVS。因为信号线可能有正负摆幅比如RS485、CAN、音频信号双向TVS能同时钳位正负脉冲。USB数据线必须用双向TVS而且结电容要低。USB 2.0高速信号的速率是480MbpsTVS的结电容如果太大会严重衰减信号导致USB无法识别或者传输错误。我实测过用结电容几十皮法的TVS放在USB D D-上电脑直接提示“未知USB设备”。换成结电容小于3pF的型号比如SRV05-4或者USBLC6-2SC6才能正常枚举。这个坑后面会详细说。3. 5V电路防护从USB输入到稳压芯片前端3.1 5V输入端的TVS选型计算大部分STM32开发板的5V来源是USB口或者外部DC电源。以USB 5V为例正常电压范围是4.75V到5.25V考虑一定余量TVS的反向截止电压VRWM要高于5.5V否则正常工作时TVS会漏电甚至发热。击穿电压VBR一般在6.5V到7V之间钳位电压VC在峰值电流下要低于后级芯片的绝对最大耐压。假设你用的稳压芯片是AMS1117-3.3它的输入绝对最大耐压是15V那TVS钳位电压只要低于15V就行选择范围很宽。但如果你用的是某些低压差的LDO输入耐压只有6V那TVS钳位电压必须低于6V这时候选型就要非常小心。我常用的5V TVS型号是SMAJ5.0A它的VRWM是5VVBR最小6.4V最大7V在10A脉冲下钳位电压是9.2V。对于大多数5V转3.3V的LDO来说9.2V的钳位电压是安全的。但如果你后级是耐压只有6V的芯片就要选SMAJ5.0CA或者更低钳位的型号或者改用两级保护。注意TVS的钳位电压是在特定峰值电流下测的比如SMAJ5.0A的9.2V是在10A下。实际ESD电流可能更大钳位电压会更高。所以选型时要留足余量不能只看标称值。3.2 TVS在PCB上的放置位置比选型更重要我见过很多新手把TVS放在稳压芯片后面觉得“保护3.3V更直接”。这是典型的错误。TVS必须放在干扰进入板子的第一个入口处也就是USB连接器或者DC插座旁边在保险丝或者滤波电容之前。原因很简单ESD能量从接口进来你要在它还没扩散到整块板子之前就把它旁路掉。如果TVS放在LDO后面ESD脉冲会先经过LDOLDO可能已经挂了TVS再动作也没意义。正确的布局顺序是接口 - TVS - 滤波电容 - 稳压芯片 - 后级电路。TVS的接地引脚要尽量短直接打到地平面不要走细长走线。我一般要求TVS的地引脚到主地平面的过孔不超过2mm否则引线电感会在ESD脉冲下产生额外压降降低保护效果。3.3 5V电源线上的TVS和保险丝配合TVS单独用有一个问题如果遇到持续过压比如误插了12V电源TVS会持续导通时间长了会烧毁。所以工业级设计里TVS前面通常会加一个自恢复保险丝PPTC。正常工作时PPTC阻抗很低不影响供电过流时PPTC发热阻抗急剧上升把电流限制住TVS就不会烧。对于STM32开发板如果你只是做实验不加PPTC问题不大。但如果你要做产品或者经常插拔不同电源建议加上。我常用的组合是SMAJ5.0A 0.5A PPTC成本增加不到两毛钱但可靠性提升很明显。4. 3.3V电路防护LDO输出端和IO口的精细保护4.1 3.3V电源轨的TVS选型陷阱3.3V电路的TVS选型比5V更棘手因为3.3V和TVS的击穿电压之间余量很小。STM32的3.3V电源绝对最大耐压通常是4.0V左右而TVS的击穿电压最低也要3.5V到4V稍微选不好正常工作时TVS就漏电了。我推荐用SMAJ3.3A它的VRWM是3.3VVBR最小3.67V最大4.07V钳位电压在10A下是7.3V。等等7.3V对于3.3V电源来说是不是太高了确实高但你要看后级芯片的耐压。STM32的3.3V电源引脚绝对最大耐压一般是4.0V7.3V明显超了。那怎么办这里有两个思路一是用更低钳位的TVS比如ESD9B3.3ST5G它的钳位电压在1A下只有5V左右但峰值电流能力弱适合信号线不适合电源线。二是用两级保护第一级用TVS把大能量泄放掉第二级用低钳位器件或者RC滤波把残压进一步降低。对于大多数开发板我的实际做法是3.3V电源轨上放一颗SMAJ3.3A同时确保LDO本身有一定的耐压能力。因为ESD能量经过TVS后残压虽然可能到7V但持续时间极短LDO的输入电容和内部电路能吸收一部分。如果你实在不放心可以在TVS后面串一个磁珠或者小电阻再并一个低钳位TVS组成两级防护。4.2 IO口保护什么时候需要什么时候不需要不是所有IO口都需要加TVS。STM32的IO口本身有内部ESD保护二极管能承受一定级别的静电通常人体模型下能过2kV到4kV。如果你的板子放在外壳里用户接触不到引脚那内部保护就够了。但以下场景必须加外部TVS排针引出的IO口用户可能直接用手摸或者接杜邦线时产生静电。连接外部传感器的接口传感器线缆可能很长容易耦合干扰。RS485、CAN、以太网等通信接口这些接口暴露在外部环境浪涌和ESD风险很高。电机驱动、继电器控制引脚感性负载断开时会产生反向高压。对于普通排针IO我一般用双向TVS阵列比如SRV05-4一颗芯片保护4路信号结电容只有几皮法对数字信号影响很小。对于RS485用SMBJ6.5CA或者专用的RS485保护芯片。4.3 3.3V信号线上的TVS结电容问题信号线加TVS结电容是绕不过去的坎。STM32的SPI速率可以到几十兆赫兹I2C虽然慢但上升沿也很陡。如果TVS结电容太大信号波形会变圆上升时间变长严重时通信直接失败。我做过一个对比测试在SPI时钟线上分别加结电容10pF和50pF的TVS用示波器看波形。10pF的TVS对10MHz SPI几乎没有影响波形依然方正50pF的TVS让上升沿从5ns变成15ns眼图明显闭合。所以信号线TVS的结电容要控制在10pF以内高速信号最好在3pF以内。常用的低电容TVS有SRV05-4结电容约3pF、USBLC6-2SC6结电容约1.5pF、ESD9L5.0ST5G结电容约0.5pF。这些型号在立创商城都能买到价格也不贵。5. 实战给一块STM32最小系统板加装TVS防护5.1 改造前的准备和风险评估我手头有一块常见的STM32F103C8T6最小系统板USB口是Micro USB5V直接进LDO3.3V给芯片供电。板子上没有任何TVS排针全部裸露。我准备给它加装防护目标是在不破坏原有功能的前提下提升ESD抗扰度。改造前先评估风险这块板子的USB口数据线直接连到STM32的PA11和PA12没有串联电阻也没有TVS。如果静电从USB口进来会直接打到芯片引脚。5V电源线从USB口到LDO之间也没有保护。所以重点是在USB口和电源入口加TVS。需要的材料和工具SMAJ5.0A 一颗5V电源保护SRV05-4 一颗USB数据线保护0.1uF 0603电容若干细漆包线或者0.1mm飞线恒温烙铁、镊子、放大镜5.2 USB数据线的TVS焊接细节SRV05-4是SOT-23-6封装引脚间距很小手工焊接需要一点技巧。我的做法是先用细砂纸把PCB上的阻焊层轻轻磨掉一点露出铜皮然后把SRV05-4放在上面用细烙铁头逐个引脚焊接。注意引脚1和引脚2是数据线引脚3是地引脚4和5是电源引脚6是空脚。焊接顺序很重要先焊地引脚再焊电源引脚最后焊数据线引脚。地引脚要尽量短直接连到USB口的金属外壳或者地平面。数据线引脚从USB连接器的D D-焊盘飞线过来飞线长度控制在5mm以内越短越好。焊完之后用万用表测一下确认没有短路。然后插上电脑看USB能不能正常识别。如果识别不了先检查焊接有没有虚焊再检查TVS型号是不是低电容的。我第一次用了一个普通TVS结电容太大电脑直接不认换成SRV05-4就正常了。5.3 5V电源入口的TVS加装5V电源入口的TVS加装相对简单。SMAJ5.0A是SMA封装比SOT小很多但比0603电阻大。我把它焊在USB口的5V引脚和地之间尽量靠近USB口。焊之前先确认USB口的5V引脚和地引脚位置用万用表蜂鸣档测一下通断。焊好之后用可调电源给板子供电从5V慢慢往上调观察电流变化。正常情况下5V时电流应该在几十毫安。如果电流突然变大说明TVS漏电或者焊反了。SMAJ5.0A是有极性的色带一端是阴极要接5V正极另一端是阳极接地。焊反了的话5V直接通过TVS正向导通到地电流会很大。5.4 改造后的ESD测试和验证改造完成后我用静电枪做了简单测试。没有静电枪的话可以用打火机的压电点火器模拟但要注意不要直接打在芯片上。我把静电枪调到接触放电4kV对着USB口金属外壳和排针分别放电每次放5次间隔1秒。测试后板子依然正常工作USB识别正常程序没有跑飞。这个测试不能完全代表实际ESD环境但至少说明TVS在起作用。如果你没有专业设备可以用一个简单的方法用手摸一下板子排针然后再摸一下金属水管或者门把手感受一下有没有静电。虽然不严谨但能让你对静电有直观认识。6. 选型避坑那些年我买错的TVS型号6.1 只看电压不看钳位电压的后果新手选TVS最容易犯的错就是只看VRWM觉得“5V电路选5V的TVS就行了”。但VRWM只是反向截止电压真正决定保护效果的是钳位电压。我买过一款标称5V的TVSVRWM是5V但钳位电压在10A下高达15V。用在5V转3.3V的LDO前面ESD来了之后LDO输入被钳到15VLDO直接炸了。所以选型时一定要看数据手册里的钳位电压曲线确认在你预期的峰值电流下钳位电压低于后级芯片的绝对最大耐压。如果数据手册没有曲线只有标称值那就要留足余量或者换一个有详细曲线的品牌。6.2 结电容被忽略导致通信失败前面提过USB数据线用普通TVS导致不识别的问题。其实不只是USBI2C、SPI、UART都有这个问题。我有个项目用I2C读传感器速率400kHz加了TVS之后数据偶尔出错。后来用示波器看波形发现SCL上升沿变缓从1us变成3us导致时序不满足。换成低电容TVS后问题消失。所以信号线选TVS结电容是硬指标。低速信号可以放宽到50pF高速信号必须小于10pFUSB 2.0高速必须小于3pF。6.3 封装选错导致焊接困难TVS的封装从SOT-23到SMA、SMB、SMC都有。新手容易买大封装觉得“大一点更耐用”。但大封装占板面积大引脚粗手工焊接反而困难。对于开发板改造我推荐SOT-23或者SOD-323封装体积小焊接相对容易。SMA封装适合电源线因为功率大一些。还有一个坑是引脚定义。不同厂家的SRV05-4引脚定义可能不一样买之前一定要看数据手册。我有一次没看手册直接按经验焊结果电源和地接反上电就冒烟了。7. 从开发板到产品TVS防护的进阶思路7.1 多级防护的架构设计如果你做的是要过认证的产品单级TVS往往不够。IEC 61000-4-2接触放电要求8kV空气放电15kV单颗TVS很难完全吸收。这时候需要多级防护第一级用大功率TVS或者压敏电阻泄放大部分能量第二级用低钳位TVS精细保护中间用电阻或者磁珠隔离。典型架构是接口 - 气体放电管 - 电阻/磁珠 - TVS - 芯片。气体放电管响应慢但通流大TVS响应快但通流小两者配合能覆盖不同能量级别。不过对于STM32开发板单级TVS已经能应付大部分实验室环境多级防护更多是产品级考虑。7.2 TVS不是万能药接地和布局才是根本我见过有人加了TVS还是烧芯片最后发现是接地没做好。TVS的接地引脚走线太长ESD电流在走线电感上产生压降导致TVS两端的实际钳位电压升高后级芯片还是被打穿。所以TVS的接地必须短而粗最好直接打到地平面过孔至少两个。另外TVS要放在干扰入口处不能放在芯片旁边。有些新手觉得“放在芯片旁边保护更直接”但ESD能量已经经过整块板子了TVS再动作也晚了。7.3 成本与可靠性的平衡加TVS会增加成本一颗TVS几毛钱到几块钱不等。对于消费类产品可能只在USB口和电源口加对于工业产品所有外部接口都要加。我的经验是凡是用户能摸到的金属部分对应的电路都要加TVS。排针、按键、USB口、DC插座这些地方是ESD的高发区。如果预算实在紧张至少要在电源入口和USB数据线上加。这两处一旦被打坏整个板子就废了。IO口如果只是接传感器传感器本身有外壳风险相对低一些。8. 个人实操体会TVS选型的三条铁律折腾了这么多板子我总结出三条选型铁律分享给你第一先看钳位电压再看截止电压。截止电压决定正常工作时TVS会不会漏电钳位电压决定保护效果。两个都要满足缺一不可。第二信号线必须看结电容。数字信号速率越高结电容要求越严。不确定的时候选结电容最小的型号宁可保护能力弱一点也不能影响通信。第三布局比选型更重要。再好的TVS如果接地走线太长保护效果也会大打折扣。TVS要放在接口旁边接地要短这是铁律中的铁律。最后再分享一个小技巧如果你不确定某个TVS型号合不合适可以先买几颗样品在报废的板子上焊上去用可调电源慢慢升压观察钳位电压和漏电流。这个方法虽然土但比看数据手册直观得多。我很多选型经验都是这么试出来的。
返回列表