对于需要进行系统设计和交付的技术团队来说,有效识别和调试半导体问题极为重要。系统复杂度增加以及产品上市时间缩短会对在短时间内解决问题造成巨大压力——有哪位工程师没有被要求过昨天改完今天交付?在如此重压之下,很难有逻辑又有条理地调试一个问题。而逻辑条理地调试问题却恰恰是及时找到解决方案的关键所在。
显然,完整的调试框架可以大量节省工程师的时间,减少调试复杂半导体问题时的挫败感。本文通过直观的示例描述了这样一种框架。虽然本文透过视频产品来研究半导体问题的表现以及解决方法,但本文中的框架是通用的,适合多种半导体产品门类和不同问题。
简介
众所周知,《银河系漫游指南》的封面为那些拥有该书的幸运儿传达了一条平静的消息:不要慌张。1 Douglas Adams写下了那句著名的话:“尽管《银河系漫游指南》包含许多明显(以及偶尔严重)的不准确内容,其销量还是超过了《银河系百科全书》,因为它稍微便宜一些,并且在封面以大而易读的字体印上了‘不要恐慌’几个字。”
然而,我们都曾经恐慌过。演示系统交付延期、市场部在电话那头要求更新,或者一小撮工程师在实验室中盯着一块工作不正常的电路板出神。像这种时候,星际旅行者便会求助于该本《指南》。工程师可以找到很多本《指南》——互联网、《电子学》,甚至Dilbert那些含义深刻的漫画。这份饱受赞扬的列表现在将由这篇文章来扩充——一份在发生恐慌时可缓解工程师恐慌情绪的故障查找秘籍。
从软件着手
每个工程师开始进行调试时,都有自己的倾向——要么从软件着手,要么从硬件着手。暂时搁下这些倾向(虽然本文作者确实有很强的硬件背景),软件通常是开始进行调试的较佳切入点,因为软件具有可快速改变复杂因素的能力,同时也是由于硬件具有粘滞特性(比如非物料清单变更导致的准备时间)。
半导体产品供应商在发布产品前会投入大量时间和资源来定义较佳配置设置,以便能在各种条件下工作,比如工艺变化、不同温度和电压。诸如HDMI接收机等现代半导体器件非常依赖较佳配置,以确保工作的稳定性和鲁棒性。虽然可能需要向核心配置添加额外的设置来解决特定应用的问题(比如输入多路复用或色彩空间转换),但核心配置必须保持不变。
遇到问题时,必须优先检查应用系统的配置设置。如果部署的配置设置与硅片供应商所建议的不符,则下一步应当复原这些设置,然后才重新测试。不正确设置的影响可能很小(比如禁用滤波器导致视频模糊),也可能很严重(比如完全没有视频或不兼容)。
软件调试期间,通过很多交互动作(比如中断响应或计划任务)将复杂的软件驱动程序与系统组件所需的基本I2C配置相隔离可能会有所帮助。如果采用静态配置一切正常,那么问题可能是由于软件引入了太多交互动作所引起的。如果问题依然存在,那么下一步就是硬件调试。
玩转器件
一旦排除了软件导致问题的可能性,下一步需要分析的就是硬件。虽然听上去似乎难以置信,但任何硬件调试的第一阶段都应当确认PCB上的器件确实正确。硅片供应商针对每一款产品一般都会开发出几种型号,每一种型号都在某种程度上与其它型号有所不同。
一种型号间的常见差异就是速度等级。从订购指南选择产品的一个小错误可能导致所选型号无法达到所要求的规格;比如,ADV7802BSTZ-150视频解码器的最高工作频率为150 MHz,而ADV7802BSTZ-80视频解码器的最高工作频率仅为80 MHz。各型号之间的另一个不同之处是功能组合的差异。例如,错误地订购了不支持HDCP的HDMI接收芯片(如ADV7611BSWZ相比ADV7611BSWZ-P的差别)可能导致系统不支持消费电子视频源。哪怕采用相同的封装,同一款产品不同型号的引脚排列也有可能有所差异。例如,同一款产品的两个型号具有不同的输出接口,它们的I2C接口也可能略有不同,如图1所示。下单时候小小的粗心就可能导致器件不正确,进而硬件设计不工作。
硬件是个头疼的问题
一开始就正确完成复杂的硬件设计很困难。良好的设计过程包括前期规划、原理图输入、布局布线以及布局仿真——它们为提高成功的可能性打下了坚实的基础。哪怕过程非常好,依然可能发生错误。一旦确认PCB上的器件正确,下一步就是确认硬件。
有关原理图
大部分硅片供应商提供参考原理图和/或原理图指南,帮助设计人员在一开始就完成正确的硬件设计。如果系统的表现与预期不符,应根据上述参考资料进行检查,确保除了应用所要求的,其它无重大差异;比如参考系统和指定应用的输入与输出连接可能不同。
应当对电源多加留意,保证滤波和去耦的部署与建议一致——若无法做到这点,可能会导致数字开关电源(比如数字核心电源)噪声耦合至敏感的模拟电源(比如PLL电源)。未使用的引脚必须仔细处理,确保器件不会遭受损害,或者干扰不会感应至系统中(比如非端接输出可能不受控地振荡)。
布局难点
如果原理图没有问题,那么下一步就是分析布局布线本身了。布局布线可能导致基本的组件位置问题,也可能导致复杂的耦合问题。视频产品一般会提供如何在电路板同一侧并靠近视频器件本身的关键外部电路组件(比如外部环路滤波器或晶体振荡器)的建议。如果未仔细进行外部电路组件的布局布线,或者未按照建议做,则可能导致电路出现无法预料的表现。
差分电路(比如HDMI、MHL、MIPI和APIX)如果设计与走线不正确,就非常容易受到布局布线问题的影响。不按照这些技巧建议去做,就会影响性能,导致功能性或兼容性问题。发现功能性或兼容性问题后,应当对差分布局的基本原则进行完整的回顾:差分走线是否尽量短,且在视频器件电路板的同一侧(避免过孔)?走线下方是否使用了地层,走线对内和对间的间距是否保持一致?周围的铜制接地填充物是否离差分走线足够远?
如果部署不当,电源是可能引起大问题的另一个因素。如原理图部分所述,电源滤波和支持布局具有同等重要性。须检查的关键地方有:尽可能使用低电感电源层,并且去耦电容经过仔细放置,在引脚处即可实现去耦。如果所有的基本因素都没问题,那么就可能需要检查更深层次的因素,比如是否使用了旁路电容来减少回路电流长度。
查阅一切可获得的知识库
如果问题观察下来可以排除硬件和软件方面的原因,那么与其他工程师和知识库核对可能极为重要。虽然某些半导体产品的问题很新颖,但其它很多问题经常被技术人员或有经验的工程师观察到。
过去这种情况常常局限于同一家公司的工程师合作找出解决方案,然而现在很多半导体公司都提供web合作工具——比如ADI公司的中文技术论坛——来扩展视野。
使用这种工具有很多好处——可以快速联系技术专家、不会区别对待不同客户,并且提供专用知识库访问,可让多达30%的工程师在遇到问题时找到答案,而无需真正提出一个问题。
对问题进行特征化
如果就近协助或web合作工具无法提供解决问题的明显方案,那么就需要对问题进行特征化。顺手对问题进行详细分析有助于寻求支持的时候更快速地提供解决方案。
如果最初调查阶段完成的硬件和软件检查未能得出结论,则应当检查器件周边的环境,确保符合规格。平台需检验的第一个要素是器件在印刷电路板上的物理固定;印刷电路板是否经过电气测试;所有的可见焊点看上去是否牢固;采用另一种方式检查时(比如X光),所有不可见的焊点是否牢固。机械组件的可靠程度一直在改善,但有时低产量的原型产品可能会出问题。
如果检查下来发现电路板确实是可靠的,那么下一步就需要将硬件表现与最初设计规格相关联。平台各部分工作情况是否符合每一个器件的数据手册要求(比如电源电平和稳定性或晶体频率)?例如,假设一个单电压电源不在规格范围内,或者共同连接了不正确的电源,那么器件可能无法正常工作(输出可能具有更多噪声,兼容性能可能受影响)。检查电源电平时,重要的是应当尽可能靠近器件引脚探测,以便排除电路板上发生电压下降的可能性。除了电源,其它常见的问题原因有:晶体电路(比如稳定性、负载电容要求或负电阻)、端接电路(器件选择和布局局限)以及基准电压源电路。
设计中的另一个关键之处是保证每一个芯片间连接的建立时间与保持时间的可用裕量。时序误差表现为在显示器上出现闪烁(即像素错误偶尔以白点形式出现),或者绿色线条,抑或完全丢失图像;它在温度范围内对系统性能有不利影响。将发送器的数据不定态时间与接收器的建立和保持时间要求匹配,同时引入所有PCB相关信息(比如走线长度或串联电阻)对于一个稳定系统而言至关重要。
报告问题
如果硬件调试成功,且所有一切都符合规格,那么下一步要做的就是在寻求进一步协助前尽可能准确地对问题进行特征化。针对下列问题收集信息有助于技术支持人员提供详尽而及时的回答。
- 问题如何重现,重现概率如何(比如1000次中出现1次、100次中出现1次、10次中出现1次,或10次中出现10次)?问题能否静态重现,或者需要动态输入(比如重复热插拔输入)?
- 描述重现问题的输入。比如,输入是标准来源还是特定应用来源,如倒车摄像头?只有一种来源导致这个问题,或是很多不同的来源都能导致?输入的分辨率/频率如何?输入的色彩空间如何?输入的色深如何?对于LVDS或MIPI类型的输入,其输入使用了多少通道?
- 描述重现问题的输出。比如,输出是标准终端设备或是特定应用的终端设备?仅有一个终端设备出现问题,还是采用多个终端设备都会出现问题?输出分辨率/频率是多少?输出的色彩空间如何?输出的色深如何?对于LVDS或MIPI类型的输出,其输出部署了多少通道?
- 描述重现问题所需的器件配置,比如采用何种输入——模拟 或数字?器件采用哪种信号路径——分量视频信号处理模块、缩放模块、去隔行模块、屏幕显示模块?采用哪种输出——模拟或数字?采用哪些设置,以及相对于建议作了哪些调整?
- 对影响因子特征化。例如,问题是否随温度而改变?问题是否随电压而改变?问题是否与电缆长度无关,或者器件通过PCB连接?
注意:对器件加热或冷却时,强烈建议使用腔室或吹风设备。尽可能避免使用冷冻喷雾或热风枪,因为它们的输出不可预测。 - 同样的输入和输出连接到DUT,并以尽可能类似配置工作时,问题能否在器件评估板上复现?问题现象相同,或是略为不同?
注意: 这个问题之所以特别重要,是由于以下两个原因:第一,它向技术支持人员表明问题与半导体器件和支持材料(比如文档或建议配置设置)有关,或是与特定应用有关;第二,它有利于技术支持人员以极快的速度重现问题(如果问题可以在评估板上重现的话)。 - 问题出现在所有平台上,或出现在单个平台上?可能需要ABA交换以确认。
注意:ABA交换是一种有效的半导体封装工具,可从PCB上移除,并能以最少的工作量重新装上去——它适合LQFP和LFCSP封装,但不太适合BGA封装,除非有设备可以重新焊接器件。 - ABA交换的目的是为了确定故障是否出现在有嫌疑的系统或器件上。首先,在有嫌疑的系统上重现问题,然后确定第二个系统没有问题。移除这两个系统上的器件,交换并重新安装。确定问题是否依然存在于有嫌疑的平台上,或者问题随着有嫌疑的器件转移到了第二个系统上。
- 捕捉示波器轨迹、图片或(更实用的)视频来展示问题(如果问题具有动态特性,那么视频更有帮助;比如闪烁或随机噪声)。
一旦完成了所有这些调查并且掌握了结果,就可以回到web合作工具上,开始与技术支持专家谈话了。
走正规渠道
探索完所有可能的途径后,半导体器件的物理条件本身可能就处于调查的最终阶段。为了完成这一阶段,器件一般必须通过正式故障分析渠道回到半导体供应商处——通常可联系半导体供应商的当地销售办事处或经销商的销售办事处。
故障分析过程采用重复生产测试和基准评估等工具来检查故障模式,比如电气过应力、静电放电损害、制造缺陷、产品测试遗漏以及应用相关问题。如果故障分析过程无法重现或确定问题,则回收的器件可能会归类为“未找到问题(NTF)”,以便进一步调试。
结论
至理名言“不要恐慌”若用在不恰当的事情上,似乎就有点不合时宜。但这个建议的目的是解开工程师在设计和交付采用多个半导体器件的复杂系统时经常遇到的很多问题的关键。以有条不紊的方式来进行调试(比如查阅参考原理图和布局布线、建议设置,或确认硬件工作与规格一致)可以增加找到任何问题根本原因的可能性。