我曾担任工程师,在一家电子代工服务公司的工程部门工作,我们部门负责为生产线设计测试设备,同时也协助客户解决产品问题。
当时生产的产品是一种咖啡机的PCB组件。有一天,老板来找我,说客户抱怨咖啡机的显示屏和控制器卡住了,他向客户保证,我们可以解决他们的问题(尽管当时没人知道问题出在哪里)。
首要任务是重现问题。由于完全不知道问题出在哪里,我一开始只是让咖啡机自己运转。过了几天,没有任何反应,于是我又试了其他方法,比如敲打、摇晃……但依旧什么反应都没有。之后,我还尝试了用各种不同的组合和节奏来按下按钮,尝试将线路电压从规定的最小值缓慢地调整到规定的最大值,咖啡机仍然工作正常。我真是想不出什么办法了,最后,我尝试了把它插到一个控制器上,这个控制器可以以不同的速率打开和关闭线路电压,过了一会儿,它就卡住了。
这种现象暗示微控制器的复位电路出了问题,所以我深入研究了一下这方面的问题。咖啡机用的不是当时常用的典型设计,而是一个简单的RC电路,电阻连接到Vcc,电容连接到数字地,然后电阻和电容的另一端连接在一起,连接到微控制器的复位电路。
经过进一步测试,我得出结论,这个问题是由于线路电压快速中断或电压下降造成的。这两种情况都会导致复位电容只部分放电,就会复位回Vcc,无法满足微控制器的要求,因为它断电了,却没有得到有效的复位。
老板很高兴我找到了根本原因,但现在却又叫我“解决它”,而且解决方法必须是一些容易在现有PCB上实现的。我花了几天时间研究各种方法,比如更改电阻或电容值,或者添加555定时器、比较器或运算放大器,但这些方法要么不起作用,要么太难或太贵,无法添加到PCB上。
这时,我想起了以前读过的一个不太知名的器件,可编程单结晶体管(PUT),它有一些类似可控硅整流器的特性,有三个引脚:阳极、阴极和栅极,于是,我想到了一个电路:
咖啡机修复的示意电路图,引入PUT来管理因线路电压中断或电压下降而导致的故障。
当Vcc良好时,阳极到阴极的通路不导通,而当Vcc下降时,电容会保持导通一段时间,但如果栅极电压低于阳极0.7V或更多,PUT就会触发打开阳极到阴极的通路,电容就可以快速放电。这样就解决了问题,而且PUT和电阻很容易就能钉在现有的PCB上。
修好之后,我去找老板,问他能否要为这个复位电路申请专利,但他拒绝了。为了安慰自己,我把它投稿到了EDN的“设计实例”专栏,被他们刊登了。后来我偶然发现,这个设计实例在德州仪器、达拉斯半导体、Shlumberger Technology和Ericson的专利中被引用为现有技术。看来我们错过了一个绝佳的专利,不过话说回来,专利和EDN发表的设计实例哪个更好呢?
(原文刊登于EDN美国版,参考链接:PUT a reset in its place,由Ricardo Xie编译)