三样东西做好了产品能多活几年做不好返修率会让人头疼

我在设计电路时,为了保证单片机在复杂环境中稳定运行,通常会在单个按键电路中添加限流电阻、滤波电容和ESD静电保护。单片机的GPIO内部本身有一层二极管钳位保护,但这层保护的电流承受能力有限,碰上干燥天气人体带有的几kV静电时,就很容易被击穿。 在2019年,我为一个手持设备添加了防水硅胶按键,但硅胶把按键按压行程变长,导致抖动时间增加,原本8ms的抖动时间变成30ms。因此,硬件滤波电容需要换成0.047μF,同时软件消抖窗口也要调到25ms。 基础电路中,I/O内部上拉,按键一端接地。但光这样是不够的,我一般会先在按键和I/O之间串接一个限流电阻R2,阻值在100Ω到1kΩ之间。这样做是为了防止固件错误地配置这个脚为推挽输出高电平时,按键按下会导致短路到地,瞬间电流能冲到几十mA,从而烧坏GPIO内部驱动管。 同时,在I/O对地并联一个滤波电容C1,典型值为0.1μF陶瓷电容。这个电容可以消除机械按键抖动带来的影响。对于机械按键抖动一般在5-20ms之间,所以RC时间常数选在10ms左右就足够了。 此外,还需要考虑ESD静电保护问题。TVS管是一种常用的防护元件,比如SMAJ5.0A或者更小的封装PESD5V0。TVS击穿电压选在5.6-7V左右,钳位电压控制在10V以内。这样静电来时,TVS管先导通,把大电流泄放到地,避免单片机内部二极管被高压击穿。 这次碰到一个客户反馈的问题,他用着用着就黑屏了。拆开后发现GPIO输入漏电已经到了几十μA。后来翻测试照片才发现确实有细微的烧痕在硅片上。这次给他补了TVS之后进行ESD测试,直接从±4kV接触升级到±8kV就稳定了。 不过加了这些元件也有代价。TVS本身有寄生电容几pF到几十pF。对普通按键没什么影响,但如果这个脚复用做高速通信或者电容触摸就麻烦了。信号边沿变缓会导致触摸灵敏度降低一半。 有一次做了一个电容按键项目加了TVS后发现湿手误触率暴增20%。后来换了低电容的专用ESD器件才解决问题。 我习惯把限流电阻放在按键和I/O之间。这样静电进来先经过R2限流再到TVS泄放最后才进入单片机路径更安全。 前阵子帮朋友调试一个工业控制器面板上有六个裸露金属弹片的按键冬天测试带静电一碰机器就死了我让他加了串联330Ω并联0.1μF还有TVS阵列成本多不到一块钱结果ESD直接过±10kV空气放电效果特别好。 现在做新设计按键电路默认就上限流电阻滤波电容和TVS这三样除非极致压缩成本或者空间不够否则宁可多放几个元件也不想半夜被客户电话叫醒。 我还遇到过一个情况就是有些工程师习惯把限流电阻放在TVS后面觉得这样更安全其实我觉得放在前面更稳妥一些。 总之来说三样东西做好了产品能多活几年做不好返修率会让人头疼这些经验都是平时踩坑攒出来的经验写在书里可能很少但实际设计中非常重要。