作者:zjd01 以前用TMS320DM3730做過設(shè)計,重新做了一個方案。系統(tǒng)使用TF卡啟動。X-Loader和Uboot及Linux內(nèi)核都正常啟動,但文件系統(tǒng)加載的時候總是報無法識別文件系統(tǒng)。 看前面的文件系統(tǒng)分區(qū)已經(jīng)識別到,但加載時就說不支持的文件系統(tǒng)。 查看內(nèi)核配置,確認是支持的文件系統(tǒng),而且,相同的TF卡放到原設(shè)計平臺上就能正常加載……對比了核心系統(tǒng)和TF卡的原理圖,沒有錯誤。 后來想到加載文件系統(tǒng)的時候或許讀寫速度會加快,導致數(shù)據(jù)錯誤。加上示波器,的確看在加載文件系統(tǒng)的時候速度提高了幾倍,但從信號看數(shù)據(jù)應(yīng)當算正常,不至于出錯……于是在TF卡附近加了幾顆瓷片電容,發(fā)現(xiàn)問題依舊。 然后就用笨方法了,從軟件入手。查LINUX內(nèi)核!經(jīng)過兩三天的跟蹤,終于發(fā)現(xiàn)故障碼居然提示“TF卡為只讀”。再細看LINUX啟動信息,居然在TF卡啟動后有一個提示“(RO)”。瞬間木掉了,這兩三天跟代碼,LINUX啟動信息看了N多遍,居然沒注意到它…… TF卡可以看成是SD卡的縮小版,但卻沒有寫保護引腳。 因為之前代碼是支持SD卡的,所以有一個寫保護狀態(tài)的讀取。原先工作正常的設(shè)計在這個讀取狀態(tài)的管腳有一段3厘米的PCB走線,連接到一個插座,但插座上的腳是懸空的。而新的方案里去掉了這個插座,同時刪掉了這段“懸空線”。然后主芯片在讀取這個信號狀態(tài)的時候就讀到兩個不同的值。有“懸空線”的板子上認為讀保護無效,而新方案里認為讀保護有效。把內(nèi)核里相關(guān)代碼改一下,文件系統(tǒng)終于正常掛載了! 這個故障的定位過程我做了簡寫,實際過程更為曲折。3cm的一段PCB線差點導致新方案流產(chǎn)…… 現(xiàn)在處理器的速度越來越高,信號電平也越來越低,管腳阻抗也非常高,管腳外連的引線接收到的細小干擾或?qū)苣_負載的改變,都可能導致異常。在處理輸入管腳的時候,即便管腳內(nèi)部有上拉或下拉,也需要格外注意,盡量不要留多余走線,重要輸入信號要加上拉或下拉電阻。 |