ARTICLE DETAIL

资讯详情

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

STM32开发板TVS防护实战:5V与3.3V电路选型、布局与避坑指南

STM32开发板TVS防护实战:5V与3.3V电路选型、布局与避坑指南 1. 为什么你的STM32开发板总在“莫名其妙”地挂掉刚入行的那几年我手里烧掉的STM32芯片少说也有十几片。最冤的一次一块刚焊好的最小系统板USB线插上电脑的瞬间芯片就再也没醒过来——3.3V对地短路芯片烫得能煎鸡蛋。当时我以为是焊接虚短查了半天电源最后才发现罪魁祸首是桌面上那块化纤桌垫人走过去蹭一下手指碰到USB外壳几千伏的静电顺着数据线灌进芯片一颗几十块钱的MCU就这么没了。这件事之后我才真正开始重视ESD防护。很多新手觉得“静电”离自己很远冬天脱毛衣噼里啪啦那点电怎么可能打死芯片但事实是人体能感觉到的静电放电通常在3kV以上而感觉不到的放电可能只有几百伏——这个电压对CMOS工艺的STM32来说已经是致命级别。STM32的IO口绝对最大额定值里写得清清楚楚多数引脚耐压范围是-0.3V到VDD0.3V也就是3.6V左右。你手上那点静电是它的上千倍。TVS二极管就是干这个的。它的全称是瞬态电压抑制二极管Transient Voltage Suppressor核心作用是在纳秒级时间内把异常高压钳位到一个安全值把能量泄放掉保护后级电路。这篇文章我打算把STM32开发板上5V和3.3V电路的TVS防护从头到尾讲一遍怎么选型、怎么算参数、怎么布局、怎么避坑。适合刚入门STM32、正在画最小系统板或者做毕业设计的同学也适合做了几年硬件但一直没系统搞过防护的工程师——毕竟这东西烧过芯片的人才会真正上心。2. 先搞懂TVS到底在保护什么2.1 ESD、浪涌、过压三种“杀手”的区别很多人把TVS当成万能保险其实它主要对付三类威胁而且侧重点不同。ESD静电放电的特点是电压极高几kV到几十kV、电流不大几A到几十A、持续时间极短纳秒级。它的破坏方式有两种一是直接击穿栅氧化层二是通过大电流烧毁PN结。STM32的IO口内部虽然有钳位二极管但那个二极管的通流能力很弱只能扛几百mA的瞬间电流面对ESD根本不够看。浪涌Surge通常来自电源线上的感性负载切换、雷击感应等能量比ESD大得多持续时间在微秒到毫秒级。比如你板子上接了个继电器或者电机断电瞬间线圈产生的反电动势就是典型浪涌。过压Overvoltage则是持续性的比如电源适配器输出不稳、误接12V到5V口。这种TVS只能扛一小段时间长时间过压它会自己烧掉所以不能当稳压器用。理解这三者的区别很重要因为它决定了你选TVS时的参数优先级。防ESD看响应速度和结电容防浪涌看峰值功率防过压看钳位电压和持续功耗。2.2 TVS的工作曲线一张图看懂TVS的核心参数都体现在它的V-I特性曲线上。我按自己的理解拆一下VRWM反向工作电压正常工作时TVS两端的电压此时它几乎不导通漏电流在微安级。选型时这个值必须大于电路正常工作电压否则TVS会一直漏电发热。VBR击穿电压TVS开始导通的临界点通常在VRWM的1.1到1.2倍左右。VC钳位电压在指定峰值电流IPP下TVS两端的电压这是被保护芯片实际承受的最高电压。这个值必须低于芯片的绝对最大额定值。IPP峰值脉冲电流TVS能承受的最大瞬态电流对应一定的脉冲波形通常是8/20μs或10/1000μs。Pppm峰值脉冲功率VC乘以IPP是TVS的“抗揍能力”指标。举个实际例子。你要保护一个3.3V的STM32 IO口选了一颗VRWM3.3V的TVS。但注意3.3V系统的电源实际可能到3.4V甚至3.5V如果VRWM卡得太死TVS会轻微导通漏电流增大。所以我一般选VRWM5V的型号来保护3.3V电路留足余量。然后看VC假设IPP5A时VC9V而STM32的IO绝对最大额定是-0.3V到4V部分引脚5V tolerant9V明显超标了。这时候要么换更低钳位的TVS要么加限流电阻配合。2.3 为什么STM32内部保护不够用STM32的每个IO口内部都有两个二极管一个从IO到VDD一个从IO到GND用来把超出电源范围的电压泄放到电源轨。但这个结构有几个致命弱点第一二极管的通流能力有限。数据手册里通常标注注入电流最大±5mA持续瞬态可能到几十mA但ESD瞬间电流是安培级内部二极管根本扛不住。第二泄放路径是往电源轨灌。如果VDD上没有大电容吸收这个电流会把整个电源轨抬起来导致整块板子复位甚至损坏其他芯片。第三内部二极管的响应速度虽然快但寄生电容和电阻会影响钳位效果面对上升沿极陡的ESD脉冲钳位电压可能远超预期。所以外部TVS不是“锦上添花”而是“雪中送炭”。尤其是USB接口、调试接口、外部传感器接口这些直接跟外界打交道的地方没有TVS基本等于裸奔。3. 5V和3.3V电路TVS选型思路完全不同3.1 3.3V电路低钳位是核心矛盾3.3V系统的TVS选型是最头疼的因为STM32的耐压余量太小。绝对最大额定值4V左右意味着TVS的钳位电压必须压到4V以下最好在3.8V以内。但市面上大多数TVS的VRWM和VC之间差距很大。比如一颗标称VRWM3.3V的TVSVBR可能在3.7VVC在IPP1A时可能到8V。这个8V对3.3V芯片来说就是灾难。我的经验是3.3V电路优先选低电容、低钳位的专用ESD保护器件而不是通用TVS。这类器件通常标称“ESD Protection Diode”VC在3.3V系统下能压到6V以内结电容在1pF以下适合高速信号线。如果非要选通用TVS那就得看VC曲线。很多厂商的数据手册会给出VC vs IPP的曲线你要找到实际可能出现的峰值电流对应的VC值。对于一般的接口防护IPP按1A到5A估算VC必须低于4V。这里有个坑有些TVS标的是“Working Voltage 3.3V”但VC在8/20μs波形下测的而ESD是IEC 61000-4-2波形上升沿0.7-1ns两者的钳位表现完全不同。ESD波形下TVS的钳位电压通常会更高因为引线电感和封装电感会产生额外的电压尖峰。所以选型时最好找有ESD波形测试数据的器件。3.2 5V电路余量充足但要防倒灌5V系统的TVS选型相对宽松因为5V器件的耐压通常到6V甚至更高。VRWM选5V或5.5VVC控制在10V以内基本就安全。但5V电路有个特殊问题倒灌。很多STM32开发板是3.3V供电但外部接口是5V电平。如果5V信号线直接接到3.3V的IO口即使加了TVS正常工作时5V也会通过内部二极管往3.3V电源轨倒灌电流。这时候TVS帮不上忙需要额外的电平转换或者限流电阻。TVS在5V电路里的主要任务是防ESD和浪涌选型时关注峰值功率和响应速度。如果是电源入口建议选Pppm在400W以上的如果是信号线选低电容的。3.3 一张表看懂选型参数优先级应用场景首要参数次要参数可放宽参数3.3V IO口防护钳位电压VC结电容峰值功率5V电源入口峰值功率Pppm钳位电压结电容USB数据线结电容钳位电压峰值功率调试接口钳位电压响应速度峰值功率外部传感器结电容钳位电压峰值功率这张表是我自己踩坑总结的。比如USB 2.0全速信号线结电容必须小于3pF否则信号完整性直接崩掉而电源入口的TVS结电容几百pF都无所谓关键是能扛住浪涌能量。4. 手把手搭建STM32最小系统的TVS防护4.1 电源入口第一道防线STM32最小系统板的电源入口通常有两种USB 5V输入或者外部DC电源输入。不管哪种入口处都应该放一颗TVS。我的做法是在电源插座和稳压芯片比如AMS1117之间并联一颗SMBJ5.0A或者SMAJ5.0A。SMBJ5.0A的VRWM是5VVBR最小6.4VVC在IPP43.5A时是9.2VPppm400W。这个参数对付一般的浪涌足够了。但注意AMS1117的输入耐压通常是15V所以9.2V的钳位电压对它来说是安全的。如果你用的是更低压差的LDO比如输入耐压只有6V那TVS的VC必须压到6V以下这时候SMBJ5.0A就不合适了得选更低钳位的型号。布局上TVS必须放在保险丝或自恢复保险丝之后、稳压芯片之前。如果放在保险丝之前TVS击穿时的大电流可能烧断保险丝导致保护失效。正确的顺序是电源输入 - 保险丝 - TVS - 稳压芯片。还有一点TVS的接地线要尽量短、尽量粗。ESD电流是纳秒级的接地引线的电感会产生L×di/dt的电压尖峰可能让TVS的钳位效果大打折扣。我一般要求TVS的接地走线宽度不小于20mil长度不超过5mm。4.2 USB接口D和D-的精细防护USB接口是ESD的重灾区因为用户经常热插拔而且USB线缆本身就是天线容易耦合静电。STM32的USB外设通常走D和D-两根差分线速率全速12Mbps对电容很敏感。我推荐用USB专用ESD保护阵列比如常见的四通道或六通道器件。这类器件的结电容通常在0.5pF到1pF之间对信号完整性影响极小。选型时看几个关键指标结电容小于1pFVC在IEC 61000-4-2接触放电8kV下小于10V通道数覆盖D、D-、VBUS。VBUS的防护可以单独用一颗SMAJ5.0A或者用保护阵列里的高压通道。注意VBUS是5VD和D-是3.3V电平如果保护阵列的通道耐压不一致要分开处理。布局上保护器件要尽量靠近USB连接器最好在连接器焊盘5mm以内。D和D-的走线要先经过保护器件再到STM32不能先到STM32再分支到保护器件。这个顺序错了ESD电流会先灌进芯片再被保护器件分流保护效果大打折扣。4.3 调试接口SWD和串口的防护SWD接口SWCLK、SWDIO和串口TX、RX是开发阶段最常插拔的接口也是最容易被忽视的防护点。很多人觉得“调试口只在实验室用不会有静电”但实际实验室的地毯、工作服、甚至手摸一下排针都可能引入静电。SWD接口的防护可以用低电容TVS阵列结电容控制在5pF以下。SWCLK最高频率可能到几MHz电容太大会导致波形畸变。串口速率通常115200bps以下对电容要求宽松普通TVS也能用。这里有个细节SWDIO是双向线TVS的结电容会影响双向通信的上升沿和下降沿。如果发现调试器连接不稳定可以先用示波器看SWCLK和SWDIO的波形如果上升沿变缓或者有振铃可能是TVS电容太大。我的做法是在SWD接口上串联22Ω到33Ω的电阻再并联TVS。串联电阻可以限制ESD电流同时和TVS的电容形成低通滤波但电阻不能太大否则影响信号幅度。22Ω是我实测下来比较平衡的值。4.4 外部传感器接口长线缆的防护重点如果你的STM32项目要接外部传感器比如温湿度、空气质量、LoRa模块这些传感器通常通过排线或长线缆连接线缆越长耦合静电和浪涌的概率越大。这类接口的防护要分两种情况。如果是低速信号I2C、UART、GPIO可以用普通TVS结电容几十pF无所谓。如果是高速信号SPI、I2S必须用低电容TVS。I2C总线还有个特殊问题它是开漏输出靠上拉电阻拉高。TVS的漏电流会影响总线的逻辑电平。如果TVS的漏电流太大比如超过10μA可能导致I2C通信失败。选型时注意看IR反向漏电流参数越小越好。对于长线缆接口我还会在TVS前面串联一颗自恢复保险丝PPTC限制持续过流。TVS只能扛瞬态如果线缆被误接到高压电源上持续电流会把TVS烧短路这时候PPTC能切断电路保护TVS和后级芯片。5. 参数计算别让TVS成为摆设5.1 钳位电压的估算方法TVS数据手册里的VC通常是在特定IPP下测的但实际电路里的IPP取决于ESD源的能量和路径阻抗。IEC 61000-4-2标准里接触放电8kV的峰值电流大约是30A上升沿0.7-1ns空气放电15kV的峰值电流大约是45A。但这是理想情况。实际电路里ESD电流会通过多条路径分流TVS只是其中一条。如果TVS的接地阻抗足够低它可能分到大部分电流如果接地不好电流会从其他路径走TVS形同虚设。我的估算方法是假设TVS分到50%的ESD电流8kV接触放电对应15A。然后查TVS在15A下的VC值。如果VC低于芯片耐压就算合格。但要注意TVS的VC曲线通常是非线性的电流越大VC越高。有些TVS在1A时VC是6V在15A时可能到12V。所以不能只看小电流下的VC。5.2 结电容对信号的影响结电容是TVS的寄生参数它和信号线的阻抗形成RC低通滤波。截止频率f1/(2πRC)。假设信号线阻抗50ΩTVS电容10pF截止频率约318MHz。对于12Mbps的USB全速信号谐波到几百MHz10pF电容会明显衰减高频分量导致眼图闭合。所以高速信号线的TVS电容必须小。USB 2.0高速480Mbps要求电容小于1pF全速12Mbps可以放宽到3pF低速1.5Mbps可以到10pF。I2C总线速率通常400kHz以下电容几十pF都没问题。这里有个经验公式TVS电容引起的上升沿退化时间Δt≈2.2×R×C。如果信号上升沿要求小于10nsR50Ω那么C必须小于90pF。这个公式可以用来快速判断电容是否超标。5.3 峰值功率和脉冲波形的匹配TVS的Pppm是在特定脉冲波形下测的常见的有8/20μs浪涌和10/1000μs长脉冲。ESD是纳秒级脉冲能量比8/20μs小得多所以同一颗TVS在ESD下的等效功率远高于标称Pppm。但反过来如果电路要防的是浪涌比如继电器反电动势那就要按8/20μs或10/1000μs的波形来选Pppm。继电器线圈的反电动势能量可能到几毫焦耳持续时间几百微秒这时候TVS的Pppm必须足够大否则会烧毁。我的做法是防ESD选低电容、低钳位的防浪涌选高Pppm的两者都要防就选组合器件或者用两级防护。6. 实操中踩过的坑和排查技巧6.1 TVS选了却没用先查接地我遇到过好几次TVS参数选得没问题布局也靠近接口但ESD测试还是打坏芯片。最后发现都是接地问题。TVS的接地引脚到板子主地平面的路径太长或者走线太细导致接地电感太大。ESD电流的上升沿是纳秒级di/dt极大即使几nH的电感也会产生几十伏的电压尖峰。这个尖峰叠加在TVS的钳位电压上直接超过芯片耐压。排查方法用示波器测TVS接地引脚和主地之间的电压差在ESD事件时如果有明显尖峰就是接地电感太大。解决办法是加粗接地走线、增加过孔、把TVS的地直接连到接口的金属外壳地。6.2 漏电流导致通信异常有一次做I2C传感器项目通信时好时坏换了几个传感器都一样。后来测总线电平发现高电平只有2.8V正常应该是3.3V。查了半天发现是TVS的漏电流太大把上拉电阻的电流分走了。TVS的漏电流通常在微安级但有些低质量器件的漏电流能到几十微安。I2C的上拉电阻通常是4.7kΩ3.3V除以4.7kΩ是700μA。如果TVS漏电流50μA高电平就会被拉低到3.3V×(1-50/700)≈3.06V虽然还能识别为高电平但余量很小温度一变就可能出错。解决办法选漏电流小于1μA的TVS或者减小上拉电阻到2.2kΩ。但减小上拉电阻会增加功耗低功耗项目要权衡。6.3 常见问题速查表现象可能原因排查方法解决措施ESD测试后芯片损坏TVS接地不良测TVS地引脚电压尖峰加粗地线、增加过孔通信时好时坏TVS漏电流大测总线高电平电压换低漏电TVS或减小上拉USB枚举失败TVS电容太大测D D-眼图换低电容TVSTVS发热VRWM选太低测TVS两端电压换更高VRWM型号上电即短路TVS极性焊反目视检查重新焊接浪涌后TVS短路Pppm不够查浪涌能量换高功率TVS或加PPTC这张表里的问题我都实际遇到过尤其是TVS焊反看起来低级但发生率不低。TVS是有极性的阴极通常有标记焊接前一定要确认。6.4 独家避坑心得第一个心得TVS不是越多越好。有些新手在每个IO口都放TVS结果板子电容太大信号全崩。TVS只放在跟外界直接连接的接口上板内芯片之间的信号不需要。第二个心得先做ESD测试再量产。我现在的习惯是样板回来后先用静电枪打一遍关键接口接触放电4kV、空气放电8kV看看芯片有没有异常。这个测试花不了多少时间但能避免批量出货后的灾难。第三个心得保留TVS的替换位。PCB设计时TVS的封装可以兼容几种型号比如SOD-323和SOD-523这样调试阶段发现参数不合适可以直接换料不用改板。第四个心得注意TVS的响应时间。有些TVS标称响应时间1ps但那是理想值。实际响应时间受封装电感影响可能在几百ps到几ns。对于上升沿极陡的ESD响应时间越短越好。选型时可以看数据手册里的钳位电压波形图上升沿越陡说明响应越快。7. 进阶多级防护和系统级设计7.1 两级防护的配合对于特别恶劣的环境比如工业现场或者车载电子单级TVS可能不够。这时候可以用两级防护第一级用大功率TVS泄放大部分能量第二级用低钳位TVS做精细保护中间用退耦电阻或电感隔离。第一级TVS的VC可以高一些比如20V但Pppm要大能扛住浪涌。第二级TVS的VC要低比如6V保护后级芯片。中间的退耦元件要能承受第一级的残余电流同时不能影响信号。这种设计在STM32的RS485接口、CAN接口上很常见。RS485的共模电压范围是-7V到12VTVS要选VRWM高于12V的但差模信号的钳位要低。7.2 系统级ESD设计思路TVS只是系统级ESD防护的一环。完整的防护设计还包括结构设计接口的金属外壳要接到保护地ESD电流优先从外壳泄放不经过信号线。PCB布局保护器件靠近接口接地路径短而粗信号线先经过保护再进芯片。电源设计电源入口加TVS和滤波电容防止ESD通过电源耦合。软件设计STM32的IO口可以配置为低功耗模式减少ESD敏感度关键数据可以加校验和重传机制。我现在的习惯是画板子时先规划ESD电流的泄放路径再布局元件。这条路径上的阻抗要尽可能低从接口到保护器件到地平面形成一个低阻抗通道。7.3 选型工具和资源选TVS时我通常用几个渠道一是厂商的选型手册比如Littelfuse、ON Semiconductor、ST的ESD保护器件手册二是分销商的在线选型工具可以按参数筛选三是参考成熟方案比如ST官方的STM32开发板原理图里面用的TVS型号都是经过验证的。ST官方的Nucleo板和Discovery板USB接口和调试接口都有ESD保护可以抄他们的选型。比如Nucleo板上的USB接口用了USBLC6-2SC6这是一颗专用的USB ESD保护阵列结电容0.5pFVC在8kV接触放电下小于10V很适合参考。最后再分享一个小技巧如果你不确定TVS选型是否合适可以先在板子上留一个TVS的焊盘用0Ω电阻短接。调试阶段先不焊TVS等确认信号没问题再焊上TVS做ESD测试。这样万一TVS选错了换料也方便。我个人在实际操作中的体会是TVS防护这件事选型占三分布局占七分。参数再好的TVS接地没做好也是白搭。所以画板子的时候多花十分钟规划ESD泄放路径比事后换十颗TVS都管用。
返回列表