闩锁 Latch-up:那颗一直没有关掉的保护器件
板子每一项功能测试都过。接着做 ESD 测试,其中一个端口就不动了。保护器件是温的。换掉、重新上电,板子又正常了,直到下一次放电。这颗料不是不够强。它是还开着。
这块板子在做什么
一个 5V 电源轨上的 USB Type-C 端口。很普通的设计:连接器、数据线和 VBUS 上的 ESD 保护,后面接控制芯片。工程师选保护器件的方式跟多数人一样,看数据手册上哪一颗的钳位电压最低。钳位越低,打到芯片上的电压越小,所以低的一定更安全。
实际发生的事
在 ±8kV 接触放电测试时,这个端口没有响应了。之后在工作台上测到:
- VBUS 停在大约 2.4V,而不是 5V
- 流进保护器件的电流远高于正常漏电流,是毫安,不是纳安
- 用手能摸出器件是温的
- 重新上电之后,一切又恢复正常
最后那一点才是重点。烧掉的器件不会因为你把电断掉再接上就复原。这颗器件没有坏。它是在导通,而且从放电那一刻起就一直导通,远比放电本身持续得久。
大家最先想到的答案
最直觉的解读是「浪涌比这颗料能承受的还大,所以换一颗更强的」。这会让人去挑浪涌耐量更高的器件,通常是更大的裸片,通常也意味着更高的电容。在 USB 3.x 的高速线上,这个电容会伤到信号完整性,于是设计从一个问题变成两个问题。
而且这样完全没有解决问题,因为根本没有东西被打坏。要看出真正发生了什么,必须看这颗器件在导通过程中的行为,而唯一能看到这件事的测量是 TLP 曲线。
能看出问题的测量
TLP(Transmission Line Pulse,传输线脉冲)测试会对器件打一个很短、而且控制得很精确的脉冲,同时记录器件两端的电压和流过的电流。把幅度一档一档往上加,就得到这颗器件真正的电流-电压曲线,不是市场宣传数字,是实际行为。
从左往右看:
- 从 0V 到 6.3V,器件是关的,几乎没有电流。这就是触发电压,通常写作 Vt1。
- 到了 6.3V 它导通了,而且器件两端的电压往回掉到大约 2.4V。这一段折返就是它名字的由来:回拉(snapback)。
- 从这里开始导通,一路上升到 11V/16A。导通时电压这么低,正是回拉型器件钳位数字那么漂亮的原因。
真正重要的数字是折返最底下那一个:维持电压 Vh。器件两端电压低于它,器件才会放手;高于它,器件就继续导通。
它为什么关不掉
放电把器件触发了。这没问题,那本来就是它的工作。问题在于它被触发之后,看到的是什么。
这颗器件跨在一条带电的 5V 轨上。它的维持电压是 2.4V。浪涌过去以后,电源轨还在,还能继续推电流,也还把器件维持在大约 2.4V,远高于它会放手的电平。所以它就一直开着。
现在电源正在喂一条直接对地的低阻抗通路。这就是为什么 VBUS 测到 2.4V、电流那么大、器件是温的。这也是为什么重新上电就好了:把电源轨断掉,是唯一能让电压低于 Vh 的办法。这就是 闩锁(latch-up)。放着够久,热最后还是会把器件烧掉,然后这个失效看起来就像一颗不够强的料,于是下一个工程师又被带回错的结论。
它为什么有地方可以待着
上面这些其实有更精确的说法,而且值得画一张图。把电源能提供的能力,跟器件画在同一组坐标上,然后看它们在哪里相交。
A 点是板子正常工作:器件两端 5V,没有电流流过它。B 点是故障:2.4V,有电流。关键词是两个都是,每一个都是电路可以无限期停留的位置。ESD 脉冲并没有打坏任何东西,它只是把电路从 A 带到 B;到了 B 之后,电路里没有任何东西会把它推回去。
这就是「会自己恢复的故障」和「不会自己恢复的故障」之间的差别。如果这颗器件没有回拉,它的导通分支会整段落在电源轨右边,就不会有第二个交点,只有一个位置可以待,就不可能闩锁。回拉造就了第二个「家」。
两种不同的故障同名
这件事值得小心分开讲,因为同一个词被用在两件不同的事情上,而且解决办法不一样。
第一种是被保护芯片内部的闩锁。任何 CMOS 工艺里都存在一个没有人想要的四层结构,NMOS 的源极、P 型衬底、N 阱、PMOS 的源极,叠起来就是 P-N-P-N。那是一颗没有人设计、也没有人想要的晶闸管。它的行为等同于两颗双极型晶体管互相接到对方的基极。正常情况下两颗都是关的,只漏几个纳安。但只要有东西对其中一颗注入足够的电流,它就会把另一颗打开,另一颗又把第一颗开得更大,两颗就一起锁进一条从 VDD 直通接地的低阻抗通路。当初引发它的浪涌早就消失了;是电源在维持它。
第二种是保护器件自己闩锁,也就是这篇讲的失效。控制芯片内部什么事都没有发生。是 TVS 回拉到它的维持电压,而电源轨高到足以把它维持在那里。
在工作台上,这两种看起来几乎一模一样:电源轨垮到某个奇怪的固定值、电流高得离谱、某个东西是烫的,重新上电就好了。差别在于是哪一颗器件在承受这个电流。如果发烫的是保护器件,那就是保护器件闩锁;如果发烫的是控制芯片,而保护器件是凉的,那闩锁就在芯片里面。把保护器件的一只脚掀起来再测一次,一分钟就能分辨。
真正的触发原因
两种闩锁都需要有东西先注入第一波电流。实际上是:
- 端口上的浪涌。ESD、浪涌、带电热插拔,或是线缆本身储存的电荷灌进连接器。这是最常见的一种,而且 USB Type-C 端口每天都在遇到,它本来就是设计成可以带电插拔的。
- 电源轨上升太快。上升很快、或是开机时有过冲的电源,可能在板子都还没开始工作之前,就把足够的位移电流推过寄生结构,把它触发。
- 重负载让电源轨晃动。如果一个大的电流阶跃把电源拉下来、或是把局部地抬高,芯片内部不同位置之间的电位就会偏移,而这个偏移可能让一个本来应该关着的结正偏。
- 选了一颗维持电压低于电源轨的保护器件。这一项只会造成第二种闩锁,而且和前面三项不一样,它不是运气不好,是几个月前在办公桌前做的一个选型决定。
前三项是你要去管理的条件。最后一项则是可以直接避免的,而且避免它一分钱都不用花,这也正是在成品里发现它时,最让人不甘心的地方。
它对板子做了什么
闩锁不是一个事件,而是板子被卡住的一个状态。伤害是一级一级累积的,能走到哪一级,取决于电源被留着多久,以及它能供应多大的电流。
- 电源轨垮到维持电压。不是垮到 0V,而是垮到被闩锁的器件停在的那个值。在这块板子上,5V 变成 2.4V。挂在这条轨上的每一颗芯片,现在都在低于它最低工作电压的条件下运行。
- 通信中断或出错。这个端口挂掉,或者更糟,时好时坏。在数据线上,同样的故障表现成误码与重传,而不是干脆的失效,这种更难追。
- 电流随着发热继续上升。被闩锁的通路阻抗很低,电源会供应到自己的极限为止。如果电源有限流,它会跟闩锁对抗,然后两边都发烫;如果没有限流,电流就只受板子本身限制。
- 有东西因为 EOS 烧掉。是电过应力(EOS),不是 ESD,是慢慢热死,不是瞬间打死。通常是被闩锁的器件短路而死。有时候是键合线断掉。有时候是后面那颗芯片先走。
最后这一级,正是这个失效会在不同产品上一再重演的原因。一旦热把保护器件烧掉,闩锁的证据也跟着消失了。送到失效分析台上的,是一颗短路的 TVS,装在一块 ESD 测试没过的板子上,看起来就跟一颗不够强的料一模一样。于是下一版换上一颗浪涌耐量更高的器件,而且很常是维持电压一样的器件。板子用同样的方式再失效一次,而且现在数据线上还多了电容。
如果这篇只让你带走一个诊断习惯,请带走这一个:重新上电就会复原的保护器件,从来就不是不够强。在你去订一颗更强的料之前,先去看维持电压。
最低钳位电压的陷阱
接下来是比较难堪的部分。回拉型器件之所以钳位电压低,正是因为它会回拉。回拉就是它的卖点。所以当你把代理商的料表按钳位电压排序、然后挑最漂亮的那个数字时,你其实是在悄悄地挑出维持电压最低的那些器件,也就是最容易在带电轨上闩锁的那些。
数据手册上最吸引人的那个数字,正是制造风险的那一个。
解决办法
有两个都成立的答案,用哪一个取决于这条网络是什么。
- 继续用回拉型,但要把数字算过。规则很简单:Vh 必须高于这条电源轨可能到达的最高电压,包含容差和任何过冲。只要电源轨永远不可能把器件维持在 Vh 或以上,它就不可能闩锁。
- 改用不会回拉的器件。普通雪崩钳位型没有折返,它只在击穿电压以上才导通,所以 5V 轨根本没办法让它继续开着。你牺牲一点钳位性能,换掉整个失效模式。
在前面那块板子上,第二个选项才是对的。VBUS 是一条永远带电的轨,没有人会想要一颗「能不能正常工作要看电源容差」的保护器件。
为什么有些器件会回拉
会有人问:那为什么有人要做一颗可能被维持在导通状态的保护器件?答案是,回拉不是缺陷,它正是那些器件钳位表现那么好的全部原因。保护器件大致分成三种结构,而折返的形状就是它们的分野。
- 雪崩钳位型。一个在击穿电压以上开始导通、然后一路往上的二极管结。没有折返,所以没有维持电压要检查,低于它击穿电压的电源轨也没办法把它维持在导通。代价是导通电流上升时,它两端的电压也跟着上升,所以三者之中大电流下的钳位能力最弱。
- BJT 型。一颗由集电极雪崩触发的双极型晶体管。导通之后靠晶体管作用把电压压下来,所以它会回拉,但幅度不大。这一类卡在很尴尬的中间:折返是真的存在,而维持电压又常常刚好落在常见的电源轨电压附近。这是最容易让人踩到的一群,因为数据手册看起来没有夸张到会提醒你去检查。
- SCR 型。一个刻意做出来、而且受控制的四层晶闸管,跟 CMOS 芯片里那个意外形成的结构是同一种东西。两半互相把对方锁在导通状态,所以电压塌得很深。这让它有三者中最低的钳位电压,而且是用很小的裸片做到的,也就意味着很低的电容。它是每平方微米能买到最好的保护,同时也是那个只要电源轨允许,就会一直坐在那里导通的器件。
所以真正的排序不是「哪一个最好」。折返越深,钳位越好、裸片越小、电容越低,同时电源轨把它维持在导通的机会也越高。你是在这个取舍上选一个位置,而答案完全取决于这条网络上有没有直流电源。
从数据手册就看出来
在一颗保护器件被放到带电网络上之前,做三件事:
- 先找维持电压。如果数据手册有列 Vh,把它跟你这条轨的最高电压比。Vh 比较低,这颗料就有可能在这条网络上闩锁。
- 看 I-V 或 TLP 曲线。只要曲线往回折,它就是回拉型器件,不管宣传文案怎么写。曲线一路往上不回头,就不是。
- 看看厂商有没有告诉你。有些厂商根本不公布维持电压。如果你打算把一颗料跨在带电轨上,而它没有这个数字,就去要,或者换一颗有公布的。
有一件事不能拿来判断:料号。前缀只是产品系列的名称,并不保证导通机制,整个业界都一样,包含我们自己的产品线在内,同一个系列里可能同时有两种。真正能定案的是上面那三个检查。如果你不想一颗一颗看完整份 BOM,把带电电源轨上的料号给我们,我们帮你把维持电压和你的电源电压逐一比对。
回拉型不是坏器件
在这里用「避开回拉型」收尾很容易,但那是错的。在高速数据线上,回拉型常常是更好的选择:它给你更低的钳位电压,而且是用很低的电容做到的,这正是多 Gbps 的通道需要的。而且数据线上没有直流电源,所以脉冲过后根本没有东西可以把它维持在导通。
同一颗器件,在数据线上是很好的选择,跨在电源轨上就是负债。它从来就不是一颗烂料。它是一颗被放错网络的好料。
要点
- 重新上电就会复原的保护器件,是被闩锁,不是被打坏。
- 两种故障共用同一个名字:芯片内部的寄生晶闸管,以及保护器件自己维持导通。哪一颗在发烫,闩锁就在哪一颗。
- 回拉型器件会折返到一个维持电压。只要电源轨高于它,器件就会一直开着。
- 在比较钳位电压之前,先把 Vh 跟你电源轨的最高电压比一次。
- 回拉型适合没有带电的数据线;跨在带电轨上请用普通钳位型。