嵌入式系統flash接口電路的實(shí)現
HY29LV160的RESET#端接系統復位信號;
OE#端接S3C4510B的nOE(Pin72);
WE#端S3C4510B的nWBE0>(Pin100);
BYTE#上拉,使HY29LV160工作在字模式(16位數據寬度);
RY/BY#指示HY29LV160編程或擦除操作的工作狀態(tài),但其工作狀態(tài)也可通過(guò)查詢(xún)片內的相關(guān)寄存器來(lái)判斷,因此可將該引腳懸空;
地址總線(xiàn)[A19~A0]與S3C4510B的地址總線(xiàn)[ADDR19~ADDR0]相連;
16位數據總線(xiàn)[DQ15~DQ0]與S3C4510B的低16位數據總線(xiàn)[XDATA15~XDATA0]相連。
注意此時(shí)應將S3C4510B的B0SIZE[1:0]置為“10”,選擇ROM/SRAM/FLASH Bank0為16位工作方式。
1.3.2. 32位的FLASH存儲器系統
作為一款32位的微處理器,為充分發(fā)揮S3C4510B的32性能優(yōu)勢,有的系統也采用兩片16位數據寬度的Flash存儲器芯片并聯(lián)(或一片32位數據寬度的Flash存儲器芯片)構建32位的Flash存儲系統。其構建方式與16位的Flash存儲器系統相似。
采用兩片HY29LV16并聯(lián)的方式構建32位的FLASH存儲器系統,其中一片為高16位,另一片為低16位,將兩片HY29LV16作為一個(gè)整體配置到ROM/SRAM/FLASH Bank0,即將S3C4510B的nRCS0>(Pin75)接至兩片HY29LV16的CE#端;
兩片HY29LV160的RESET#端接系統復位信號;
兩片HY29LV160的OE#端接S3C4510B的nOE(Pin72);
低16位片的WE#端接S3C4510B的nWBE0>(Pin100),高16位片的WE#端接S3C4510B的nWBE2>(Pin102);
兩片HY29LV160的BYTE#均上拉,使之均工作在字模式;
兩片HY29LV160的地址總線(xiàn)[A19~A0]均與S3C4510B的地址總線(xiàn)[ADDR19~ADDR0]相連;
低16位片的數據總線(xiàn)與S3C4510B的低16位數據總線(xiàn)[XDATA15~XDATA0]相連,高16位片的數據總線(xiàn)與S3C4510B的高16位數據總線(xiàn)[XDATA31~XDATA16]相連。
注意此時(shí)應將S3C4510B的B0SIZE[1:0]置為“11”,選擇ROM/SRAM/FLASH Bank0為32位工作方式。
2.S3C4510B系統管理器關(guān)于存儲器映射的工作原理
當系統設計制作完成時(shí),必須經(jīng)過(guò)仔細的調試,才能保證系統按照設計意圖正常工作。盡管系統的調試與個(gè)人對電路工作原理的理解和實(shí)際的電路調試經(jīng)驗有很大的關(guān)系,但一定的調試方法也是必不可少的。掌握正確的調試方法可使調試工作變得容易,大大縮短系統的開(kāi)發(fā)時(shí)間,反之,可能會(huì )使整個(gè)系統的開(kāi)發(fā)前功盡棄,以失敗告終。
在系統的兩類(lèi)存儲器中,SDRAM相對于FLASH存儲器控制信號較多,似乎調試應該困難一些,但由于SDRAM的所有刷新及控制信號均由S3C4510B片內的專(zhuān)門(mén)部件控制,無(wú)需用戶(hù)干預,在S3C4510B正常工作的前提下,只要連線(xiàn)無(wú)誤,SDRAM就應能正常工作,反之,Flash存儲器的編程、擦除操作均需要用戶(hù)編程控制,且程序還應在SDRAM中運行,因此,應先調試好SDRAM存儲器系統,再進(jìn)行Flash存儲器系統的調試。
基于S3C4510B系統的最大可尋址空間為64MB,采用統一編址的方式,將系統的SDRAM、SRAM、ROM、Flash、外部I/O以及片內的特殊功能寄存器和8K一體化SRAM均映射到該地址空間。為便于使用與管理,S3C4510B又將64MB的地址空間分為若干個(gè)組,分別由相應的特殊功能寄存器進(jìn)行控制:
?。?) ROM/SRAM/Flash組0~ROM/SRAM/Flash組5,用于配置ROM、SRAM或Flash,分別由特殊功能寄存器ROMCON0~ROMCON5控制;
?。?)DRAM/SDRAM組0~DRAM/SDRAM組3用于配置DRAM或SDRAM,分別由特殊功能寄存器DRAMCON0~DRAMCON3控制;
?。?)外部I/O組0~外部I/O組3用于配置系統的其他外擴接口器件,由特殊功能寄存器REFEXTCON控制;
?。?)特殊功能寄存器組用于配置S3C4510B片內特殊功能寄存器的基地址以及片內的8K一體化SRAM,由特殊功能寄存器SYSCFG控制;
在系統中,使用了Flash存儲器和SDRAM,分別配置在ROM/SRAM/FLASH組0和DRAM/SDRAM組0,暫未使用外擴接口器件。
3基于S3C4510B的嵌入式系統Flash存儲器接口電路的調試
Flash存儲器的調試主要包括Flash存儲器的編程(燒寫(xiě))和擦除,與一般的存儲器件不同,用戶(hù)只需對Flash存儲器發(fā)出相應的命令序列,Flash 存儲器通過(guò)內部嵌入的算法即可完成對芯片的操作,由于不同廠(chǎng)商的Flash存儲器在操作命令上可能會(huì )有一些細微的差別,Flash存儲器的編程與擦除工具一般不具有通用性,這也是為什么Flash接口電路相對較難調試的原因之一,因此,應在理解Flash存儲器編程和擦除的工作原理的情況下,根據不同型號器件對應的命令集,編寫(xiě)相應的程序對其進(jìn)行操作。
若使用SDT調試環(huán)境,調試過(guò)程與上述步驟相似。
>obey C:memmap.txt
打開(kāi)AXD Debugger的命令行窗口,執行obey命令:
此時(shí),2MB的Flash存儲器映射到地址空間的0x0000,0000~0x001F,FFFF處,選擇菜單Processor Views→Memory選項,出現存儲器窗口,在存儲器起始地址欄輸入Flash存儲器的映射起始地址:0x0,數據區應顯示Flash存儲器中的內容,若Flash存儲器為空,所顯示的內容應全為0xFF,否則應為已有的編程數據。雙擊其中的任一數據,輸入新的值,對應存儲單元的內容應不能被修改,此時(shí)可初步認定Flash存儲器已能被訪(fǎng)問(wèn),但是否能對其進(jìn)行正確的編程與擦除操作,還需要編程驗證,通過(guò)程序對Flash存儲器進(jìn)行編程和擦除操作。
4結束語(yǔ)
這樣整個(gè)基于的嵌入式系統Flash存儲器接口電路的調試基本上完成了,當然對于不同的系統,操作是略有不同的,我們可以根據所要開(kāi)發(fā)或使用的嵌入式系統模式,進(jìn)行適當的調整,保證我們正確的使用Flash存儲器。
存儲器相關(guān)文章:存儲器原理
評論