張發林,從事嵌入式系統軟硬件研發工作超過20年,目前在上海未來伙伴機器人有限公司擔任電子總工程師。深入理解從產品需求分析、方案論證設計、技術研發、產品化、測試認證、批量量產等各環節的難點、痛點,解決過大量研發、產品化和生產難題,參與或領導開發的多款工業自動化設備、通信設備、監控系統、物聯網及機器人產品等均已投入大規模量產銷售。
在成長實錄之教訓系列之三中我有提到,2005年五一期間我們解決了ADSL局端及終端設備的頻帶干擾問題,初步測試下來功能正常,性能滿足要求,終于可以交付到測試部門進行完整的測試。不出意料的,新問題來了。
測試工程師測試下來發現一個問題,設備正常工作一段時間后會莫名奇妙的自動重啟,從開機到重啟的時間每次不固定,而且手上的5臺樣機都存在同一問題。
接到測試報告后,軟硬件團隊開始聯手進行系統調試。有系統開發經驗的都知道,這個問題對工程師調試來說喜憂參半,喜的是這是一個必現的bug,相對來說問題比較容易復現和定位,問題是否得到解決比較好驗證;憂的是這個問題出現的時間長短是隨機的,功能都已實現,性能也達到要求,這種情況下的問題往往不簡單,需要調試的工作量很大。
這個問題對于硬件部分比較常見的問題一般有電源設計不良、復位電路、晶振電路、過熱保護、元器件不良、生產制程不良等;軟件部分可能存在的問題有系統配置不正確、異常流程處理不當、內部看門狗不正確觸發等。
硬件團隊首先排查了可能存在制程問題,通過目視檢查和X-ray照射,未發現明顯異常;全面監測復位、供電和晶振等,均未發現自動重啟時存在異常狀態,通過對電路板全面的熱監測也未發現存在過熱區域;軟件團隊也對可能存在的問題逐一排除,未發現任何異常。調試陷入僵局,項目一時無法進展。
沒辦法,軟硬件團隊再次回到對故障現象的分析梳理,重新擬定測試方案,尋找重啟時的共同點。經常大量的測試,終于發現當系統傳輸大容量數據時出現重啟概率要大很多,而那種很輕負載狀態的設備重啟幾率較小,時間間距也會拉開更大。找到規律不代表就能找到確切問題點,甚至更加讓人迷茫。
當所有的分析測試都沒有結果時,我們重新回到對生產制程的分析,由于主控芯片和MAC芯片都是BGA封裝,電路板本身是10層板,大部分走線都是走在內層,對我們的排查來說困難重重。經過不懈努力,發現主控芯片到MAC的16根地址線因走線和貼裝工藝存在瑕疵而有虛短路現象,其中一根和地之間的阻抗由正常的10兆歐左右降為1兆歐左右,由于檢查BGA貼裝質量的X-ray主要檢查是否存在短路或斷路問題,對于虛短是很難檢查出來的。由于該地址線并未短路,在初始化或低速率傳輸數據時問題不大,但當大容量數據高速傳輸時,地址線之間的差異就會顯現出來,導致程序運行異常而觸發內部看門狗,從現象上看就是系統自動重啟。
經驗教訓:
1、 不是能夠正常工作了硬件就萬事大吉,還要關注壓力測試和長時間測試;
2、 阻抗匹配很重要,對于很多問題,數據線和地址線等對地阻抗測試會告訴我們很多信息;
3、 嵌入式系統的調試一定要有系統概念,軟硬件及測試團隊的通力協作是快速發現問題、定位問題和解決問題的前提和保證,很多現象是多種因素引起的,只有經多細致分析,大膽推測、反復驗證才能解決問題。
-
看門狗
+關注
關注
10文章
566瀏覽量
70893 -
嵌入式系統
+關注
關注
41文章
3614瀏覽量
129632 -
BUG
+關注
關注
0文章
155瀏覽量
15691
原文標題:20年經驗的電子總工程師回憶錄之讓項目陷入僵局的阻抗匹配bug
文章出處:【微信號:eedesigner,微信公眾號:eeDesigner】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論