首先是整個系統(tǒng)的設(shè)計,大多數(shù)的應(yīng)用應(yīng)該都是包括電源,外部ram,flash,dsp,外部IO芯片看門狗,晶振這幾個部分。
電源芯片的選擇要看整個設(shè)計中需要幾種電源,整個系統(tǒng)的功耗要大致計算一下,同時還要區(qū)分模擬電源與數(shù)字電源,我用了兩個LM1085分別作為數(shù)字電源和模擬電源,dsp的電源用了一個tps318。
ram,flash,IO芯片的連接按照地址總線和數(shù)據(jù)總線連接好就可以了,它們的片選和讀寫線接到cpld上面,根據(jù)dsp芯片的程序空間與地址空間的劃分分配好flash,ram的映射關(guān)系。這個空間的劃分會體現(xiàn)在硬件的連線上,cpld控制的片選,讀寫邏輯實現(xiàn),以及dsp編程中的memorymap中。
MP/MC的接法:
剛開始做的時候,我把MP/MC接地了,有的人告訴我說要劃線了,應(yīng)該做成跳線。幸虧我后來試了一下,發(fā)現(xiàn)還是可以調(diào)試的。我感覺MP/MC接高接低,影響的是系統(tǒng)的復(fù)位,如果接低,復(fù)位時要求bootload,調(diào)試時當(dāng)讓不可能成功,于是程序就會掛掉。但如果在調(diào)試程序中合適的加入喂狗操作或者暫時不接看門狗,調(diào)試應(yīng)該就沒有問題。如果MP/MC接高,復(fù)位時程序直接從程序區(qū)執(zhí)行,不進行bootload,也沒問題。
flash的燒寫:
調(diào)試都完成了,最后一步就是將程序燒進flash中,花了一周功夫終于搞定,呵呵,還是在別人寫的代碼基礎(chǔ)上,夠菜的了。我用的方法是將板上的程序和flash燒寫程序分別生成兩個.out文件,先利用ccs的load programme,將板上程序load進來,然后再load進flash燒寫程序,兩個都load進程序空間由于我的程序比較小,放在程序與數(shù)據(jù)區(qū)共享的dram區(qū)了,然后執(zhí)行flash燒寫程序,就可以將boot表寫進flash中了。
還有一些小地方,比如flash要在bootload后從數(shù)據(jù)區(qū)去掉,我用的是xf管腳,上電默認(rèn)為高。bootload完畢我在程序起始的地方用軟件置其為低,就可以實現(xiàn)了,不知道還有沒有更好的方法。對于IO的操作,以及vectors.asm, cmd文件的編寫,我都是找個例子看,然后結(jié)合自己的程序改了一下。
感覺還是有進步,但很多地方也還是沒有搞的特別清楚,說的不對的請大家指正,希望能和大家多交流!
如果需要我的程序或電路圖,可以聯(lián)系我。sr_sleeper@sohu.com