最近遇到很多debug相關的咨詢,曾經我們說過,我們做過的板子越多,遇到問題的概率也越多,很多別人沒遇到過的問題,說不定我們早就觸過雷,從而類似的問題形成經驗總結,就不會再有同樣的問題發生。一些問題可能不一定和PCB設計相關,但由于找不到原因到底在哪里,最終需要進行一一排除,所以兜兜轉轉又回到PCB設計上來,這也是我們經常要面對的工作之一。 調試是一項很辛苦的差事,說起調試,曾經聽過一個故事。早期某大廠一些硬件人員在調試前會去仙湖植物園的弘法寺拜一拜,燒香祈求項目能一次性調試通過。雖然是傳言甚至戲謔但多少也反應出硬件調試中一些奇怪的問題,有時甚至不以人的意志為轉移。 在我們看來,系統性能能否成功無非就是軟件和硬件的配合,所以很多時候硬件和軟件大家的工作都是相互配合,相安無事的,但一旦出了問題卻找不出具體原因的時候,大家可能就會相互指責,各說各有理,但大多數時候往往硬件最后是落於下風的,因為硬件涉及到的因素會更多,比如硬件原理、器件選型、物料、PCB設計、制板、焊接等,這些最終都和硬件相關,哪一個環節出問題了,都會影響系統性能。而軟件只需要簡單說一句上次同樣的原理已經驗證通過了,什么都是一樣為什么這次改了個PCB版本就不行了呢?接著硬件也補充說對啊,原理、器件和軟件都是一樣,就改了個PCB設計,重新打了一板為什么調試出來就有問題,難道是PCB的問題?最后這個“鍋”就到了和PCB相關的身上了。今天不說“鍋”的事,系統需要良好的工作,需要各方面一起協調努力,軟件也需要配合硬件的變化進行一定的調整,大家都要做好才能保證系統的穩定運行,所以每一方面都不能忽略,出了問題當然就需要從各個方面進行排查,實事求是從解決問題的角度出發,不要有背“鍋”俠的心態。 雖然我們不直接進行硬件調試,但我們遇到調試的問題也很多,因為我們是實現硬件原理中重要的一環,發揮著橋梁作用,所以很多問題最終會排查到PCB設計環節中來,大家要有這種意識。最近就遇到一個HDMI顯示不正常的案例,大致經過是這樣的。 客戶在我司設計的一個板卡在調試時發現HDMI接口能正確識別,但接上顯示器后卻一直閃屏,最后直接就識別不到了。客戶用示波器測試信號眼圖也沒有發現太多問題,這個問題客戶內部已經調了幾個月還沒有找到原因,最后希望我們從PCB的角度排查一下看能否找到是不是和信號完整性相關,部分PCB設計如下圖所示: 從PCB設計來看,4對數據走線和換層基本都是一致的,從表層走到內層,再從內層換層到底層,經過底層的電容,電感和ESD器件再到HDMI接口,中間換層過孔做了反焊盤連盤掏空處理,內層信號換層到底層,存在過孔stub比較長的風險,但對于6Gbps的信號來說,這個50mil的stub正好處于可鉆可不鉆的邊沿,也就是說影響不是致命的,能背鉆當然更好。另外電容、電感和ESD器件,這些器件和連接器表貼焊盤等沒有經過一定的優化,可能存在阻抗不連續的影響,這塊我們的要求是8Gbps以上是必須要優化,8Gbps以下如果有空間可以優化,因為如果要優化的話,意味著第三層或者倒數第三層焊盤位置是不能走線的,有可能還要補參考層,尤其是空間很緊張的情況下,實現起來會比較麻煩,很多設計人員本著多一事不如少一事的原則,很多就不優化了,PCB設計本來就是權衡的藝術,這也能理解。 除了器件焊盤的影響,這些器件的選型會對阻抗帶來更大的影響,之前的文章就寫過,由于ESD選型不當,導致阻抗偏低很多,沒看過的可以再看看這篇文章:ESD器件對高速信號有影響嗎(陳雅給鏈接),可以看到加了ESD后的阻抗確實低了差不多14歐姆,如下圖所示: 但客戶反饋這些器件都去掉了,結果還是沒有改善,依然顯示不正常。 然后我們只能試一下看降速是否有改善,因為如果是PCB設計上stub太長,或者焊盤等阻抗有影響,降速可以降低這些負面的影響,同時速率低了系統裕量也會大很多,反復修改參數調試后,最終結局卻以非常意想不到的方式結束了。 幸福來得太突然,我竟無言以對,這個錯誤,真的有點低級,真是“接反一對線,多調三個月”。 看到這里,我們的問題來了: 調試了幾個月,最終卻非常意外的找到了問題的原因,大家在調試中有沒有遇到過類似的問題? 大家可以把問題寫出來發給高速先生投稿,也可以分享相關的素材我們來整理,一經采用會有相應的獎勵,歡迎大家嘗試并暢所欲言。 |