排除法和替代法在工程開發中的妙用

2021-09-24 02:17:45 字數 2998 閱讀 3636

今天分享乙個剛剛解決好的硬體產品問題,這個問題的解決過程中用到的思維方法其實是很值得學習的。

工廠拿回來了好幾片剛剛貼好的板子,每一片板子上電後(電池供電)都有固定頻率的中頻雜訊。

該板子的背景情況介紹:

該產品之前早已大量出貨,並且已經出貨的板子聲音很乾淨,沒有任何的雜訊,這次只是更換了相關的音訊介面、還有一些元器件更換了**商。

問題排查過程:

1、從源頭開始分析,進入耳機的訊號來自三處:音訊源1、音訊源2以及dac輸出。這裡我依次斷開這三處音訊源,發現噪音來自於dac輸出。

2、接著開始用示波器測量dsp發給dac的數碼訊號,發現如下波形,很顯然,雜訊來自於dsp。為了確定雜訊訊號是否真正由dsp產生,這裡我繼續追蹤adc進入dsp的訊號,發現數碼訊號並不是一條低電平直線(如果沒有訊號則應該是低電平),而是如下波形。到這裡,發現雜訊訊號很有可能來自於adc。於是我將adc輸入直接接地,再測量adc進入dsp的訊號,發現這個時候就是一條低電平的靜止的直線了,再聽聽耳機,雜訊已經消失。所以至此,可以很明確的說,雜訊是來自於adc,並且準確的說是來自於adc的輸入訊號。

3、接著繼續向訊號的**的上游探,裝置上面有乙個轉盤式電位器,這個是乙個比較大的嫌疑,因為曾經確實出現過由轉盤式電位器帶來雜訊的案例。於是我開始把目標轉移到這個上面,我用鑷子將電位器旁路掉,發現雜訊依然存在,說明雜訊並不是來自於轉盤式電位器。

4、繼續往前探,這個時候到了運放的輸出了,我將運放輸出切斷,雜訊消失,難道雜訊由運放產生嗎?為了明確這一點,我把運放輸出與後面的訊號通路恢復連線,把輸入訊號切斷,發現雜訊依然存在,說明雜訊肯定不是來自於音訊介面,這次我可以肯定雜訊確確實實來自於運放。

5、難道問題**於運放晶元本身或者它的周邊引數?為了驗證這個,我拿回來正常的板子(就是大量出貨過的產品),將上面的運放和運放周邊的引數一一更換到問題板上,雜訊依舊。說明並不是這個問題,為了保險起見,我再用萬用表測量了問題板上運放的各個管腳電平,與正常板上的運放各管腳電平完全一致,這進一步說明運放是好的,運放周邊的引數也是對的。

6、到這個時候,好像山窮水盡了。沒思路了。為了進一步確定雜訊來自於這一塊的運放及周邊電路,我將有問題的pcba的運放輸出線路統統割掉,把正常的pcba的運放輸出飛線到問題板的後端電路,發現並沒有雜訊,話筒說話也正常。說明問題確確實實來自於這一塊電路。這一塊電路可以懷疑的物件無非就是運放的正相輸入腳、反向輸入腳、運放輸出腳、運放的供電腳、運放的gnd腳,既然電路原理並沒有問題(如果原理有問題,那麼之前的pcba也必定有雜訊),那麼雜訊無非就是來自於上面的這些懷疑物件了。

7、為了確定雜訊是來自於運放的具體哪個管腳,我首先將問題板的運放的反向輸入端管腳翹起來(就是脫離pcb焊盤),然後將正常板的對應管腳訊號拉過去,發現雜訊消失,而且接上話筒,聲音一切正常。到這裡,我隱隱約約感覺問題就來自pcb,為了驗證這個猜想,我將問題板的運放周邊引數統統去掉,把那個翹起來的腳又重新焊到pcb上,把正常板的對應管腳訊號拉過去,雜訊又出現,於是我確定雜訊肯定**於pcb。

8、但是這解釋不通啊,pcb沒有改過,而且之前還大量生產過,未曾出現過任何問題。怎麼辦,到了這個時候,思維再一次山窮水盡了。此時,我決定開啟pcb檔案一**竟,終於發現重大問題,pcb為四層板,我發現中間層有兩條訊號訊號的倒影直接與上面那個運放的兩組訊號輸入腳的倒影重疊,我用萬用表測了中間層的訊號線與輸入管腳之間的阻抗,∞,說明沒有短路。但是這也不能排除就不是這個中間層訊號線造成的,接著我追蹤該訊號線的源端,發現它是led燈掃瞄晶元的輸出腳,會產生固定頻率的掃瞄訊號,到此時,我基本斷定雜訊一定就是**於它,為了驗證我的想法,我先將運放部分的一切電路和引數恢復,然後將led燈掃瞄晶元的這兩個管腳翹起來,雜訊消失。到此為止,雜訊源徹底被找到。下圖是中間層訊號線與運放兩組管腳的位置關係:

【總結】

1、其實上面用到了兩種思維方法:排除法和替代法。訊號逐級追蹤的過程其實就是排除法,先排除了音訊源1和音訊2,接著排除了adc、dsp和dac晶元,再接著排除了轉盤電位器,之後才將問題範圍縮小在運放這一塊。到了這裡用排除法已經沒用了,開始採用替代法,通過飛線方法用正常板的引數替代問題板的才最終將問題鎖定在pcb上。這兩種思維方法在排查硬體問題中非常常用,幾乎是終極辦法。甚至,排查軟體問題也照樣算得上是終極辦法。也許,你可以通過其他辦法解決這個問題,也許你首先就會想到雜訊可能根本就來自於led燈掃瞄晶元,因為雜訊頻率與掃瞄頻率比較接近,但是這並不是一種系統思維方法,遇到稍微複雜一點的問題時往往會找不到方向。

2、山窮水盡疑無路,柳暗花明又一村。上面用排除法往前探,第一次遇到山窮水盡,此時開始採用替代法,於是柳暗花明又一村。當把問題鎖定在pcb上的時候,再一次遇到山窮水盡,因為pcb已經大量出貨過,而且沒有更換製版商。這個時候就要有思維上的突破了,pcb本身設計存在極大的缺陷,加上紙板商兩次製版加工材料不同以及其他環節不同,就造成了中間層訊號線的訊號以另一種形式傳入運放輸入腳,於是雜訊被后級不斷的放大,這個思考就是一種思維上的突破,於是再一次柳暗花明又一村。

【感悟】

物理學大師楊振寧在他的《美與物理學》一文中,把物理學分為四種內涵:實驗、唯象理論、理論架構和數學。不同的科學家分別專注於不同的內涵,布拉赫(t. brahe , 1546 - 1601)是實驗天文物理學家, 活 動領域是(1)。 他做了關於行星軌道的精密觀測。 後來克卜勒 (j. kepler , 1571 - 1630)仔細分析布拉赫的資料, 發現了有名 的克卜勒三大定律。 這是唯象理論(2)。最後牛頓建立了牛頓力學 與萬有引力理論, 其基礎就是克卜勒的三大定律。 這是理論 架 構 (3)。 海森伯的靈感來自他對實驗結 果 ( 1 ) 與 唯象理論(2)的認識, 進而在摸索中達到了方程式 (h)。狄拉克的靈感來自他對數學(4)的美的直覺欣賞,進而天才 地寫出他的方程(d)。 他們二人喜好的,注意的方向不同,所以他 們的工作的領域也不一樣。

事物的發展總是存在階段性,但是從乙個階段到另外乙個階段總是應該有一些突破性的東西來推進。

排除法二分查詢

以找到目標元素為目的進行查詢,迴圈控制條件為while left right 表示當left right成立時,還要判斷left right 值和目標值的關係。基礎二分法將查詢陣列分成三部分 mid所在位置,mid左邊位置和mid右邊位置,如果nums mid target,那麼直接返回mid,否則...

程式設計師殺人必備 排除法

今天我要講一下排除法,排除法是我在解決技術問題時,最常用的辦法。玩這遊戲,你需要對人物進行分類,對活與死分類,性別分類,姓名分類,職業分類,朝代分類等等。比如如果猜孫悟空,包含的屬性是 虛擬的,四大名著裡的,名字三個字的,師徒四人裡的,一一拆解。最終是把目標名字給揪出來。以我在技術群體裡玩這個遊戲的...

用排除法診斷半表半里證

半表半里是經方的重要概念之一。半表半里的陽證為少陽病,半表半里的陰證為厥陰病。半表半里證當治以 和 法。對於複雜病症,難以直接根據條文提綱判斷是否屬於半表半里證的,可以採取排除法。即排除了病位在表 在裡,那麼就可以判斷出是半表半里之證,再進一步結合寒熱 虛實的情況,判斷是偏於陽證的少陽病還是偏於陰證...