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