排查故障之三大必須
簡(jiǎn)介:最近我的學(xué)生頻繁出現(xiàn)“卡殼”現(xiàn)象:看似很簡(jiǎn)單的設(shè)計(jì),卻死活調(diào)不出來(lái),人都快瘋掉了。大約一周前,小陳來(lái)找我的時(shí)候,一副懸崖上抓不牢樹(shù)枝,就想自己松手跳崖的樣子,猴急的都想給我說(shuō)難聽(tīng)話了。這兩天,小陳的問(wèn)題找到了,解決了,又快樂(lè)了。但是常偉的問(wèn)題又來(lái)啦。
本文引用地址:http://cafeforensic.com/article/280343.htm用MSP430F169單片機(jī)給程控增益放大器PGA280實(shí)施SPI控制,正常,同一個(gè)單片機(jī)給一個(gè)24位ADS1259實(shí)施控制,也正常。但是兩個(gè)同時(shí)都焊上,用CS片選分別控制,就不行了。問(wèn)題就這么簡(jiǎn)單,卻讓他焦頭爛額。
解決問(wèn)題是遲早的事情,我不擔(dān)心,并且發(fā)現(xiàn)問(wèn)題解決問(wèn)題,本身就是對(duì)他們的鍛煉,我才高興呢。但是,我發(fā)現(xiàn)他們無(wú)一例外的,都陷入了一種混亂的狀態(tài):出現(xiàn)問(wèn)題,開(kāi)始左試試,右試試,有時(shí)成功了,高興了,吃飯回來(lái),又不行了,接著試。就這么反復(fù)折騰,總有崩潰的時(shí)候,就開(kāi)始發(fā)火,焦躁,然后滿世界找人幫忙,特別像落水以后找稻草。這種狀態(tài)持續(xù)3天以上,他們就開(kāi)始對(duì)我發(fā)火了。
我告訴他們:故障出現(xiàn)是好事,第一鍛煉了你們,第二排除了隱患。不到萬(wàn)不得已的時(shí)候,我是不會(huì)出馬的,我只需要教會(huì)他們排查故障的三大必須,就可以了。
排查故障是一門學(xué)問(wèn),深得很。但籠而統(tǒng)之,就三大必須,有了這三條,沒(méi)有排查不了的故障:第一、心態(tài)。第二、策略。第三、耐心。
第一條心態(tài)。你必須對(duì)出現(xiàn)的故障,有強(qiáng)烈的感激。謝謝上天給了我這個(gè)機(jī)會(huì),我要牢牢把握住。你可以想象自己是福爾摩斯,已經(jīng)好幾個(gè)月沒(méi)有接活了,和華生天天閑聊已經(jīng)沒(méi)有意思了,急切希望有個(gè)案子,蘇格蘭場(chǎng)束手無(wú)策了,等著你出馬了。只有這種心態(tài),才能讓你能夠在后續(xù)的長(zhǎng)期斗爭(zhēng)中保持亢奮的頭腦、縝密的思路以及足夠的耐心。
我最大的特點(diǎn)就在于此。學(xué)生給我匯報(bào)故障的時(shí)候,我通常是特別興奮,一字一句聽(tīng),像聽(tīng)考題一樣,他們漫不經(jīng)心的,我的眼睛卻犀利如刀。我特別希望我的學(xué)生能夠?qū)W會(huì)這一點(diǎn)。
第二條策略。這是技術(shù)活。細(xì)講太多,粗粗說(shuō)點(diǎn)兒。
1)讓故障重復(fù)出現(xiàn),避免隨機(jī)性故障。對(duì)隨機(jī)性故障,我找機(jī)會(huì)另說(shuō)。
2)保護(hù)故障現(xiàn)場(chǎng),不輕易亂動(dòng)。動(dòng)的無(wú)論是軟件還是硬件,都應(yīng)保證可以恢復(fù)。因此,別隨意焊下芯片,焊下的芯片也要放好,能找回來(lái)。另外,軟件一定要按照序號(hào)備份。
3)不要一次做兩個(gè)以上的改變。
4)養(yǎng)成習(xí)慣,用個(gè)小本記錄所有的動(dòng)作和事實(shí)。換了個(gè)電源,看似小事,有可能由A故障變成了B故障,你腦子就亂了。因此,如果要換電源,也要記錄。
5)重視儀器和操作方法。每次記錄事實(shí),一定要確保事實(shí)是真的。
6)學(xué)會(huì)用邏輯的思維。主要是,造成這種故障現(xiàn)象的可能性有多少種,一一列出,可能性最大的到可能性最小的。
7)學(xué)會(huì)排查次序。影響排查次序的有兩個(gè)主要因素,第一故障可能性,第二排查難度。我們當(dāng)然要先試探可能性最大的,且排查難度最小的。但是兩者并不總是這么巧。比如,你懷疑是A芯片壞了,這可能性最大。但是把它焊下來(lái)很費(fèi)勁,排查實(shí)施難度較大,就可以先排查別的可能。這一項(xiàng)有點(diǎn)運(yùn)氣成分,也有點(diǎn)經(jīng)驗(yàn)成分。
8)學(xué)會(huì)二分法并巧妙使用。二分法,就是把故障分為兩部分(或者三部分,別太多,否則會(huì)亂),然后制造一些情況,想辦法確定是哪部分,然后再細(xì)分,逐漸縮小包圍圈。以前日本鬼子查城區(qū)里面哪里在發(fā)報(bào),就用這方法:一個(gè)區(qū)域一個(gè)區(qū)域停電,看哪里一停電就導(dǎo)致電報(bào)信號(hào)消失,就能確定發(fā)報(bào)者在哪個(gè)區(qū)域,然后再縮小區(qū)域停電,最終找到我們的地下工作者。幾句話還是說(shuō)不清,我找機(jī)會(huì)再說(shuō)吧。
當(dāng)按照這種縝密的思維方式,羅列了所有故障可能性,且一一排查均無(wú)結(jié)果的時(shí)候,你應(yīng)該更加亢奮。就像給一個(gè)1k電阻加了一個(gè)1V直流電壓,測(cè)量的電流卻不是1mA一樣,你應(yīng)該有這種心態(tài):活見(jiàn)鬼了,難道歐姆定律都不成立了嗎?
此時(shí),找老師,找朋友,找什么人都行。但是,有誰(shuí)做到這一步呢?多數(shù)學(xué)生都在這個(gè)階段,徹底崩潰了。
因此,第三條,足夠的耐心。
我曾遇到一個(gè)故障,就是電源電流太大。密密麻麻一大堆芯片,工作也算正常著,就是電源指示電流偏大,我知道一定是哪里短路了或者臨近短路了。但是怎么查啊?關(guān)鍵是整個(gè)系統(tǒng)工作是正常的。
當(dāng)時(shí)我自己告誡自己,要耐心,我不同于一般人,我有足夠的耐心一定能查到。于是,我先用放大鏡把板子上所有位置都看了一遍,看有沒(méi)有焊接短路或者飛濺焊錫,花了很久時(shí)間,記不得了。然后,我看著電腦上的PCB圖,把所有在10mil附近的間距,都用萬(wàn)用表查了一遍,還是沒(méi)有。有點(diǎn)惱火了,于是我又告誡自己,不是一般人,不是一般人,接著來(lái)。
這次我干什么了呢?誰(shuí)也不會(huì)想到我有多大的恒心:我計(jì)劃把芯片的每一個(gè)管腳,或者叫電路板中的每一個(gè)節(jié)點(diǎn),都和其它不應(yīng)該連接的節(jié)點(diǎn),都測(cè)一遍。這得測(cè)量多少次啊?但我豁出去了。于是,我開(kāi)始干了。好在當(dāng)時(shí)的芯片,都是DIP封裝的,管腳不是甚多,我一個(gè)個(gè)查,終于查到了。其實(shí)時(shí)間也不是太長(zhǎng),一兩個(gè)小時(shí)而已。
結(jié)果是,兩根完全不相干的輸出線,短接了,而電阻不是0,記不得是多少,大約就是幾個(gè)歐姆的樣子。我左看右看,他們都不會(huì)相連,只有一段大約幾個(gè)厘米的區(qū)間,它們兩根線平行走過(guò)。我割斷,不短路了,短路局限在10cm左右了,再割斷,最后局限在1cm左右的空間中,兩線平行,但是短路。而兩線的間距有差不多3個(gè)mm。
這板子已經(jīng)被我折騰的不成樣子了,但留下了一個(gè)千古疑問(wèn):兩根間距3mm的線,在1cm長(zhǎng)度內(nèi),居然短路了。我用放大鏡看著,沒(méi)有痕跡。我舉起來(lái)對(duì)著刺眼的臺(tái)燈,仔細(xì)看,一條細(xì)細(xì)的痕跡出現(xiàn)了,那么細(xì),那么曲里拐彎,就有一根不透明的細(xì)線。
我舉起割刀,在3mm的間距中深深的割了幾刀,短路消失了。
這是上世紀(jì)九十年代中期的故事,我記憶猶新。
沒(méi)有如我當(dāng)時(shí)之耐心,這樣的故障是難以查到的。
可能會(huì)有人說(shuō),這是一個(gè)個(gè)案,印制板的質(zhì)量不好,你查到又有什么用呢?板子已經(jīng)廢了。但我有不同的認(rèn)識(shí),查到了,我就可以拍胸脯了,自信心比什么都重要。至今我仍然能夠保持足夠的自信,學(xué)生遇到問(wèn)題,我不急,慢慢查著去,過(guò)了我的期限,我絕不相信,到我這里還查不出來(lái)。
心態(tài)好,有縝密的策略,有足夠的超乎尋常的耐心,是排查故障的三大必須。很多人可能會(huì)注重技術(shù)性的策略,這當(dāng)然很重要。但我發(fā)現(xiàn),最重要的恰恰是第一條和第三條,它們不是想學(xué)就能學(xué)到的,而是要悟要養(yǎng)的。
評(píng)論