很多硬件工程师在做ESD防护时都有一个共同认知:TVS管是保护器件,不参与正常工作。因此,在设计拨码开关、按键输入、GPIO接口等数字电路时,往往只是按照参考设计,在信号线上并联一个TVS,再加一个10kΩ上拉电阻,就认为万事大吉。然而,实际项目中却出现过这样一种十分诡异的故障:PCB没有焊接错误;软件逻辑完全正确;示波器也没有发现明显异常;只有个别机器偶尔读取拨码开关错误,而且温度越高,故障概率越高。经过长时间排查,最终发现罪魁祸首竟然是TVS管的漏电流。很多工程师第一次遇到都会觉得不可思议:一个正常工作的TVS,为什么会把数字高电平拉低?实际上,这正是数字接口设计中最容易被忽略的一类可靠性问题。一个真实案例:拨码开关偶发识别错误某项目在中试阶段,共测试30台设备,其中有2台设备出现异常:CPU读取拨码开关状态错误,而且始终只有某一位异常。整个接口结构十分简单:+5V │ 10kΩ │ GPIO输入 │ 拨码开关 │ GND GPIO同时并联TVS到GND整个电路完全符合常规设计规范。软件反复验证没有问题。PCB焊接检查没有问题。最终问题定位到了:TVS管漏电流。为什么TVS漏电会影响数字输入?很多人认为:TVS正常工作时几乎不开通。这句话没有错。但是:不开通,不代表没有漏