JZ2440的SDRAM配置

JZ2440的SDRAM配置内存控制器

JZ2440的SDRAM配置

CPU把地址命令发送给内存控制器

然后内存控制器再根据 CPU 发过来的地址

1. 判断这个地址在什么范围 (发出nGCS6 片选信号6SDRAM

2. 根据类型(SDRAM)拆分地址

a. BANK地址

b. 行地(RAS) Row Address

c. 列地址(CAS) Column address

?? 怎么拆分地址?

行地址几条RAS

列地址几条 CAS

: 这些要设置内存控制器的相关寄存器

3.读数据

JZ2440的SDRAM配置


2440 内存控制器的设置   因为这个只接了 nGCS6 所以 只去配置nGCS6

JZ2440的SDRAM配置

JZ2440的SDRAM配置

JZ2440的SDRAM配置

JZ2440的SDRAM配置


    ********************          寄存器的配置  BWSCON            ****************

Jz2440选择的是2个芯片拼接起来组成32位的数据总线

BWSCON-----BW6----- 10 (32-bit)

BWSCON-----WS6----- 0 (WAIT disable) 用不到

BWSCON-----ST6----- 0 (Not using UB/LB)

一般我们会把 BANK7设置成BANK6一样 虽然我们没有用到BANK7

:BWSCON = 0x22000000

 

     ***********************          BANKCONn        ********************

      BANKCON0--BANKCON5这些寄存器我们现在都不关心  因为没有用到  采取默认值就好 0x0700

            因为我们要操作 SDRAM 对应的是BANKCON6管  所以去配置 BANKCON6


JZ2440的SDRAM配置

JZ2440的SDRAM配置


    BANKCON6 -- MT -- 11(Sync.DRAM)                只有选择SDRAM的时候地址才会被拆分成 Row地址 Colu地址            如果不是的话  地址就会一次性发完出去

    如果你设置成 SDRAM的话 你就只需要设置 Trcd   SCAN  (4-bit)

    怎么看列地址应该设置成多少位 ---- 去看芯片手册

HY57V561620C(L)T(P)

4 Banks x 4M x 16Bit Synchronous DRAM

比较常用的内存芯片手册      

然后去 搜索 columu       发现  Column Address :CA0--CA8   9位(9--bie)

JZ2440的SDRAM配置


然后去搜索 Trcd   

JZ2440的SDRAM配置


如果我们的 2440 HCLK = 100HMZ             默认是12MHZ

                            T = 10 ns

   说以我们 选择2个时钟周期就可以了   


    BANKCON6 = 0x00018001

     BANKCON6 -- MT -- 11(Sync.DRAM)  

     BANKCON6 -- Tred -- 00

     BANKCON6 -- SCAN -- 01  

    

*********************                REFRESH 刷新寄存器        ********************


JZ2440的SDRAM配置


REFRESH(32位,用于设定SDRAM的刷新):


23:是否开启SDRAM刷新,自然选1开启
22:SDRAM刷新模式,选0
21~20:取00或者10,RAS的change时间
19~18:行时间,取11
17~11:0


10~0:就是刷新频率了~~


Refresh period  看SDRAM的芯片手册      ---  

JZ2440的SDRAM配置


计算公式,R_CNT=2^11+1-SDRAM时钟频率(Mhz)*SDRAM刷新周期(uS)

HY那个手册上写到:8192个刷新周期用64ms,因此刷新周期=64000/8192=7.8125
时钟频率有好多种啊,先实验为100Mhz的吧。。

因此计算出来就是1267.75,四舍五入1268->0x04f4

因此这个REFRESH取值是 0x008c04f4,简单计算方法就是0x008c0000 + 04f4


*****************        BANKSIZE        *************


BANKSIZE(32为寄存器):

支持核突发,使用SCKE,仅在SDRAM期间发出SCLK,地址空间64Mb
因此BANKSIZE为 0x000000B1

MRSRB6~7(SDRAM模式设置)

3个时钟周期,0x3