新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > SDRAM工作原理及S3C2410 SDRAM控制器配置方法

SDRAM工作原理及S3C2410 SDRAM控制器配置方法

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
SDRAM的工作原理、控制時(shí)序、及相關(guān)控制器的配置方法一直是嵌入式系統(tǒng)學(xué)習(xí)、開(kāi)發(fā)過(guò)程中的一個(gè)難點(diǎn)。掌握SDRAM的知識(shí)對(duì)硬件設(shè)計(jì)、編寫(xiě)系統(tǒng)啟動(dòng)代碼、提高系統(tǒng)存取效率、電源管理都有一定的意義。本文想通過(guò):

1.SDRAM的工作原理。
2.HY57V561620 SDRAM介紹。
3.S3C2410和HY57V561620的接線(xiàn)方法。
4.S3C2410 SDRAM控制器的配置方法。
5.SDRAM控制時(shí)序分析

本文引用地址:http://m.butianyuan.cn/article/201611/317610.htm

這5個(gè)方面來(lái)幫助初學(xué)者了解SDRAM。文章分為2篇,第1篇講解前3個(gè)知識(shí)點(diǎn),第2篇講解后2個(gè)。

一、SDRAM的工作原理

SDRAM之所以成為DRARM就是因?yàn)樗粩噙M(jìn)行刷新(Refresh)才能保留住數(shù)據(jù),因此它是DRAM最重要的操作。

那么要隔多長(zhǎng)時(shí)間重復(fù)一次刷新呢?目前公認(rèn)的標(biāo)準(zhǔn)是,存儲(chǔ)體中電容的數(shù)據(jù)有效保存期上限是64ms(毫秒,1/1000秒),也就是說(shuō)每一行刷新的循環(huán)周期是64ms。這樣刷新速度就是:行數(shù)量/64ms。我們?cè)诳磧?nèi)存規(guī)格時(shí),經(jīng)常會(huì)看到4096 Refresh Cycles/64ms或8192 Refresh Cycles/64ms的標(biāo)識(shí),這里的4096與8192就代表這個(gè)芯片中每個(gè)Bank的行數(shù)。刷新命令一次對(duì)一行有效,發(fā)送間隔也是隨總行數(shù)而變化,4096行時(shí)為15.625μs(微秒,1/1000毫秒),8192行時(shí)就為7.8125μs。HY57V561620為8192 refresh cycles / 64ms。

SDRAM是多Bank結(jié)構(gòu),例如在一個(gè)具有兩個(gè)Bank的SDRAM的模組中,其中一個(gè)Bank在進(jìn)行預(yù)充電期間,另一個(gè)Bank卻馬上可以被讀取,這樣當(dāng)進(jìn)行一次讀取后,又馬上去讀取已經(jīng)預(yù)充電Bank的數(shù)據(jù)時(shí),就無(wú)需等待而是可以直接讀取了,這也就大大提高了存儲(chǔ)器的訪(fǎng)問(wèn)速度。
為了實(shí)現(xiàn)這個(gè)功能,SDRAM需要增加對(duì)多個(gè)Bank的管理,實(shí)現(xiàn)控制其中的Bank進(jìn)行預(yù)充電。在一個(gè)具有2個(gè)以上Bank的SDRAM中,一般會(huì)多一根叫做BAn的引腳,用來(lái)實(shí)現(xiàn)在多個(gè)Bank之間的選擇。
SDRAM具有多種工作模式,內(nèi)部操作是一個(gè)復(fù)雜的狀態(tài)機(jī)。SDRAM器件的引腳分為以下幾類(lèi)。

(1)控制信號(hào):包括片選、時(shí)鐘、時(shí)鐘使能、行列地址選擇、讀寫(xiě)有效及數(shù)據(jù)有效。
(2)地址信號(hào):時(shí)分復(fù)用引腳,根據(jù)行列地址選擇引腳,控制輸入的地址為行地址或列地址。。
(3)數(shù)據(jù)信號(hào):雙向引腳,受數(shù)據(jù)有效控制。

SDRAM的所有操作都同步于時(shí)鐘。根據(jù)時(shí)鐘上升沿控制管腳和地址輸入的狀態(tài),可以產(chǎn)生多種輸入命令。

模式寄存器設(shè)置命令。
激活命令。
預(yù)充命令。
讀命令。
寫(xiě)命令。
帶預(yù)充的讀命令。
帶預(yù)充的寫(xiě)命令。
自動(dòng)刷新命令。
自我刷新命令。
突發(fā)停命令。
空操作命令。

根據(jù)輸入命令,SDRAM狀態(tài)在內(nèi)部狀態(tài)間轉(zhuǎn)移。內(nèi)部狀態(tài)包括模式寄存器設(shè)置狀態(tài)、激活狀態(tài)、預(yù)充狀態(tài)、寫(xiě)狀態(tài)、讀狀態(tài)、預(yù)充讀狀態(tài)、預(yù)充寫(xiě)狀態(tài)、自動(dòng)刷新?tīng)顟B(tài)及自我刷新?tīng)顟B(tài)。
SDRAM支持的操作命令有初始化配置、預(yù)充電、行激活、讀操作、寫(xiě)操作、自動(dòng)刷新、自刷新等。所有的操作命令通過(guò)控制線(xiàn)CS#、RAS#、CAS#、WE#和地址線(xiàn)、體選地址BA輸入。

1、行激活

行激活命令選擇處于空閑狀態(tài)存儲(chǔ)體的任意一個(gè)行,使之進(jìn)入準(zhǔn)備讀/寫(xiě)狀態(tài)。從體激活到允許輸入讀/寫(xiě)命令的間隔時(shí)鐘節(jié)拍數(shù)取決于內(nèi)部特征延時(shí)和時(shí)鐘頻率。HY57V561620內(nèi)部有4個(gè)體,為了減少器件門(mén)數(shù),4個(gè)體之間的部分電路是公用的,因此它們不能同時(shí)被激活,而且從一個(gè)體的激活過(guò)渡到另一個(gè)體的激活也必須保證有一定的時(shí)間間隔。

2、預(yù)充電

預(yù)充電命令用于對(duì)已激活的行進(jìn)行預(yù)充電即結(jié)束活動(dòng)狀態(tài)。預(yù)充電命令可以作用于單個(gè)體,也可以同時(shí)作用于所有體(通過(guò)所有體預(yù)充電命令)。對(duì)于猝發(fā)寫(xiě)操作必須保證在寫(xiě)入預(yù)充電命令前寫(xiě)操作已經(jīng)完成,并使用DQM禁止繼續(xù)寫(xiě)入數(shù)據(jù)。預(yù)充電結(jié)束后回到空閑狀態(tài),也可以再次被激活,此時(shí)也可以輸入進(jìn)入低功耗、自動(dòng)刷新、自刷新和模式設(shè)置等操作命令。

預(yù)充電中重寫(xiě)的操作與刷新操作一樣,只不過(guò)預(yù)充電不是定期的,而只是在讀操作以后執(zhí)行的。因?yàn)樽x取操作會(huì)破壞內(nèi)存中的電荷。因此,內(nèi)存不但要每64ms刷新一次,而且每次讀操作之后還要刷新一次。

3、自動(dòng)預(yù)充電

如果在猝發(fā)讀或猝發(fā)寫(xiě)命令中,A10/AP位置為“1”,在讀寫(xiě)操作完成后自動(dòng)附加一個(gè)預(yù)充電動(dòng)作。操作行結(jié)束活動(dòng)狀態(tài),但在內(nèi)部狀態(tài)機(jī)回到空閑態(tài)之前不能給器件發(fā)送新的操作命令。

4、猝發(fā)讀

猝發(fā)讀命令允許某個(gè)體中的一行被激活后,連續(xù)讀出若干個(gè)數(shù)據(jù)。第一個(gè)數(shù)據(jù)在經(jīng)過(guò)指定的CAS延時(shí)節(jié)拍后呈現(xiàn)在數(shù)據(jù)線(xiàn)上,以后每個(gè)時(shí)鐘節(jié)拍都會(huì)讀出一個(gè)新的數(shù)據(jù)。猝發(fā)讀操作可以被同體或不同體的新的猝發(fā)讀/寫(xiě)命令或同一體的預(yù)充電命令及猝發(fā)停止命令中止。

5、猝發(fā)寫(xiě)

猝發(fā)寫(xiě)命令與猝發(fā)讀命令類(lèi)似,允許某個(gè)體中的一行被激活后,連續(xù)寫(xiě)入若干個(gè)數(shù)據(jù)。第一個(gè)寫(xiě)數(shù)據(jù)與猝發(fā)寫(xiě)命令同時(shí)在數(shù)據(jù)線(xiàn)上給出,以后每個(gè)時(shí)鐘節(jié)拍給出一個(gè)新的數(shù)據(jù),輸入緩沖在猝發(fā)數(shù)據(jù)量滿(mǎn)足要求后停止接受數(shù)據(jù)。猝發(fā)寫(xiě)操作可以被猝發(fā)讀/寫(xiě)命令或DQM數(shù)據(jù)輸入屏蔽命令和預(yù)充電命令或猝發(fā)停止命令中止。

6、自動(dòng)刷新

由于動(dòng)態(tài)存儲(chǔ)器存儲(chǔ)單元存在漏電現(xiàn)象,為了保持每個(gè)存儲(chǔ)單元數(shù)據(jù)的正確性,HY57V561620必須保證在64ms內(nèi)對(duì)所有的存儲(chǔ)單元刷新一遍。一個(gè)自動(dòng)刷新周期只能刷新存儲(chǔ)單元的一個(gè)行,每次刷新操作后內(nèi)部刷新地址計(jì)數(shù)器自動(dòng)加“1”。只有在所有體都空閑(因?yàn)?個(gè)體的對(duì)應(yīng)行同時(shí)刷新)并且未處于低功耗模式時(shí)才能啟動(dòng)自動(dòng)刷新操作,刷新操作執(zhí)行期間只能輸入空操作,刷新操作執(zhí)行完畢后所有體都進(jìn)入空閑狀態(tài)。該器件可以每間隔7.8μs執(zhí)行一次自動(dòng)刷新命令,也可以在64ms內(nèi)的某個(gè)時(shí)間段對(duì)所有單元集中刷新一遍。

7、自刷新

自刷新是動(dòng)態(tài)存儲(chǔ)器的另一種刷新方式,通常用于在低功耗模式下保持SDRAM的數(shù)據(jù)。在自刷新方式下,SDRAM禁止所有的內(nèi)部時(shí)鐘和輸入緩沖(CKE除外)。為了降低功耗,刷新地址和刷新時(shí)間全部由器件內(nèi)部產(chǎn)生。一旦進(jìn)入自刷新方式只有通過(guò)CKE變低才能激活,其他的任何輸入都將不起作用。給出退出自刷新方式命令后必須保持一定節(jié)拍的空操作輸入,以保證器件完成從自刷新方式的退出。如果在正常工作期間采用集中式自動(dòng)刷新方式,則在退出自刷新模式后必須進(jìn)行一遍(對(duì)于HY57V561620來(lái)說(shuō),8192個(gè))集中的自動(dòng)刷新操作。

8、時(shí)鐘和時(shí)鐘屏蔽

時(shí)鐘信號(hào)是所有操作的同步信號(hào),上升沿有效。時(shí)鐘屏蔽信號(hào)CKE決定是否把時(shí)鐘輸入施加到內(nèi)部電路。在讀寫(xiě)操作期間,CKE變低后的下一個(gè)節(jié)拍凍結(jié)輸出狀態(tài)和猝發(fā)地址,直到CKE變高為止。在所有的體都處于空閑狀態(tài)時(shí),CKE變低后的下一個(gè)節(jié)拍SDRAM進(jìn)入低功耗模式并一直保持到CKE變高為止。

9、DQM操作

DQM用于屏蔽輸入輸出操作,對(duì)于輸出相當(dāng)于開(kāi)門(mén)信號(hào),對(duì)于輸入禁止把總線(xiàn)上的數(shù)據(jù)寫(xiě)入存儲(chǔ)單元。對(duì)讀操作DQM延遲2個(gè)時(shí)鐘周期開(kāi)始起作用,對(duì)寫(xiě)操作則是當(dāng)拍有效。

HY57V561620命令表如下圖所示:

二、HY57V561620 SDRAM介紹

1、HY57V561620的結(jié)構(gòu)

HY57V561620存儲(chǔ)容量為4M×4bank×16位(32M字節(jié)),工作電壓為3.3V,常見(jiàn)封裝為54腳TSOP,兼容LVTTL接口,支持自動(dòng)刷新(Auto-Refresh)和自刷新(Self-Refresh),16位數(shù)據(jù)寬度。

HY57V561620引腳分布如圖2-1所示。

HY57V561620引腳信號(hào)描述

更具體的內(nèi)容可參考HY57V561620的用戶(hù)手冊(cè)。

三、S3C2410和HY57V561620的接線(xiàn)方法
華清遠(yuǎn)見(jiàn)教學(xué)用的S3C2410開(kāi)發(fā)板上使用的SDRAM的型號(hào)是HY57561620。規(guī)格是:
4Banks*4M*16Bit。采用兩片SDRAM組成32位64M的內(nèi)存空間。

1、確定BA0、BA1的接線(xiàn)

在S3C2410的Table 5-2. SDRAM Bank Address Configuration給出了SDRAM接線(xiàn)的參考方法。

上表中各段含義及和我們平臺(tái)的對(duì)應(yīng):

Bank Size: 每個(gè)Bank的大小 (HY57561620是4M*16=64MB)Bus Width: 總線(xiàn)寬度 (兩顆HY57561620,32位)
Base Component:個(gè)體容量 (256Mb)
Memory Configration:內(nèi)存配置 ((4M*16*4banks)*2ea )

所以Bank Address對(duì)應(yīng)A[25:24],此處確定了HY57561620的BA0和BA1和S3C2410之間的接線(xiàn)。

2、確定其它接線(xiàn)

上圖是S3C2410手冊(cè)中給出的參考接線(xiàn),通過(guò)這個(gè)圖可以確定HY57561620和S3C2410之間除BA0、BA1的所有其它接線(xiàn)。本例中,詳細(xì)的接線(xiàn)方法如“接線(xiàn)原理圖”小節(jié)。

3、接線(xiàn)原理圖

引腳描述如下:

nSRAS:SDRAM行地址選通信號(hào)
nSCAS:SDRAM列地址選通信號(hào)
nGCS6:SDRAM芯片選擇信號(hào)(選用Bank6作為sdram空間,也可以選擇Bank7)
nWBE[3:0]:SDRAM數(shù)據(jù)屏蔽信號(hào)
SCLK0[1]:SDRAM時(shí)鐘信號(hào)
SCKE:SDRAM時(shí)鐘允許信號(hào)
DATA[0:31]:32位數(shù)據(jù)信號(hào)
ADDR[2:14]:行列地址信號(hào)

ADDR[25:24]:bank選擇線(xiàn)

四、S3C2410 SDRAM控制器的配置方法

在系統(tǒng)使用SDRAM之前,需要對(duì)S3C2410X的存儲(chǔ)器控制器進(jìn)行初始化。其中對(duì)與SDRAM(Bank6)相關(guān)的寄存器進(jìn)行了特殊的設(shè)置,以使SDRAM能夠正常工作。由于C語(yǔ)言程序使用的數(shù)據(jù)空間和堆??臻g都定位在SDRAM上,因此,如果沒(méi)有對(duì)SDRAM(Bank6)的正確初始化,系統(tǒng)就無(wú)法正確啟動(dòng)。下面介紹與SDRAM相關(guān)的寄存器設(shè)置。

1、BWSCON寄存器

BWSCON寄存器主要用來(lái)設(shè)置外接存儲(chǔ)器的總線(xiàn)寬度和等待狀態(tài)。在BWSCON中,除了Bank0,其他7個(gè)bank都各對(duì)應(yīng)4個(gè)相關(guān)位的設(shè)置,分別為STn,WSn和DWn。這里只需要對(duì)DWn進(jìn)行設(shè)置,例如SDRAM(Bank6)采用32位總線(xiàn)寬度,因此,DW6=10,其他2位采用缺省值。BWSCON寄存器在Bank6上的位定義如表4-1所示。

表4-1 BWSCON寄存器在Bank6上的位定義

BWSCON

描述

初始化狀態(tài)

ST6

27

這個(gè)位決定SRAM在Bank6上是否采用UB/LB
0:不采用UB/LB(引腳對(duì)應(yīng)nWBE[3:0 )
1:采用UB/LB(引腳對(duì)應(yīng) nBE[3:0])

0

WS6

26

這個(gè)位決定Bank6的WAIT狀態(tài)
0:WAIT禁止
1:WAIT使能

0

DW6

25~24

這2位決定Bank6的數(shù)據(jù)總線(xiàn)寬度
00:8位 01:16位 10:32位

0

2、BANKCONn寄存器的設(shè)置

S3C2410X有8個(gè)BANKCONn寄存器,分別對(duì)應(yīng)著B(niǎo)ank0~Bank7。由于Bank6~Bank7可以作為FP/EDO/SDRAM等類(lèi)型存儲(chǔ)器的映射空間,因此與其他bank的相應(yīng)寄存器有所不同,其中MT位定義了存儲(chǔ)器的類(lèi)型。BANKCONn寄存器在Bank6和Bank7上的位定義如表4-2所示。

表4-2 BANKCONn寄存器在Bank6和Bank7上的位定義

BANKCONn

描述

起始狀態(tài)

MT

16~15

這2位決定了Bank6和Bank7的存儲(chǔ)器類(lèi)型
00:ROM或SRAM 01:FP DRAM
10:EDO DRAM 11:SDRAM

11

MT的取值又定義該寄存器余下幾位的作用。當(dāng)MT=11(即SDRAM型存儲(chǔ)器)時(shí),BANKCONn寄存器余下的幾位定義如表4-3所示。

表4-3 BANKCONn寄存器在MT=11時(shí)的相關(guān)位定義

Trcd是從行使能到列使能的延遲,根據(jù)S3C2410X的HCLK頻率(100M)及HY57V561620T-H的特性(見(jiàn)下圖),此項(xiàng)取01,即3CLKS。SCAN為列地址線(xiàn)數(shù)量,此項(xiàng)根據(jù)HY57V561620特性取01,即9位(A0~A8)。

3、REFRESH寄存器

REFRESH寄存器是DRAM/SDRAM的刷新控制器。位定義如表4-4所示。

表4-4 REFRESH寄存器位定義

4.BANKSIZE寄存器

表4-5 BANKSIZE寄存器定義

BANKSIZE

描述

初始狀態(tài)

BURST_EN

[7]

ARM 內(nèi)核猝發(fā)操作使能
0 =禁止猝發(fā)操作
1 =使能猝發(fā)操作

0

保留

[6]

不使用

0

SCKE_EN

[5]

SCKE 使能控制
0 = SDRAM SCKE禁止
1 = SDRAM SCKE使能

0

SCLK_EN

[4]

只有在SDRAM訪(fǎng)問(wèn)周期期間,SCLK才使能,這樣
做是可以減少功耗。當(dāng)SDRAM不被訪(fǎng)問(wèn)時(shí),SCLK
變成低電平
0 = SCLK總是激活
1 = SCLK只有在訪(fǎng)問(wèn)期間(推薦的)激活

0

保留

[3]

未用

0

BK76MAP

[2:0]

BANK6/7的存儲(chǔ)空間分布
010 = 128MB/128MB 001 = 64MB/64MB
000 = 32M/32M 111 = 16M/16M
110 = 8M/8M 101 = 4M/4M
100 = 2M/2M

010

初始化時(shí),BURST_EN可以取0或1,為了提高效率,最好設(shè)置為1。SCKE_EN設(shè)置為1。SCLK_EN設(shè)置為1。BK76MAP設(shè)置為2。

5、MRSR寄存器

MRSR寄存器有2個(gè),分別對(duì)應(yīng)MRSRB6和MRSRB7,對(duì)應(yīng)著B(niǎo)ank6和Bank7。見(jiàn)表4-6。

表4-6 MRSRn寄存器定義

此寄存器S3C2410只允許CL可以設(shè)置,參照HY57V561620T-H手冊(cè),取011,即3CLKs。

猝發(fā)長(zhǎng)度的具體值在程序中沒(méi)有給出,根據(jù)后面觸發(fā)時(shí)序猜測(cè)應(yīng)該是8,HY57V561620T支持1、2、4、8、page猝發(fā)長(zhǎng)度。

參照前面的HY57V561620命令表,寫(xiě)Mode寄存器用的是Mode register命令。其中的OP CODE參照下圖:

注意:當(dāng)代碼在SDRAM中運(yùn)行時(shí),絕不能夠重新配置MRSR寄存器。

五、SDRAM的控制時(shí)序分析

下面列出SDRAM的狀態(tài)機(jī)及幾種SDARM控制命令的時(shí)序。大家掌握了以后可以試著分析其它的命令時(shí)序。

1、SDRAM的狀態(tài)機(jī)

SDRAM的完整狀態(tài)機(jī)由多個(gè)狀態(tài)構(gòu)成,且狀態(tài)轉(zhuǎn)移是非隨機(jī)的(如圖5-1所示)。

正是如此眾多的狀態(tài)及其復(fù)雜的轉(zhuǎn)換關(guān)系,導(dǎo)致SDRAM的控制較為復(fù)雜。通常FPGA開(kāi)發(fā)人員在設(shè)計(jì)SDRAM控制器IP時(shí)需要詳細(xì)了解這些狀態(tài)機(jī)的過(guò)程。而一般開(kāi)發(fā)人員以了解為主。

圖5-1 SDRAM狀態(tài)機(jī)

下面將結(jié)合上圖及SDRAM的指令來(lái)分析SDRAM的控制時(shí)序

2、SDRAM single模式讀時(shí)序

SDRAM初始化主要是由設(shè)置S3C2410 SDRAM控制器的模式寄存器(MRSR)完成的。主要設(shè)定了SDRAM的burst長(zhǎng)度、CAS延時(shí)時(shí)間、突發(fā)類(lèi)型等。然后就可以進(jìn)行讀寫(xiě)操作了。

下圖是S3C2410以single方式讀SDRAM時(shí)的時(shí)序。

對(duì)照HY57V5620的命令表,列出single read 命令實(shí)現(xiàn)過(guò)程。

CLK

SCKE

A10/AP

nGCSx

nSRAS

nSCAS

nWE

命令

備注

1

1

X

1

1

1

1

空操作(NOP)

2

1

0

0

0

1

0

預(yù)充電選定bank(PRE)

Trp=2

3

1

X

1

1

1

1

空操作

4

1

X

0

0

1

1

Bank激活命令(ACT)

Trcd=2

5

1

X

1

1

1

1

空操作

6

1

0

0

1

0

1

讀操作(READ)

Tcl=3

7

1

X

1

1

1

1

空操作

8

1

X

1

1

1

1

空操作

9

1

X

1

1

1

1

空操作

數(shù)據(jù)有效

3、SDRAM burst模式讀時(shí)序

對(duì)照HY57V5620的命令表,列出burst read 命令實(shí)現(xiàn)過(guò)程。

CLK

SCKE

A10/AP

nGCSx

nSRAS

nSCAS

nWE

命令

備注

1

1

X

1

1

1

1

空操作(NOP)

2

1

0

0

0

1

0

預(yù)充電選定bank(PRE)

Trp=2

3

1

X

1

1

1

1

空操作

4

1

X

0

0

1

1

Bank激活命令(ACT)

Trcd=2

5

1

X

1

1

1

1

空操作

6

1

0

0

1

0

1

讀操作(READ)

Tcl=2

7

1

0

0

1

0

1

讀操作(READ)

8~13

1

0

0

1

0

1

讀操作(READ)

數(shù)據(jù)有效

14~15

1

X

1

1

1

1

空操作

數(shù)據(jù)有效

4、SDRAM Self Refresh時(shí)序

SDRAM 的Self Refresh功能在電源電源管理時(shí)經(jīng)常使用,如:在主控器進(jìn)入sleep狀態(tài)時(shí),會(huì)先讓SDRAM工作在Self Refresh狀態(tài)。下圖為S3C2410發(fā)出Self Refresh命令時(shí)的時(shí)序圖。

對(duì)照HY57V5620的命令表,列出進(jìn)入Self Refresh的過(guò)程。

CLK

SCKE

A10/AP

nGCSx

nSRAS

nSCAS

nWE

命令

備注

1

1

X

1

1

1

1

空操作(NOP)

2

1

1

0

0

1

0

預(yù)充電所有bank(PRE)

Trp=2

3

1

X

1

1

1

1

空操作

4

0

X

0

0

0

1

Self Refresh命令(REFS)

結(jié)合CKE的真值表

5

1

X

1

1

1

1

空操作

5、S3C2410 BUS Request時(shí)SDRAM控制時(shí)序

我以前在做一個(gè)項(xiàng)目時(shí)涉及到兩個(gè)主控器共享一個(gè)SDRAM的情況?,F(xiàn)象是另一個(gè)主控器可以通過(guò)BUS Request功能獲取到總線(xiàn)的控制權(quán)。當(dāng)S3C2410的總線(xiàn)控制權(quán)被獲取后,SDRAM控制不會(huì)再發(fā)出控制時(shí)鐘信號(hào)。但SDRAM并沒(méi)有因?yàn)槭r(shí)鐘而丟失數(shù)據(jù)。猜想一定是S3C2410在BUS Request時(shí)讓SDRAM進(jìn)入自刷新?tīng)顟B(tài)(就和S3C2410睡眠前要讓SDRAM進(jìn)入自刷新?tīng)顟B(tài)一樣)、POWER DOWN狀態(tài)、或者SUSPEND狀態(tài)。下面就根據(jù)S3C2410 BUS Request時(shí)SDRAM控制時(shí)序圖去確認(rèn)一下到底是哪種。

對(duì)照HY57V5620的命令表,列出S3C2410 BUS Request時(shí)SDRAM時(shí)序過(guò)程。

CLK

SCKE

A10/AP

nGCSx

nSRAS

nSCAS

nWE

命令

備注

1

1

X

1

1

1

1

空操作(NOP)

2

1

0

0

0

1

0

預(yù)充電(PRE)

Trp=2

3

1

X

1

1

1

1

空操作

4

1

X

0

0

1

1

Bank激活命令(ACT)

Trcd=2

5

1

X

1

1

1

1

空操作

6

1

0

0

1

0

1

讀操作(READ)

Tcl=2

7

1

X

1

1

1

1

空操作

8

1

X

1

1

1

1

空操作

9

1

X

1

1

1

1

空操作

10

HZ

HZ

HZ

HZ

HZ

HZ

進(jìn)入Clock suspend

Note 1

Note1:在第10個(gè)時(shí)鐘周期時(shí),SKE從1變?yōu)?rsquo;HZ’(高阻)。我想此時(shí)SCKE從1變?yōu)楦咦鑼?duì)于SDRAM來(lái)說(shuō)相當(dāng)于從1->0吧,看了一遍HY57V5620手冊(cè),這個(gè)想法沒(méi)有得到確認(rèn)。但也只能這么理解了,不然后面都說(shuō)不通了。我想之所以變?yōu)楦咦瓒皇堑碗娖?,是因?yàn)镾3C2410要放棄自己對(duì)總線(xiàn)控制。
結(jié)合HY57V5620手冊(cè)分析一下此時(shí)SDRAM會(huì)進(jìn)入什么狀態(tài)。

下圖是CKE Enable(CKE) 真值表。

在第10個(gè)時(shí)鐘周期時(shí),SDRAM處于行激活狀態(tài)。此時(shí)SCKE由1->0, 根據(jù)真值表可以得出系統(tǒng)會(huì)進(jìn)入Clock suspend狀態(tài)

六、總結(jié)

本文分析了SDRAM的工作原理、介紹了HY57V561620及其與S3C2410的接線(xiàn)原理、S3C2410 SDRAM控制器的配置方法、及部分SDRAM的控制時(shí)序分析。有些地方理解的不夠深刻,歡迎大家指正。

本文分析了SDRAM的工作原理、介紹了HY57V561620及其與S3C2410的接線(xiàn)原理、S3C2410 SDRAM控制器的配置方法、及部分SDRAM的控制時(shí)序分析。有些地方理解的不夠深刻,歡迎大家指正。



關(guān)鍵詞: SDRAMS3C2410控制器配

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉