小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SDRAM工作原理及S3C2410 SDRAM控制器配置方法--嵌入式學(xué)院(華清遠見旗下品牌)

 ekylin 2011-02-14

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

作者:劉洪濤,華清遠見嵌入式學(xué)院講師。

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

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

1、BWSCON寄存器

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

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

BWSCON

描述

初始化狀態(tài)

ST6

27

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

0

WS6

26

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

0

DW6

25~24

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

0

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

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

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

BANKCONn

描述

起始狀態(tài)

MT

16~15

這2位決定了Bank6和Bank7的存儲器類型
        00:ROM或SRAM 01:FP DRAM
        10:EDO DRAM 11:SDRAM

11

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

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

Trcd是從行使能到列使能的延遲,根據(jù)S3C2410X的HCLK頻率(100M)及HY57V561620T-H的特性(見下圖),此項取01,即3CLKS。SCAN為列地址線數(shù)量,此項根據(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訪問周期期間,SCLK才使能,這樣
做是可以減少功耗。當(dāng)SDRAM不被訪問時,SCLK
變成低電平
        0 = SCLK總是激活
        1 = SCLK只有在訪問期間(推薦的)激活

0

保留

[3]

未用

0

BK76MAP

[2:0]

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

010

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

5、MRSR寄存器

MRSR寄存器有2個,分別對應(yīng)MRSRB6和MRSRB7,對應(yīng)著Bank6和Bank7。見表4-6。

表4-6 MRSRn寄存器定義

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

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

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

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

五、SDRAM的控制時序分析

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

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

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

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

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

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

2、SDRAM single模式讀時序

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

下圖是S3C2410以single方式讀SDRAM時的時序。

對照HY57V5620的命令表,列出single read 命令實現(xiàn)過程。

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模式讀時序

對照HY57V5620的命令表,列出burst read 命令實現(xiàn)過程。

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時序

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

對照HY57V5620的命令表,列出進入Self Refresh的過程。

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時SDRAM控制時序

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

對照HY57V5620的命令表,列出S3C2410 BUS Request時SDRAM時序過程。

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

進入Clock suspend

Note 1

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

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

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

六、總結(jié)

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多