SDRAM..

先介绍一下,我们用到的SDRAM是2个32M的SDRAM合起来的,每个SDRAM有4块,每一块分为行和列。

SDRAM.._第1张图片

上面是我们用的SDRAM,16M*16也就是32M,A0-A8,一个9列,行地址为RA[12:0],列地址为CA[8:0],组成4M个存储单元

 

咱们看芯片手册上一个寄存器吧,因为是SDRAM是BANK6所以,我们也就只看BANK6

SDRAM.._第2张图片

ST6里面的0/1各是什么意思呢,WBE[3:0]是什么呢,因为我们CPU发地址都是32位的发,也就是4byte,如果我们只想写1byte呢,

这WBE[3:0]对于这LnWE0-3;所以0就是开启想写哪一个字节就写哪个字节,也就是要屏蔽其他字节。

1就是读字节,也都一样。这里我们设置为0;

SDRAM.._第3张图片

MT里面我们选择11选择SDRAM

因为是选择SDRAM,所以,我们只有管这里就好了

Trcd是发生行地址之后等多久发送列地址。 看SDRAM是芯片手册

SDRAM是内存类设备,CPU时钟我们一般用HCLK=100MHZ,1/100*1000*1000=10ns;Trcd我们选最大20ns,所以2clocks就好了

 

SCAN是列宽是多少,上面我们已经说了是9位。

刷新寄存器,如果我们不刷新,可能有些数据会丢失

SDRAM.._第4张图片

 

REFEN 我们设置为1 ,TREFMD我们设置为0自动更新,

tRP我们选择20ns,也就是2clocks,00

Tsrc: Trc=Tsrc+tRP  65 = Tsrc +20  所以Tsrc =45   这里我们就选3clocks吧,01

 

因为我们是HCLK等于100MHZ,所以

Refresh count = 211 + 1 - 100x7.8 = 1269

如果不是的话就是 64ms=(2^11-refresj_count +1)/HCLK;

好了,都选完了。

REFRESH =0x008404f5


下一个寄存器

SDRAM.._第5张图片

7:1(能够一次性发多个地址)

5:1使能休眠模式

4:1(推荐)

【0:2】:001 (64MB)

BANKSIZE  = 0xb1000000

继续

SDRAM.._第6张图片

这个寄存器我们只要设置CL  , CAS latency 是什么呢,就是当我们发送块序号,行地址,最后发送列地址后,SDRAM还需要等一段时间才能 返回数据给CPU ,这里我们选择CAS latency=2 CL = 010   

MRSRB6  = 1 << 4;


 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(SDRAM..)