今天我們要分享的這個案例是關(guān)于eMMC啟動不正常的問題,感謝熱心網(wǎng)友“曬不”提供的案例素材,也謝謝他的分享。 上篇文章我們提到希望大家一起來分享硬件調(diào)試中發(fā)現(xiàn)的一些低級錯誤,果然就有我們的鐵桿粉絲之一“曬不”發(fā)來了他初步整理的案例素材,大家一起來學(xué)習(xí)一下吧,也謝謝他的分享! 這個項(xiàng)目的主芯片是瑞芯微的RV1126(位號U10),分別拖了一個金士頓的eMMC芯片(位號U40)和鎂光的NAND Flash芯片(位號U41),在Layout的時候做了兼容設(shè)計(jì),也就是通過選焊電阻的方式,讓主芯片來選通其中一個芯片,使用的時候二選一,eMMC和NAND Flash芯片不會一起工作,大致的拓?fù)鋱D如下所示。 從Layout設(shè)計(jì)文件可以看到,幾個芯片都是放在Top面,eMMC和NAND Flash基本是放在同一個中心位置,所以貼片的時候只能選擇貼其中的一個,兩個芯片是沒法同時貼上的,所以需要做兼容設(shè)計(jì)。兩個分支電阻在垂直空間上重疊放置在Top面和Bottom面,這樣如果只焊接其中一個電阻的時候,確實(shí)是可以做選通操作,看起來Layout設(shè)計(jì)沒什么問題,對應(yīng)的走線如下圖所示。 設(shè)計(jì)上沒發(fā)現(xiàn)什么問題,然后就制板貼片開始調(diào)試。硬件在調(diào)試板子時發(fā)現(xiàn),有時候上電,系統(tǒng)會有卡死的情況,同樣的固件在開發(fā)板上是OK的,軟件做了幾輪修改都會有類似軟件報錯的情況,顯示出跑到eMMC操作時就卡住了,最后只能懷疑是硬件或者PCB Layout的問題。 但硬件有排除不是自己問題的理由:“最小系統(tǒng)模塊(包含eMMC)的原理是直接復(fù)制開發(fā)板的,所有的器件貼裝也和開發(fā)板一樣,同樣的代碼在之前開發(fā)板上沒有問題,而現(xiàn)在新設(shè)計(jì)的板子有問題,那肯定是PCB Layout出了問題”。 不可否認(rèn),硬件的話確實(shí)有一定的道理,硬件原理之前是驗(yàn)證過的,這樣壓力一下子就給到了PCB設(shè)計(jì)工程師。無奈,PCB工程師只能想辦法自證清白,在沒有專職SI工程師的情況下,PCB設(shè)計(jì)工程師只能通過再次查板,進(jìn)行粗略的估算和評估一些影響,檢查的方向如下: 1、阻抗不匹配方向:所有信號走線沒有跨分割平面,走線線寬和阻抗計(jì)算也沒有錯誤,同時也不存在較長的走線Stub,所以這一條不會影響。 2、時序方向:因?yàn)樾枰?00MHz的信號,等長也是比較關(guān)鍵的,但因?yàn)闆]有做仿真,只能按照芯片的手冊要求來做好等長約束,檢查了等長表,每根信號走線長度也是都可以滿足芯片要求,所以時序這塊的影響也是可以初步排除。 3、電源方向:按照經(jīng)驗(yàn)簡單算了電源平面載流能力是可以滿足需求的,相應(yīng)的電源Pin腳也有足夠的濾波電容,硬件測試電壓和電源噪聲都是可以滿足要求,所以電源的影響也可以排除。 同時也和開發(fā)版本的設(shè)計(jì)進(jìn)行了對比,硬件人員覺得是因?yàn)闀r鐘信號走線和開發(fā)板不一致導(dǎo)致的。如下圖是開發(fā)板的走線情況。 開發(fā)板上eMMC和NAND Flash也是同面同中心放置,原理是一樣的,也是通過兩個電阻做了選通,只是走線上的分支更短,而新改板后的分支相對來說長了很多。所以硬件人員有理由覺得是PCB改版帶來的問題,所有的原理和貼片器件都是一樣,PCB設(shè)計(jì)改了就出問題了,這個大概率是PCB設(shè)計(jì)不一樣而帶來的問題。 而PCB設(shè)計(jì)工程師也有自己的主張:“CLK信號是由RV1126源端發(fā)出的,開發(fā)板的串聯(lián)阻抗匹配電阻放在了終端,靠近eMMC和NAND Flash是不對的,應(yīng)該把串聯(lián)匹配電阻靠近源端,所以本次改版設(shè)計(jì)的電阻就往源端放了,這樣確實(shí)會導(dǎo)致分支變長,但由于是選焊的,如果一次只焊接其中一路的情況下,另一路是沒有導(dǎo)通的,這樣相當(dāng)于沒有分支的影響,原理上來說信號質(zhì)量會更好。如果連串聯(lián)匹配電阻放在源端也被懷疑有問題的話,那就是懷疑信號完整性的理論有問題了。”PCB設(shè)計(jì)工程師的話也是說得在理,無可挑剔,由于沒有SI人員支持,于是雙方各執(zhí)一詞,誰也說服不了誰。 經(jīng)過幾天的“溝通”,壓力還是在PCB工程師這。就在PCB工程師拿著PCBA研究的時候,無意中發(fā)現(xiàn)雖然U41沒有焊接,但是R41卻焊接了器件。這個發(fā)現(xiàn)仿佛一道佛光,拯救了“背鍋俠”。在PCB工程師的反饋下,硬件拆除了R41,系統(tǒng)終于可以正常啟動了。 這個時候硬件人員就有疑問了,為什么開發(fā)板上的R41沒有拆除可以正常工作,改版后的R41焊上就有問題了呢?大家可以幫忙回答一下哈! 同時也歡迎大家繼續(xù)提供類似這種調(diào)試過程中的低級錯誤案例素材,謝謝! |