高密度SPI EEPROM——SA25C020的DSP引導
介紹TMS320VC55XX系列DSP基于24位高密度SPI EEPROM——SA25C020的引導、啟動加栽方法;分析整個過程,并結(jié)合實例著重研究基于C5509A的引導、加栽方法和實現(xiàn);提供具體的電路設計和鳊制的相應實現(xiàn)軟件。
引 言DSP的引導是涉及DSP獨立工作的關(guān)鍵性問題,通常采用的方法是由Flash等器件引導的,但是相對Flash的占用空間大、扇區(qū)擦除的難度和時延來說,SPI EEPROM不失為一個好的選擇。傳統(tǒng)EEPROM的容量太小,無法充分利用DSP的程序空間。SA25C020的2Mb SPI EEPROM是以色列的SaifunSemiconductor公司于2005年推出的高密度EEPROM產(chǎn)品,是業(yè)界首個結(jié)合小型SO8封裝、低功耗和高性能特點的器件,專為需要高耐用性和低功耗的應用而設計和測試,針對持續(xù)可靠的非揮發(fā)性存儲方案。它的價位接近閃存(Flash),加上其節(jié)省空間的封裝形式,使得它成為DSP引導的一個新的選擇。TI公司的TMS320VC5509A是一款集成了A/D、USB接口等的便攜式DSP。最重要的是它支持24位的SPI EEPROM引導。這兩款芯片的結(jié)合,易于形成空間小、功耗低的便攜式解決方案,有助于新的小型化、低功耗應用的實現(xiàn),如硬盤、光盤(包括DVD)、機頂盒、打印機、游戲卡以及無線產(chǎn)品。1 引導系統(tǒng)硬件設計DSP引導系統(tǒng)硬件配置框圖如圖1所示。其中TMS320VC5509A有兩種封裝形式,此處采用PGE3形式。一個可以獨立運行的DSP系統(tǒng)必須包括:◇DSP芯片;◇電源、時鐘以及必要的初始化外圍設置;◇用于引導的非易失性的程序存儲器,如本設計中采用的SA25C020;◇JTAG接口用于外部下載程序。2 引導關(guān)鍵技術(shù)引導主要步驟如下:①利用CCStudi02.O建立應用程序,并產(chǎn)生*.out文件;②建立引導表,生成相關(guān)文件;③將引導表轉(zhuǎn)換為DSP可以加載的數(shù)據(jù)格式,生成*.dat文件;④利用CCStudi02.O建立EEPROM燒寫程序,將引導表寫到EEPROM中。2.1 引導程序制作制作一個被加載的工程xf。程序的功能是使DSP的XF腳接的LED閃爍。主要調(diào)用程序如下:編譯工程,在工程文件xf/Debug文件夾中生成xf.out文件。2.2 引導表(boot table)制作構(gòu)造引導表的方法有兩種:一種是使用hex conversion utmty;另外一種是根據(jù)boot table的結(jié)構(gòu)自己在SPIEEPROM燒寫程序中進行構(gòu)造。對于第2種,需要構(gòu)造者充分掌握引導表的構(gòu)造(詳情請見參考文獻[1],第17頁)。這里僅說明使用hex converslon utility制作引導表的方法。下面闡述制作引導表所需要的環(huán)境和操作。2.2.1 hex conversion utility數(shù)據(jù)轉(zhuǎn)換工具hex conversion utllity是TI公司CCS中本身帶有的一個數(shù)據(jù)轉(zhuǎn)換工具。它有幾個版本。對于C54xx使用的hex500.exe,其絕對位置在\ti\c5400\cgtools\bin\hex500.exe;對于C55xx使用的hex55.exe,其位置一般在\ti\c5500\cgtools\bin\hex55.exe。使用hex conversion utility工具還需要以下文件:①*.out文件,是CCS編譯好的要存入EEPROM的DSP可執(zhí)行文件。這個文件對于bex conversion utility是數(shù)據(jù)源文件。②*.cmd文件,用來填寫hex conversion utility工具執(zhí)行時的命令參數(shù)的文件。這些命令參數(shù)也可以在命令執(zhí)行時寫在命令的后面,而不采用*.cmd文件。③輸出文件是hex conversion utility生成的文件,可以是多種文件格式,在*.cmd文件的-o參數(shù)中設置,如ASCII-Hex、Intel、Motorola-Sl/S2/S3、TI-Tagged、Tektronix等。這里選用輸出文件為Intel格式。2.2.2 制作過程在2.1節(jié)中已經(jīng)制作好了xf.out文件。下面建立xf.cmd文件,內(nèi)容如下:編寫好xf.cmd文件后,將hex55.exe、xf.out、xf.cmd放在同一個目錄下。進入命令行并且到上述3個文件所在的目錄下,執(zhí)行命令“hex55 xf.cmd”,如圖2所示。這樣就可得到輸出的引導表文件xf.io。2.3 引導表數(shù)據(jù)轉(zhuǎn)換引導表制作成功以后,其數(shù)據(jù)并不能被DSP直接讀寫,而需要把它轉(zhuǎn)換成DSP可以讀寫的格式(即CCS數(shù)據(jù)文件格式),才能把這些數(shù)據(jù)燒寫到存儲器中。這就需要對引導表文件進行數(shù)據(jù)轉(zhuǎn)換。xf.io的數(shù)據(jù)格式如下(其中黑體字為有效數(shù)據(jù)):CCS數(shù)據(jù)文件由CCS文件頭和數(shù)據(jù)兩部分構(gòu)成。文件頭指明文件類型、數(shù)據(jù)類型、起始地址和長度等信息,后為數(shù)據(jù),每個數(shù)據(jù)占l行。以下即為CCS數(shù)據(jù)文件的文件頭格式:采用VC++編寫程序DSP_dataconvert進行數(shù)據(jù)格式轉(zhuǎn)換,將Intel格式的數(shù)據(jù)轉(zhuǎn)換為DSP可以加載的數(shù)據(jù)格式。以下為CCS的數(shù)據(jù)格式,粗體字為有效數(shù)據(jù)。165ll 4000 114f;1651文件類型,1表示十六進制格式2.4 SPI EEPROM燒寫程序SPI EEPROM讀過程操作一般要先執(zhí)行WREN命令,打開寫使能信號,RDSR讀取寄存器狀態(tài)信號,WRITE寫EEPROM。SA25C020的指令結(jié)構(gòu)和讀寫過程與普通的16位指令結(jié)構(gòu)和讀寫過程是兼容的,只是在寫地址時SA25C020的是24位的。一般燒寫程序中的執(zhí)行順序為:WREN→RDSR→WRITF24位EEPROM具體寫程序如下:3 結(jié) 論本設計方案大大節(jié)省了設計空間,降低了功耗,經(jīng)過實際安裝與調(diào)試完全可行。說明了基于高密度SPI EEP-ROM的DSP應用系統(tǒng)獨立運行的過程。與同類的SPIEEPROM相比,具有容量大的特點;與Flash引導相比,具有讀寫、擦除簡單的特點。硬件電路具有良好的可擴展性。以此電路為基礎,可以適用于C5509A的小型化、低功耗和便攜式應用的開發(fā)。