我是一家国防公司制造部门的电气工程师,我们为军队制造黑盒子。大约15年前,我们为一个客户做了10个黑盒子。5年前,客户要求我们再做两个。时间距上一次已经过去了10年,我们只v好重启生产线。然而,第二批产品跟第一批有点不同,不知为何,没能通过测试。为解开这个谜团,我们找出原理图来查找信号路径。
我的任务是对这两个新的黑盒子进行质量测试。我们为第一批的10个黑盒子进行质量测试而定制的测试站还在,其中的一些仪器用来检查黑盒子的所有功能。先要完成初步测试,然后是老化测试,如果一切顺利,将完成最后的验收测试。如果所有测试都通过了,黑盒子就可以交付给客户了。
初始测试倒是没有遇到太大麻烦。老化测试是要在一个有电热器也有冷冻设备的测试舱里进行温度测试。定制测试站中有测试用的长电缆,可通过舱壁的舷窗连接到黑盒子。老化测试从室温下开始,然后将温度降至-54ºC,并在冷浸几个小时,确保整个黑盒子冷透,然后,测试站就会检查黑盒子的所有功能。
接着,我们将温度升高到55ºC,热浸几个小时,确保整个黑盒子变暖。然后用测试站测试黑盒子的所有功能。做完热测试,再将温度降低至-55ºC,重复上述过程。完成四次冷/热测试,总共需要大约32小时才能完成。
第一个黑盒子在进行老化测试时,顺利通过热测试,但是其中一个电路卡上的MIL-STD-1553芯片在四次冷/热测试中,都没有通过内置自检(BIST)冷测试。MIL-STD-1553是一种军用通信系统,可连接飞机上的设备,用于系统间通信。测试站中有一台仪器通过1553线与黑盒子中的这个电路板卡通信,验证系统是否正常工作。通信部分通过了冷测试,但芯片本身却没有通过BIST冷测试。我猜可能是1553控制器芯片内部出现了故障。
我用另一个黑盒子中的电路卡换掉了有故障的这个,然后重新开始老化测试。经过四次冷/热测试,1553 BIST还是不能通过冷测试。我打电话给我们的一位BIST设计工程师,他告诉我1553 BIST完全是1553芯片内部的功能,需要来自外部的干净时钟信号——在此案例中为24MHz。时钟是由CPU卡提供的,CPU卡是黑盒子中的另一个电路卡,所以我又用另一个黑盒子中的CPU卡把它换了,然后再次进行老化测试。经过四次冷/热测试,结果仍然一样。1553 BIST的所有四次冷测试都失败了。
我只好打电话给我的老板,请他过来看看是什么情况。我们决定在1553电路卡上加一根线到时钟目标,并把这根线拉到舱外,这样就可以在冷测试中用示波器进行监控。接好导线,我们拍下时钟信号的图片以备后用,然后降低测试舱的温度,并冷浸一段时间。几小时后,我们打开黑盒子,运行1553 BIST——还是失败,此时我们再次拍下时钟信号的图片。比较前后两张时钟信号的图片,我们没有发现明显不同的地方。
然后,我们检查CPU卡、主板和1553卡的原理图,并绘制24MHz时钟电路链的完整简图。就在这时,我老板发现有地方不对头。
我们的设计工程师原来的设计是,当CPU卡插入主板时,主板会将同一时钟信号的两个独立缓冲输出并联。当一个缓冲源没有足够的驱动能力来支持多个目标电路时,并联缓冲芯片是可接受的做法。这在信号移动速度缓慢的环境中可能没问题,但是如果时钟信号为24MHz,则可能出现麻烦。并联的每个缓冲器必须同时打开和关闭,否则可能导致故障。然而,在我们的时钟信号图片上看不到有任何故障。
不过我们发现,这两个(据推测)并联缓冲器只驱动主板上的一个缓冲器。我们决定从并联电路中暂时移除其中的一个缓冲器。由于这些板卡采用的是表面贴装技术,我们只需将缓冲器芯片上的输出引线拆焊,然后将其从迹线上移开,就能有效拿掉并联的缓冲器。我们检查了示波器上的信号,并没有看到任何不同,所以我们再次将测试舱降温,经过几小时的冷浸,进行冷测试。嘿,嘿! 1553 BIST通过了冷测试。这时我们再次截取时钟信号的图片,仍然没有看到任何差异。
显然,与最初的电路板卡并联的时钟缓冲器芯片对10年前的那10个黑盒子似乎没有影响,但不知何故新电路就不能正常工作。我们没发现示波器上的时钟信号有什么问题,但当我们消除了并联缓冲器的影响后,它就通过了冷测试。
我们重新做老化测试,黑盒子最终顺利通过了所有四次冷/热老化测试。我们接着对另一个黑盒子进行老化测试,1553板卡同样不能通过BIST冷测试。接下来我们修改CPU,让时钟缓冲器芯片不再并联,1553板卡就通过了BIST冷测试。问题解决了。
译者注:读到这里,网友们纷纷发表看法,认为作者并没有找出故障的根本原因。那么,是并联缓冲器导致故障,还是时钟线上的回波引发故障?解决问题的最好办法是让时钟缓冲器芯片不再并联,还是在两个输出之间串联一个小电阻?看网友怎么说。。。
网友评论:
@ MWagner_MA
有一件事我没弄懂。使缓冲区“不并联”解决了这个问题,但作者并没有讲清楚工程师第一次为什么要这样做。这样的一个缓冲器是否有足够的输出电流驱动?我从来不直接连接两个输出,无论谁说“ok”,我都不会。至少我会在两者之间加上电阻。
@ Thinking_J
第一,我同意@MWagner。如果“解决办法”只是通过了测试,那么Michael的完成了他的任务。如果目的是要找出问题的“症结”......显然故事还没结束。
大多数公司都不大会赞同制造部门的人(无论资格多老)在未经工程部门或设计工程师同意的情况下修改产品。
第二,并联驱动器/缓冲电路......特别是高速信号......需要仔细检查,大多数工程师都会避免这种情况,除非有特殊原因。
第三,可能的罪魁祸首,也许是使用的驱动器/缓冲器IC与之前的不同, @MWagner_MA的建议可能是更好的解决办法(在两个缓冲器输出之间增加小电阻)。
第四,示波器——除非是特别高级的示波器($$),否则是不太可能“看到”这类问题的。
我可能并不完全反对将同一芯片的输出直接并联,因为这样很容易看到它们是不是匹配良好。总之,许多芯片的内部都是这样的,即输出晶体管并联。不过,最好的解决方法还是串联电阻吧。
这个故事让我困扰,因为他们并未真正发现问题,而只是想办法让它正常工作了!这真让我烦恼。在我看来,这没什么值得骄傲的。“问题解决了”?? 还没!
@ elmech
我认为问题是由时钟线上的回波引起的。两个输出缓冲器可能产生足够的能量使回波干扰基波并破坏正确的脉冲。传输信号取决于通道的条件(信号路径的走线,以及与其他绝缘板的距离等。)
我认为,黑盒子是密封的,所以如果他们生产了第二批,可能湿度条件不同。
@ ccdi
我担心通道延迟。如果通过每个通道的延迟变化很大,则可能产生额外的时钟脉冲,因为两个输出驱动同一个时钟线。可能是下一代芯片处理通过输出驱动器改变了信号延迟,这在某种程度上导致产生了额外的短时钟脉冲,进而引起BIST故障。
(原文刊登于ASPENCORE旗下EDN英文网站,参考链接:It was a clock problem,由Jenny Liao编译整理。)