問:附件為我的電路圖和VDSP++中的boot配置選擇。現(xiàn)象描述:程序在線調(diào)試無問題,通過SPI引腳對Flash芯片可成功進行讀寫操作;程序在下載的時候,用示波器觀察SPI的幾根信號線,應該有數(shù)據(jù)進入Flash芯片(DSP的MOSI有電平,有時鐘,有片選);上電或復位后,程序在被引導期間有異常(有片選,有時鐘,F(xiàn)lash芯片的輸出引腳基本沒輸出,F(xiàn)lash芯片的輸入引腳也基本沒有輸入)。說明:VDSP++中的boot配置選擇,SPI SLAVE/SPI MASTER/SPI FLASH/SPI PROM,我全都試過,都不寫,最簡單的程序都不行(我試過只點一個LED的程序)。
問:最新情況:我剛才試了一下,用評估板把程序下到一個Flash芯片(與評估板上的flash并接,除了片選),評估板運行沒問題。然后讓這個Flash為我們自己做的板子提供程序(一樣與自己板上的flash并接,除了片選),沒反應。急求Andy解決!、
答:
你在仿真狀態(tài)下,對SDRAM做遍歷操作,看是否讀寫數(shù)據(jù)正確。
你把時鐘配置的跳線,配置為最慢,看看是否能啟動。
檢查板子有沒有焊接短路或者虛焊的地方。
問:我們又焊接了一塊板子(這次請高手來焊接),今天下午進行了測試,就寫了一個簡單的點燈程序,下到板子上依然不行(已經(jīng)屏蔽了SDRAM初始化程序,默認時鐘配置為8:1最低速率)。在線調(diào)試過程,測試讀寫Flash芯片,正常。但是有這么一個情況:在線調(diào)試的時候?qū)lash下達寫指令(03h),示波器測試,寫指令03h對應8個上升沿時鐘信號;復位時鐘,DSP引導過程中,DSP首先也是向Flash下達寫指令03h(ADSP21489芯片手冊這么說的),但是這個03h對應了9個上升沿時鐘信號,而芯片手冊寫的是1個上升沿應對應1bit。因此我們猜測 21489EzFlashDriver_Serial.dxe 這個文件對引導100腳21489和引導176腳21489是不是應該不同;我現(xiàn)在使用的21489EzFlashDriver_Serial.dxe是VDSP++安裝庫提供的,之前使用評估板一直都用它。所以下午我們對21489EzFlashDriver_Serial.dpj工程中的SPI配置進行了多次小修,然后重新編譯生成21489EzFlashDriver_Serial.dxe ,但是還是不行。 急盼Andy和OP幫忙指點一二!感謝!
答:
你先生成一個確認沒有問題的LDR文件,寫入flash,最好在其他板子上測試一下看是否能啟動。(100腳的芯片沒用過,不知道他的LDR和大封裝的有何區(qū)別。暫且認定沒區(qū)別)
你把CLK_CFG 配置為11,即不使用PLL倍頻。
拆掉復位芯片,或斷開復位芯片對處理器影響,直接將RESET腳用10K上拉到電源,復位信號上飛一根線方便接地手動復位。
如果上電后不啟動,用手摸一摸芯片,看是否會觸發(fā)啟動。 其他的想不到還有什么了
答:
我這2天去問了一下ADI北京和深圳的FAE,還真就找到有曾經(jīng)的客戶碰到跟你類似的boot不起來的問題,是在21479上的,你可以參照改一下試試看。
解決辦法就是把“kernal文件”修改一下,“把user_init里的“#define EXT_MEMORY”這個宏注釋掉”,“其他都保持工程原樣,再然后使用編譯出來的debug版kernel編譯你的工程”。
21479的那個客戶是改了這個之后就boot沒問題了。
問:
問題已解決,技術手冊里,包括評估板電路,F(xiàn)lash的時鐘全部是下拉,但是。。。我們下拉就是boot不起來,后面把flash的時鐘改成上拉,問題就解決了。
疑問:是ADI的手冊寫錯了,還是因為176腳的21489設計就是要下拉,而100腳的設計就得上拉?這個OP再去跟ADI公司核實一下。
PS:設計100腳2148X的朋友要特別注意這里。
|