久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

S3C2440與SDRAM NorFlash NandFlash連線分析

 XeonGate 2015-03-23

一,、SDRAM(HY57V561620F)連線分析

1,、  S3C2440 27根地址線ADDR[26:0]8根片選信號(hào)ngcs0-ngcs7,對(duì)應(yīng)bank0-bank7,當(dāng)訪bankx 的地址空間,,ngcsx引腳為低電平,,選中外設(shè)。

2^27=128MByte, 8*128Mbyte = 1Gbyte,所以S3C2440 總的尋址空間是1Gbyte,。但市面上很少有32位寬度的單片SDRAM,,一般選擇216SDRAM 擴(kuò)展得到32SDRAM.

2、這里選擇的SDARMHY57V561620F,,4Mbit * 4bank *16I/O,,共32Mbyte

首先了解下SDRAM 的尋址原理,。 SDRAM 內(nèi)部是一個(gè)存儲(chǔ)陣列,,可以把它想象成一個(gè)表

格。和表格的檢索原理一樣,,先指定行,,再指定列,就可以準(zhǔn)確找到所需要的存儲(chǔ)單元,。這個(gè)表格稱為邏輯BANK,。目前的SDRAM基本都是4個(gè)BANK。尋址的流程就是先指定BANK地址,,再

指定行地址,,最后指定列地址。這就是SDRAM的尋址原理,。存儲(chǔ)陣列示意圖如下:

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

查看HY57V561620F 的資料,,可知這個(gè)SDRAM13根行地址線 RA0-RA12, 9根列地址線CA0-CA8,2BANK選擇線 BA0-BA1

SDRAM 的地址引腳是復(fù)用的,,在讀寫SDRAM存儲(chǔ)單元時(shí),,操作過程是將讀寫的地址分兩次輸入到芯片中,每一次都由同一組地址線輸入,。兩次送到芯片上去的地址分別稱為行地址和列地址,。它們被鎖存到芯片內(nèi)部的行地址鎖存器和列地址鎖存器。

/RAS是行地址鎖存信號(hào),,該信號(hào)將行地址鎖存在芯片內(nèi)部的行地址鎖存器中,;

/CAS 是列地址鎖存信號(hào),該信號(hào)將列地址鎖存在芯片內(nèi)部的列地址鎖存器中,。

  

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

地址連線如下圖:

  

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)
 
S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

問題1:SDRAM:的A0接S3C2440的ADDR2,A0 為什么不接ADDR0,?

要理解這種接法,首先要清楚在CPU的尋址空間中,,字節(jié)(8位)是表示存儲(chǔ)容量的唯一單位,。用2HY57V561620F擴(kuò)展成32SDRAM,,可以認(rèn)為每個(gè)存儲(chǔ)單元是4個(gè)字節(jié)。因此當(dāng)它的地址線A1:A0=01 時(shí),,處理器上對(duì)應(yīng)的地址線應(yīng)為ADDR3:ADDR2=01(因?yàn)?span lang="EN-US">CPU的尋址空間是以Byte 為單位的),。所以SDRAMA0引腳接到了S3C2440ADDR2 地址線上。同理,,如果用1 HY57V561620F,,數(shù)據(jù)線是16位,因?yàn)橐粋€(gè)存儲(chǔ)單元是2個(gè)字節(jié),,這時(shí)SDRAMA0要接到S3C2440ADDR1上,。

就是說SDRAMA0S3C2440的哪一根地址線是根據(jù)整個(gè)SDRAM的數(shù)據(jù)位寬來決定的

問題2:上圖接線中,,BA0,BA1接ADDR24,ADDR25,,為什么用這兩根地址線呢?

    BA0BA1代表了SDRAM 的最高地址位,。因?yàn)?span lang="EN-US">CPU的尋址空間是以字節(jié)(Byte)為單位的,,本系統(tǒng)SDRAM容量為64MByte,那就需要A25A064M=2^26)地址線來尋址,,所以BA1BA0地址線應(yīng)該接到S3C2440ADDR25ADDR24 引腳上,。

13根行地址線 + 9根列地址線 = 22根地址線。另外HY57V561620F一個(gè)存儲(chǔ)單元是2個(gè)字節(jié)(16I/O),,相當(dāng)于有了23根地址線,。BA0,BA1是最高地址位,所以應(yīng)該接在ADDR24,ADDR25 上,。

就是說SDRAMBA0,BA1S3C2440的哪幾根地址線是根據(jù)整個(gè)SDRAM的容量來決定的,。

二、NOR FLASH(AM29LV160DB)的接線分析

       NOR FLASH 的地址線和數(shù)據(jù)線是分開的,。AM29LV160DB 是一個(gè)2Mbyte NOR FLASH,,分區(qū)結(jié)構(gòu)是:

1個(gè)16Kbyte扇區(qū),2個(gè)8Kbyte扇區(qū),,1個(gè)32Kbyte扇區(qū),,31個(gè)64Kbyte扇區(qū)(字節(jié)模式);

1個(gè)8Kbyte扇區(qū),,2 個(gè)4Kbyte扇區(qū),,1個(gè)16Kbyte扇區(qū),31個(gè)32Kbyte扇區(qū)(半字模式),;

35個(gè)扇區(qū),。引腳如下:

 S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

設(shè)計(jì)原理圖如下:

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

說明:

AM29LV160DB 47 腳是BYTE#腳,BYTE#接高電平時(shí),,器件數(shù)據(jù)位是16 位,,接低電平時(shí),,數(shù)據(jù)位是8 位。

上圖BYTE#VCC,,D0-D15 做為數(shù)據(jù)輸入輸出口,。A0-A19 是地址線,,在半字模式下,,D0-D15 做為數(shù)據(jù)輸入輸出口。因?yàn)閿?shù)據(jù)位是16 位,,A0-A19 可以選擇2^20 = 1M *2BYTE = 2Mbyte,。正好是AM29LV160DB 的容量。

S3C2440 ADDR1要接AM29LV160DB A0,。上圖中AM29LV160DB A20,,A21是空腳,分別接的是LADDR21,LADDR22,。這應(yīng)該是為了以后方便擴(kuò)展NOR FLASH 的容量,。LADDR21,LADDR22 對(duì)AM29LV160DB是沒用的。

當(dāng)BYTE#接低電平時(shí),,D0-D7 做為8 位數(shù)據(jù)輸入輸出口,,D15做為地址線A-1。相當(dāng)于有了A-1,A0-A19 21 根地址線,。這個(gè)時(shí)候S3C2440 ADDR0 應(yīng)該接在D15A-1………,,ADDR20 A1921根地址線的尋址空間是2^21 = 2Mbyte,。正好是AM29LV160DB的容量,。

三、與NAND FLASH(K9F1208)的接線分析

,、K9F1208 結(jié)構(gòu)如下圖


S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

K9F1208 位寬是8位(I/O0I/O7),。

一頁(yè):1Page = 512byte + 16byte 最后16byte是用于存儲(chǔ)校驗(yàn)碼和其他信息用的,不能存放實(shí)際的數(shù)據(jù),。

一塊有32 page1block = 32* (512byte + 16byte) =16k+512byte

K9F1208 4096 個(gè)塊:

1 device = 4096 *32* (512byte + 16byte) = (64M+2M)byte,,總共有64Mbyte可操作的芯片容量

NAND FLASH 以頁(yè)為單位讀寫數(shù)據(jù),以塊為單位擦除數(shù)據(jù),。

其引腳如下:

 
S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

S3C24440 K9F1208 的接線圖如下:

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

當(dāng)選定一個(gè)NAND FLASH 的型號(hào)后,,要根據(jù)選定的NAND FLASH 來確定S3C2440 NCON,GPG13,GPG14,GPG15 的狀態(tài)。

下圖是S3C2440 4個(gè)腳位狀態(tài)的定義

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

K9F1208 的一頁(yè)是512byte,,所以NCON 接低電平,,GPG13 接高電平。

K9F1208 需要4個(gè)尋址命令,,所以GPG14 接高電平

K9F1208 的位寬是8,,所以GPG15 接低電平,。

NAND FLASH 尋址:

對(duì)K9F1208 來說,地址和命令只能在I/O[7:0]上傳遞,,數(shù)據(jù)寬度是8 位,。地址傳遞分為4 步,如下圖:

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

說明:

1 步發(fā)送列地址,,既選中一頁(yè)512BYTE中的一個(gè)字節(jié),。512byte需要9bit來選擇,這里只用了A0 -A7,,原因是把一頁(yè)分成了2部分,,每部分256 字節(jié)。通過發(fā)送的讀命令字來確定是讀的前256 字節(jié)還是后256 字節(jié),。

當(dāng)要讀取的起始地址(Column Address)在0~255 內(nèi)時(shí)我們用00h 命令,,

當(dāng)讀取的起始地址是在256~511 時(shí),則使用01h 命令,。

一個(gè)塊有32 頁(yè),,用A9-A13 5位來選擇一個(gè)塊中的某個(gè)頁(yè)。

總共有4096 個(gè)塊,,用A14-A25 12位來選擇一個(gè)塊,。

K9F1208 總共有64Mbyte,需要A0-A25 26個(gè)地址位,。

 

例如:要讀NAND FLASH 的第5000字節(jié)開始的內(nèi)容,。

5000分解成列地址和行地址。

Column_address = 5000%512 = 392

因?yàn)?/span>column_address>255,所以用01h 命令讀

Page_address = (5000>>9) = 9

發(fā)送命令和參數(shù)的順序是:

NFCMMD = 0x01;從后256 字節(jié)開始讀

NFADDR = column_address & 0xff;column_address 的低8 位送到數(shù)據(jù)線

NFADDR = page_address & 0xff;發(fā)送A9-A16

NFADDR = (page_address >>8) & 0xff; 發(fā)送A17-A24

NFADDR = (page_address >> 16) & 0xff;發(fā)送A25

上面的NFCMMD,NFADDR.S3C2440 NAND FLASH 控制寄存器,。讀取的數(shù)據(jù)會(huì)放在NFDATA 中,。


四、S3C2440 開發(fā)板中SDRAM \NOR \ NAND地址分配

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

1SDRAM地址分配

這是S3C2440 的存儲(chǔ)器地址分配圖,,SDARM只能接在BANK6 BANK7,。

從分析SDRAM接線圖可以看到,SDRAM接的是ngcs6,,也就是接在BANK6,,因?yàn)檫x擇的SDRAM 232Mbyte,總?cè)萘渴?/span>64Mbyte,,所以SDRAM 的地址范圍是0x3000 0000 --- 0x33ff ffff,。

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

2NORFLASH地址分配

S3C2440啟動(dòng)方式如下:

S3C2440與SDRAM NorFlash NandFlash連線分析 - zhoufeng332@126 - 楓之技術(shù)

上文講述的NORFLASH 16bit 數(shù)據(jù)位寬,選擇從NOR FLASH 啟動(dòng),,所以

OM0 VDD,,OM1 VSS

從分析NOR FLASH 接線的接線圖可看到,,NOR FLASH接的ngcs0,也就是接在BANK0,。因?yàn)檫x擇NORFLASH2Mbyte,,所以NOR FLASH 的地址范圍是0x0000 0000 --- 0x001f ffff

上電時(shí),,程序會(huì)從Norflash中啟動(dòng),,ARM直接取Norflash 中的指令運(yùn)行。

3NANDFLASH地址分配

最后來看NANDFLASH,,NANDFLASH 以頁(yè)為單位讀寫,,要先命令,再給地

址,,才能讀到NAND 的數(shù)據(jù),。NANDFLASH是接在NANDFLASH 控制器上而不是系統(tǒng)總線上,,所以沒有在8 個(gè)BANK 中分配地址,。如果S3C2440 被配置成從Nand Flash 啟動(dòng), S3C2440 Nand Flash 控制器有一個(gè)特殊的功能,S3C2440 上電后,Nand Flash 控制器會(huì)自動(dòng)的把Nand Flash 上的前4K 數(shù)據(jù)搬移到4K 內(nèi)部SRAM ,系統(tǒng)會(huì)從起始地址是0x0000 0000 的內(nèi)部SRAM 啟動(dòng)。

程序員需要完成的工作,是把最核心的啟動(dòng)程序放在Nand Flash 的前4K 中,,也就是說,你需要編寫一個(gè)長(zhǎng)度小于4K 的引導(dǎo)程序,作用是將主程序拷貝到SDRAM 中運(yùn)行,。由于NandFlash 控制器從NandFlash中搬移到內(nèi)部RAM的代碼是有限的,所以在啟動(dòng)代碼的前4K ,我們必須完成S3C2440 的核心配置以及把啟動(dòng)代碼(U-BOOT)剩余部分搬到RAM中運(yùn)行。

至于將2440 當(dāng)做單片機(jī)玩裸跑程序的時(shí)候,,就不要做這樣的事情,,當(dāng)代碼小于4K 的時(shí)候,只要下到nand flash 中就會(huì)被搬運(yùn)到內(nèi)部RAM 中執(zhí)行了,。

不管是從NOR FLASH啟動(dòng)還是從NANDFLASH 啟動(dòng),,ARM都是從0x0000 0000 地址開始執(zhí)行的。 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多