TVS管漏电流竟让高电平失效?

很多硬件工程师在做ESD防护时都有一个共同认知:

TVS管是保护器件,不参与正常工作。

因此,在设计拨码开关、按键输入、GPIO接口等数字电路时,往往只是按照参考设计,在信号线上并联一个TVS,再加一个10kΩ上拉电阻,就认为万事大吉。

然而,实际项目中却出现过这样一种十分诡异的故障:

  • PCB没有焊接错误;
  • 软件逻辑完全正确;
  • 示波器也没有发现明显异常;
  • 只有个别机器偶尔读取拨码开关错误,而且温度越高,故障概率越高。

经过长时间排查,最终发现罪魁祸首竟然是TVS管的漏电流

很多工程师第一次遇到都会觉得不可思议:一个正常工作的TVS,为什么会把数字高电平拉低?

实际上,这正是数字接口设计中最容易被忽略的一类可靠性问题。


一个真实案例:拨码开关偶发识别错误

某项目在中试阶段,共测试30台设备,其中有2台设备出现异常:

CPU读取拨码开关状态错误,而且始终只有某一位异常。

整个接口结构十分简单:

+5V │ 10kΩ │ GPIO输入 │ 拨码开关 │ GND GPIO同时并联TVS到GND

整个电路完全符合常规设计规范。

软件反复验证没有问题。

PCB焊接检查没有问题。

最终问题定位到了:

TVS管漏电流。


为什么TVS漏电会影响数字输入?

很多人认为:

TVS正常工作时几乎不开通。

这句话没有错。

但是:

不开通,不代表没有漏