【现象描述】
某设计,CPU以菊花链的方式接两片Flash存储器, CPU的引导程序存储在Flash 存储器中,两片Flash 存储器互为冗余备份。
上电测试发现,多块电路板从最接近CPU的那片Flash存储器加载程序时出现异常,导致电路板无法启动。
在案例3.8中提到,在一驱多的设计出现故障时,验证时钟信号边沿的单调性是重要的调试方向。但波形测试发现,Flash存储器时钟信号边沿单调,没有出现明显信号质量问题。在数据信号上,也没有明显的信号质量问题。
【讨论】
在故障分析时,工程师将带有测试波形的照片发给笔者,笔者注意到照片上示波器的带宽是50MHz,按照测试精度3%计算,该款示波器适合测量的最高频率约为25MHz,即可以准确测得的最小时间宽度为40ns,而两片Flash芯片之间由于信号反射所造成的边沿不单调持续时间远远小于40ns,所以该款示波器无法验证时钟信号边沿单调性。在采用更高频带宽度示波器的测试后,验证了距离CPU最近的Flash芯片的时钟信号存在边沿不单调的问题。
【扩展】
这个案例中,板上有两片型号完全相同的Flash存储器,问题只发生在最接近CPU的那片Flash存储器,因此不用考虑无关的调试方向,如电源噪声、复位电路、上电顺序、芯片本身故障等。本案例中的情况,两块存储器是一样的原理图信号连接、 一样的电源,唯一的差异就是PCB布局和PCB布线,因此最值得怀疑的就是信号质量,但在本案例最初的测试中,在信号质量上却没有获得有价值的线索。
相信不少工程师遇到过这样的情况,通过测试,首先排除了可能性最大的调试方向,然后陷入迷茫。
针对调试,需明确两点:
① 通过测试,逐一排除可能性,当其他可能性都排除了,剩下的那个就是故障根本原因。
② 通过测试,排除故障可能性时要特别注意,一旦测试方法错误,导致错误地排除了某个可能性,将会产生方向性的错误,之后的所有调试工作可能都将变成南辕北辙。
从笔者负责过的电路故障调试经历看,错误的测试方法导致调试走错方向的不在少数。
打开测试仪器,无论测试方法正确与否,都可以得到一个测试结果。而测试又是一把双刃剑,正确的测试可以帮助找到真实的故障原因,错误的测试会对故障调试产生严重的误导。所以,对于一个硬件研发部门而言,要组建一个高速电路实验室,仅仅在硬件上投入是不够的,在软件上,还应通过部门内部的培训、传帮带使工程师掌握正确的测试方法。
笔者一直用以下这段话来警醒自己,此处与大家共勉:
“一个问题的调试,背后有5个可能性,只有一个能通往真相。
排除了4个,最后一个很可能是最难验证的,此时无须验证,它就是真相。
真正困难的是,在排除前4个的过程中,若做出了错误的排除,则满盘皆输,问题无解。”
多年前,笔者曾经负责了一块电路板的研发。第一版调试时,工厂生产的5块电路板,有4块出现了相同的问题,在列出调试方向并逐一进行验证后,排除了所有与设计、生产有关的可能性,最后唯一剩下的可能性就是芯片故障,尽管通过接口I-V曲线测试等方法无法确定芯片是否存在损伤,尽管芯片厂家认为该故障不像芯片问题,但当笔者确认了所列调试方向的完备性,以及测试方法的正确性后,就可以坚定地相信故障原因在芯片内部,所以以此为依据要求芯片厂家必须对芯片做失效分析,最终确定了芯片内部的故障。
-
FlaSh
+关注
关注
10文章
1683浏览量
152197 -
电路板
+关注
关注
140文章
5144浏览量
103035 -
测试仪器
+关注
关注
0文章
461浏览量
34583
发布评论请先 登录
评论