在这家与国防相关公司的制造部门,我们建立了军队所谓的黑盒子。黑盒子里有各种功能的电路卡插入主板。
有一天,软件工程师被指派负责调查和解决,为何同类型的六块电路板在盒子中出现故障。这些卡片已经被设置在插槽中很长一段时间了,因为没有人可以弄清楚这些卡片出了些什么问题,每块电路板价值约1万美元,如果电路板还能运作,管理层并不想报废掉它们。它们似乎可在测试夹具上通过测试,但他们只是不能在盒子里正确地工作。
一直专注在测试与修复这几块电路板的软件工程师来找我,希望我能给予他依些建议,因为在我成为工程师之前,我是测试这些电路卡的技术员。我告诉他我会提供协助,但我知道试图解决在黑盒子里的电路卡问题是相当困难的。这张卡在故障的电路中大约有30颗离散的芯片,探测其错误讯号是不容易的,然而,若是我们可以修复其中一片,那么我们也将可以修复其他六张电路卡,因为他们是以相同的方式失效。然后,软件工程师告诉我,当他写入电路卡上的某些寄存器(register)时,他可以让电路板失效,我想这位软件工程师太优秀了,他已经做了相当多的故障排除,这可能比我想象的更容易进行修复。
我告诉他,我们不应该使用盒子来解决电路板的问题,但由于他发现如何轻易地使电路板失效,我们应该能够轻易在测试夹具上看到它,如此这应该使它变得更容易分析。我把电路卡放在测试夹具上,设定好,并很快地发现问题是什么。这个问题是,不知何故,电路得到一个非故意地重置(reset)指令,我得到了我需探测的范围,并开始探索以解决问题,但只花了我几分钟的时间就让我发现了原因。
这电路使用一个四组2 to 1多任务器(multiplexer)芯片54ALS157,透过输入控制逻辑,两个输入可切换到一个输出。我发现,当开关输入控制逻辑在其中一个部分改变时,它在输出在线产生了10ns的故障,并且该输出线连接到重置电路。
换句话说,芯片出了问题。当开关以一种方式或另一种方式切换时,不应产生故障,我们用示波器检查了其他六张电路卡,它们都显示了相同的故障,我们从外观上检视六片电路板,发现它们都有相同的日期代码在芯片上,显然,从制造商而来的,是不良批次的芯片,这只是偶然发生的事情之一,更换芯片应该就可修复电路卡。修复之后,六张电路卡最终在测试夹具和盒子中顺利通过测试。我们节省了6万美元,管理阶层很高兴,软件工程师和我都获得了一笔很好的奖金。