硬件调试方法
硬件设计,主要关注电压和电流,关注各个器件的特点和spec
示波器是必备的知识,对于信号的sensitive是靠知识、经验,当看到一个信号,有经验的人往往看到更多东西,比如毛刺或者信号异常跳变,还有信号的;另外测试的方法也,能充分利用手上的仪表
硬件调试方法小节
1) 对比法
对于新做的板子,对比demo板,对比其他板子相同的电路。
对于改版的板子,对比其他人怎么用
2) 反证法
有时候没有仪表
3) 新板子调试思路,一般是两种
从最容易实现的可能性开始尝试
从最快的方式开始调试
4) 由于芯片不是自己产生的,要有怀疑和尝试的动作,不要觉得理论解释不了就不去尝试了。因为要不就是自己理论不够,要不就是芯片有自己的未知的bug或者其他。
(这个大概就是传说的经验吧)。集思广益,任何建议都可以依次视情况尝试
比如说CPU BOOT碰到的问题,以及PCIE_SWITCH碰到的问题。
a)CPU boot,不理解为什么有块板子一直起来;而且其他有问题板子起来后,怎么复位都没有问题,按道理应该复位的时候,问题出来的是一样的。 怀疑芯片有什么处理...
b)PCIE_SWITCH
由于事先焊了一片EEPROM在PCIE_SWITCH,在启动的时候会时候自动先读配置脚,然后又会访问EEPROM。虽然EEPROM没有任何东西,但是仍然会访问,然后把空白东西写入芯片,覆盖了原先的配置。
疑问:为什么没有管脚进行配置是否读e2prom?为什么读eeprom如果为空,应该屏蔽这些内容啊!?一直认为厂家应该将调试case写到网上,想办法鼓励用户往网上提交!
c) PCIE_SWITCH
PCIE-SWITCH访问HX330的PCIE失败,链路不能UP。
原因:
Pcie-switch->0.01uF->HX330
HX330->0.1uF->pcie-switch
PCIE的串联电容,datasheet要求是75nF-200nF,而HX330的demo板是0.01uF(10nF),由于抄的是0.01uF,所以工作不正常。
怀疑是因为PCIE-SWITCH严格按照PCIE规范,而HX330的PCIE输入又做得不够好,所以采用10nf(计算阻抗1/jwc = 6ohm左右)造成的衰减过大,造成
经验总结
5)调试前,或者解决问题前,一定要熟悉datasheet,尽量熟悉工作原理!
调试时,帮助者也是要看datasheet的建议,重新check原理图
比如CPU boot不起来,结果是电阻的阻值画错了.
数字电路调试的几个要素:
电源:上电顺序,单调性,电源值是否满足datasheet要求,上电时间,纹波
时钟:上电顺序,时钟电平,时钟质量(jitter,skew,duty cycle,SI eye,etc)
复位:上电复位顺序,复位时间,
另外,芯片管脚配置、JTAG上电的状态等
注:对于新手或者不熟悉,一定要测量这些管脚的每个信号,因为不相信或者难测,自己就放弃了测试配置管脚。其实测试后,可以解决上下拉电阻是否正确,NU的配置是否正确等问题。
碰到的问题中,我一般分为三种:
难度低、难度适中和难度高两种。
难度低:易于复现,故障原因容易明确单一。
难度适中:易于复现,牵涉面广,几个bug绞在一起。
难度高,就是难于复现,一般几个星期甚至几个月出现,牵涉面广,几个bug绞在一起。
注:
由于现在的芯片的服务提供的比较好,加上设计者的经验有较大的提高,一般的问题越来越少。
具体可能出现的问题来源于芯片的bug (比如FPGA的SRAM的不能进行异步读的设计,
芯片中输出时钟的jitter过大(clock driver的问题以及PHY输出时钟的问题))
所以在设计的时候,兼容设计尽量考虑。
总结:
任何事情的处理分为通用规律和自身规律
这里给出的既有通用规律(全要素调试方法),也有符合硬件调试的自身规律(如要求不断尝试,在周边情况不明的情况,怀疑各个地方,力求用有限的信息完成调试)
只有不断的调试,熟悉调试技巧,总结调试经验,不断学习新的知识,才能最终提升调试能力和个人水平。
本文来自博客园,作者:{e_shannon},转载请注明原文链接:https://www.cnblogs.com/e-shannon/archive/2012/10/11/2239602.html
浙公网安备 33010602011771号