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