摘 要:本文介紹了AT25HP512 EEPROM芯片的主要特點、功能及其工作原理,描述了ADSPBF533的引導(dǎo)模式選擇,并詳細(xì)分析了SPI口引導(dǎo)的過程,最后給出了ADSP BF533與AT25HP512 EEPROM的SPI口引導(dǎo)的接口方法及原理說明。
關(guān)鍵詞:自舉引導(dǎo);SPI;AT25HP512;ADSP BF533
為了充分利用DSP快速運行的優(yōu)點,通常希望用戶程序能在DSP中高速運行,這就需要運用DSP的引導(dǎo)功能對用戶程序?qū)崿F(xiàn)快速引導(dǎo)。當(dāng)對集成電路板的設(shè)計尺寸有嚴(yán)格限制時,采用常用的并行EEPROM引導(dǎo)將不能很好地解決此問題,由于串行接口的EEPROM芯片封裝體積較小,所以在這里提出了采用SPI串行接口的引導(dǎo)方式。ATMEL公司的AT25HP512是容量為64K 8bit 的SPI串行EEPROM。另外,AD公司推出的ADSP BF533是一款具有SPI等接口引導(dǎo)功能的DSP。自舉引導(dǎo)程序Loader Kernel是DSP在出廠前固化在DSP 芯片內(nèi)ROM 區(qū)的一段程序代碼,主要功能是在DSP上電或者復(fù)位時將用戶程序從外部(如EEPROM)加載到程序存儲器(片內(nèi)RAM或擴展的RAM)中,以便實現(xiàn)高速運行。ADSP BF533可以在8位或16位的FLASH/PROM,8位,16位或24位地址的SPI接口的EEPROM和16位的外部存儲器進(jìn)行自舉引導(dǎo)。
主要特點及引腳說明
AT25HP512 EEPROM 的主要特點包括以下幾個方面: (1) 讀寫時鐘速率可達(dá)10MHz; (2) 支持低電壓工作模式 (3) 64K 8bit 容量;(4) 可編程的硬件寫保護(hù)和片內(nèi)的偶然性的寫保護(hù)功能;(5) 支持SPI 接口模式0和模式3; (6) 擦寫次數(shù)可達(dá)10萬次和數(shù)據(jù)保存期超過40年; (7) 有8引腳的SOIC、16 引腳的SOIC、8引腳的Leadless Array等多種封裝方式。本文主要介紹的是8引腳的SOIC封裝的AT25HP512 EEPROM。其引腳排列如圖1 所示,引腳功能見表1所列。
圖1 AT25HP512的引腳排列(略)
表1:AT25HP512引腳功能說明(略)
工作原理和操作指令集
AT25HP512是一種基于SPI 口連接和容量為64K 8bit的EEPROM,內(nèi)部有一個8bit的指令寄存器,通過串行輸入口SI在時鐘信號SCK的上升沿鎖存住比特位。在通信的過程中片選信號CS必須置低,而HOLD和寫保護(hù)WP保持為高電平。指令、地址和數(shù)據(jù)的傳送是按8bit 的串行數(shù)據(jù)格式進(jìn)行,且均以最高有效位在先的方式傳送。表2列出了AT25HP512的指令集。
表2:AT25HP512的指令集(略)
指令傳輸給AT25HP512。后面跟著的16bit地址分兩次發(fā)送,第一次低8bit,第二次高8bit。當(dāng)READ指令和16bit的地址發(fā)送出去后,存儲在以選擇地址開始的數(shù)據(jù)就會從串行數(shù)據(jù)輸出SO口發(fā)出。當(dāng)最高的地址位FFFF到達(dá)時,地址計數(shù)器就會跳轉(zhuǎn)到0000地址而作無限長時間的循環(huán)讀操作,直到片選信號CS置為高電平為止。AT25HP512的讀操作時序如圖2所示。
圖2 ATHP512的讀寫時序(略)
自舉引導(dǎo)的模式選擇
當(dāng)DSP上電或復(fù)位(硬件復(fù)位和軟件復(fù)位)時,ADSP BF533的兩個引腳BMODE0和BMODE1的最終狀態(tài)決定ADSP BF533的引導(dǎo)方式,如表3所列。在時鐘的上升沿對這兩個引腳進(jìn)行采樣并將采樣結(jié)果存放到系統(tǒng)配置寄存器的對應(yīng)位中。
表3:ADSP BF533自舉引導(dǎo)模式選擇(略)
因為ADSP BF533沒有片內(nèi)程序存儲器,用戶的代碼必須通過外部的存儲器來進(jìn)行引導(dǎo),當(dāng)用戶程序較大,可以選用大容量的flash來充當(dāng)程序存儲器,當(dāng)用戶程序不是很大,而且對電路板的尺寸有嚴(yán)格限制時,則一般選用SPI串行接口的EEPROM來充當(dāng)程序存儲器。
SPI引導(dǎo)方式分析
圖3給出了ADSP BF533引導(dǎo)文件生成的順序和流程。在VISUAL DSP++的集成開發(fā)環(huán)境中,通過工具loader,可以將用戶的可執(zhí)行文件(.dxe)轉(zhuǎn)換成 可以實現(xiàn)自引導(dǎo)的用戶程序(.ldr)。該文件是由很多個數(shù)據(jù)塊組成,引導(dǎo)數(shù)據(jù)流其描述如表4所示,每個數(shù)據(jù)塊的起始處都有一個10個字節(jié)的Header,其結(jié)構(gòu)定義如表5所示。通過對每個數(shù)據(jù)塊Header清楚的定義,這樣就可以方便的知道該塊的放置的起始地址,字節(jié)數(shù),是否是結(jié)束數(shù)據(jù)塊等重要信息。
圖3 ADSP BF533的引導(dǎo)順序(略)
DSP上電或復(fù)位后,處理器首先在BOOT ROM開始執(zhí)行自舉引導(dǎo)程序,根據(jù)表3所列的條件以判斷采樣那種引導(dǎo)方式,以下主要分析SPI接口引導(dǎo)過程。用戶程序加載在外部EEPROM(AT25HP512)中,如果選擇SPI引導(dǎo),則自舉引導(dǎo)程序BOOT ROM將作以下設(shè)置:(1)處理器的SPI作為主機;(2)接收字長為8位;(3)MSB先接收;(4)SPI數(shù)據(jù)傳輸速率為SCLK外部時鐘/266;(5)低電平激活串口時鐘等。這樣與通用的的SPI串口EEPROM相兼容。
表4:引導(dǎo)數(shù)據(jù)流的描述(略)
表5:ADSP BF533引導(dǎo)文件塊首(Header)(略)
SPI引導(dǎo)過程及其流程圖
當(dāng)DSP上電或者復(fù)位時,程序轉(zhuǎn)入到SPI引導(dǎo)子程序的入口處,通過SPI口向EEPROM發(fā)送讀命令,然后判斷SPI接的是8位,16位還是24位地址的EEPROM,然后通過分析Header,主要是其中16位的FLAG標(biāo)志位來處理這些引導(dǎo)流中數(shù)據(jù)塊,完成最后的數(shù)據(jù)塊的傳遞,完成整個SPI的引導(dǎo)。然后程序指針跳轉(zhuǎn)到0xFFA00000,可以去執(zhí)行引導(dǎo)進(jìn)來的用戶程序了,整個引導(dǎo)過程的流程圖如圖4所示。
圖4 ADSP BF533的SPI引導(dǎo)流程圖(略)
下面詳細(xì)介紹啟動過程中SPI口對8位,16位或24位地址的EEPROM是如何判斷的,這對解決引導(dǎo)過程中出現(xiàn)的一些問題,十分有幫助。當(dāng)DSP上電或復(fù)位時,DSP首先向EEPROM發(fā)送讀命令(0x03),讀取0x00地址的內(nèi)容,然后判斷接收到的數(shù)據(jù)是否是0x00,如果是,則說明是8位地址的EEPROM,否則再發(fā)一個0x00,然后判斷接收到的數(shù)據(jù)是否是0x00,如果是,則說明是16位地址的EEPROM,否則再發(fā)一個0x00,然后判斷接收到的數(shù)據(jù)是否是0x00,如果是,則說明是24位地址的EEPROM,否則,不能判斷其EEPROM,引導(dǎo)失敗。這樣就可以通過示波器清楚的看到引導(dǎo)過程中的時序,當(dāng)然這要求ADSP BF533與EEPROM硬件正常連接。下面將對其接口方法做出詳細(xì)說明。
SPI引導(dǎo)的接口方法及原理說明
下來簡單給出ADSP BF533與AT25HP512EEPROM接口方法,如圖5所示。
如前所述,在引導(dǎo)的整個過程中, AT25HP512作為從機, ADSP BF533作為主機,所以EEPROM的輸出口SO和輸入口SI就必須分別與DSP的MISO口和MOSI口直接連接;前者的SCK口與后者的SCK口連接,要說明的是EEPROM的輸出口SO必須接一個上拉電阻;VSS和VCC分別接地和3.3V電源;片選信號CS直接與ADSP BF533的可編程控制的PF2口連接;寫保護(hù)引腳WP和保護(hù)輸入引腳HOLD分別用上拉電阻將它拉高,這樣這兩個引腳在工作過程中將不起作用,因為在引導(dǎo)的過程中不需要對AT25HP512進(jìn)行寫操作。
圖5 ADSP BF533與AT25HP512的連接方式(略)
從AT25HP512的讀指令時序圖可看出,當(dāng)ADSP BF533上電或重啟動后, AT25HP512的片選信號將從高電平轉(zhuǎn)為低電平以選通此芯片,即AT25HP512這時處于工作狀態(tài)。然后ADSP BF533通過給SPI口的發(fā)送緩沖寄存器SPI_TDBR發(fā)送READ指令來激活傳輸。從讀指令時序圖中AT25HP512的SI引腳時序上可以看出,然后發(fā)送的是16bit的地址以確定要從AT25HP512中哪個地址開始讀數(shù)據(jù)。這時AT25HP512將從起始地址為開始的存儲空間讀數(shù)據(jù)到輸出引腳SO上,經(jīng)過DSP的MISO口傳輸?shù)紸DSP BF533的SPI接收緩寄存器SPI_RDBR中,當(dāng)SPI_RDBR滿時,DMA將自動地從其中讀取數(shù)據(jù),以完成數(shù)據(jù)的傳輸及引導(dǎo)。
基于AT25HP512 EEPROM的ADSP BF533的SPI串行引導(dǎo)是一種連線簡單,引導(dǎo)過程易控制的引導(dǎo)方式,而且提供了64K字節(jié)的較大容量,基本能夠滿足普通應(yīng)用程序的要求,與它兼容的還有一款A(yù)T25HP256,它們只有在容量上的差別,容量為32K字節(jié)。它們都提供了較小的封裝形式,特別適用于對系統(tǒng)體積有嚴(yán)格限制的集成電路。 |