AT91SAM9263調試總結
深圳市英貝德科技有限公司
2009年2月
今天總算可以寫一個總結了。
前天周五的時候,在百特雷工,和劉工的大力支持下,總算把SPI啟動的問題解決了。
到底是什么問題呢:
SPI DATA FLASH本身的質量有問題造成的。
反映的現象是:從SPI DATAFLASH的0地址讀取數據是沒有任何問題的,但是如果從中間任何一段讀取數據,就有嚴重的地址偏移問題。
調試過程及步驟如下:
原來認為是CPU(AT91SAM9263有A版本和B版本)版本有問題,造成無法讀取FLASH造成,反饋的現象是:
當DATA FLASH啟動后,會將*段代碼EBOOT.nb0,存放于DATA FLASH的0X5000偏移地址,加載后,會進行WINCE的引導。
但是實際結果是:
從現象上看,DATA FLASH已經找到了,也就說明SPI線路是正確的,但是為什么讀的數據有問題呢?
懷疑問題有如下幾個:
*:DATA FLASH的SPI本身硬件有問題,可能存在干擾。
第二:在從DATA FLASH拷貝數據到SDRAM中,出現錯誤,數據不正確,SDRAM初始化有問題。
第三:因我們的SPI線路和以前的版本不同,采用了MAX3002進行了隔開,懷疑MAX3002本身造成SPI線路的 不穩定。
第四:CPU版本有問題,AT91SAM9263從A到B版本,SPI已經改過了,就我知道的是AT91SASM9263 B版本的SPI,需要兩次復位才可以工作。
一個一個懷疑的問題進行驗證:
*:SAM BA 2.8可以對SDRAM進行初始化,都可以進行讀寫,說明SDRAM本身硬件上無問題。
第二:DATA FLASH ,SAMBA 2.8都可以進行讀寫,也無任何問題,同時啟動代碼可以正確執行。那么就應該可以證明SPI部分是能夠工作的,但是問題在于AT91SAM9263 B版本內部的ROM BOOT和AT91SAM9263 A版本的ROM BOOT有不同,那么就證明說:在SPI這個部分的初始化部分做了修正。所以,找到AT91SAM9263 B版本的SPI部分的ERR DATA SHEET。找問題。改了半天代碼,問題還是依舊。
第三:實在沒有辦法了,2008年11月18日,找到百特的雷工,初步認定是CPU版本的問題,我自己認為自己的代碼水平比較落后,請求雷工幫忙,zui后驗證結果如下:
從DATA FLASH讀出的數據,放到SDRAM后出現了問題,我們以前的老板子,是無問題的??梢哉_將數據從DATA FLASH讀出來,然后,顯示在串口上。每次從DATA FLASH中讀10個字節,發現讀出來的數據每次都是一致的,但是就是不正確。
沒有辦法,雷工也是好久沒有寫代碼了,只好約好第二天,到白特找他們的工程師劉工,劉工是我老鄉,真的夠朋友,那天晚上搞到半夜,zui后驗證出來,現象是:從DATA FLASH偏移0X8000地址中讀取的數據放到SDRA M中,某一個位置找到差不多的數據。zui后給出結果:可能是AT91SAM9263 B版本可能有問題,但是zui大的問題是:SDRAM工作后,影響了SPI的穩定性。
第四:太晚了,大家都各自回家了(這個時候我找百特定好了A版本的CPU,說是他們現在沒貨,第二天能送來),實在是沒有任何頭緒了,沒有辦法,趕快定了CPU,AT91SAM9263 A版本,恰好,百特沒有貨,他們老板從香港定來后,我們拿到,趕快去貼上,這個過程不過是1天的時間,下午了,下午3點就搞好,帶上測試軟件,跑到李工(我們焊接的師傅)那里,把工具全部架好,一測試,郁悶死了,竟然還是不行。天呀……
第五:看來A版本也不行,那只能懷疑是板的布線有問題了,因為沒有別的辦法可以想了,這個時候,我反倒放松了,因為我認為問題已經找到了。但是,到底是SPI的哪條線受到了干擾呢?我對百特劉工的話深信不已。實在沒有辦法,上午我趕快拿著A版本的板子跑到百特,找到劉工,(想把他驗證的結果再重演一下,劉工改了半天,發現是從DATA FALSH的0地址,讀出來數據放到SDRAM中是無問題的,一直也懷疑SDARM初始化有問題)根據這幾天的測試結果,發現有一個疑點,我發現A版本的芯片,我寫了一個小程序,從DATA FLASH中讀取數據放到SRAM中也是不正確的。而且,和以前的測試結果*一樣。一直懷疑和芯片有關系,現在看,可以*排除芯片AT91SAM9263的問題了。
第六:從DATA FLASH中讀取數據放到SRAM中也是不正確的(我把SDRAM關閉了),我就推翻了劉工說的SDRAM對SPI DATA FLASH有干擾想法。
劉工發現是從DATA FALSH的0地址,讀出來數據放到SDRAM中有大部分是相同的,這次把代碼全部恢復過來,把DATA FLASH的0地址的數據放到0X23F00000(LINUX引導程序U-BOOT的地址)-0X8000的位置,這樣,就可以保證在0X23F00000的位置上,有正確的U-BOOT程序。但是,等程序運行起來,還是沒有得到正確的啟動結果。有可能是有部分數據讀出來后,還是有不正確的。
第七,實在是沒有辦法了,我們開始懷疑DATA FLASH有問題,恰好,我也問過我們的LISA(LISA是我們的采購,我原來一直認為這個DATA FLASH是從百特采購的,zui后發現這個東西是從市場上采購來的,我很暈了,但是當時問LISA的時候,我沒有放在心上,LISA說這個芯片是原裝的),恰好我帶上了一個我們老版本的板子,將老版本的板的DATA FLASH換上去后,*OK了。
到現在為止:一個郁悶了我兩個星期的問題終于解決了。
感謝百特雷工的幫忙和劉工的幫忙。說這個事情,已經是下午4點的事情了,買了百特的DATA FLASH,回到公司,趕快讓他們全部換上新的DATA FLASH。問題解決了。
上一篇:泵選型程序及考慮因素
下一篇:船用控制電纜國家標準及規定
全年征稿/資訊合作
聯系郵箱:1271141964@qq.com
免責聲明
- 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
- 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
- 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
2025中國鄭州衡器與計量技術設備展覽會
展會城市:鄭州市展會時間:2025-11-07