SDRAM设置

内存控制器

在这里插入图片描述

在这里插入图片描述
看芯片原理图SDRAM上面数据线有LDATA0-15 16根线,所以上面SDRAM存储结果逻辑图, 每一个格子都代表16位的数据

选中当中的某个格子的步骤
先发出片选信号选择SDRAM芯片,然后选择那个BANK,选择ROW,选择Column

举例分析

str R0,=0x3000 000 
ldr R1,[R0]

将0x3000 000 发送给村控制器
内存控制器:
1、根据地址发出相对应的片选型号
2、根类型(SDRM)拆分地址
   a、BANK 地址
   b、行地址
   c、列地址
如何拆分,需要我们设置,行地址几条,列地址几条
3、读数据

在这里插入图片描述

如何设置寄存器,去设置成我们需要的功能

在这里插入图片描述

在这里插入图片描述
看芯片手册可以看出使用的时LnGCS6片选引脚6所以可以得出我们使用的是BANK6

1、设置BWSCON寄存器

在这里插入图片描述
[25:24]=10 (32-bit)看上面芯片手册是有2个16位的组成一个32位的
设置[26]wait = 0 disable
wait引脚是当我当前模块反应不过来的时候,让CPU等待的时间,而看上面的芯片手册上面也没有这个引脚所以设置成disable
[27]
0 = Not using UB/LB (The pins are dedicated nWBE[3:0 )
(设置位写的byte)

1 = Using UB/LB (The pins are dedicated nBE[3:0])
(读写byte)
我们这里只需要设置成 = 0 (只需要写的时候写入哪个byte,读的时候是把整个32位数据都读取出来,然后自己去读取中间的某一个byte)

2、 设置BANKCON6寄存器

在这里插入图片描述
在这里插入图片描述
设置BANKCON6寄存器我们需要根据上面这个图PROGRAMMABLE ACCESS CYCLE程序读写周期图进行设置
里面的参数都是什么意思可以参考https://blog.csdn.net/weixin_43471255/article/details/108500591这个时序图

2.1 MT [16:15]

设置成SDRAM,所以=11

为了简便只需要设置Tacc > 70ns即可

HCLK = 100MHZ

1个clock需要的时间 1000/100 = 10

Tacc >= 8 clock
[10:8] = 101

2.3设置行地址,列地址的规则

在这里插入图片描述
SCAN 列地址位输(看对应的具体的芯片手册) 9bits

Trcd 先发出行地址再发出列地址中间delay的时间(看具体的芯片手册) 20ns 设置成2clocks

3、设置REFRESH寄存器

在这里插入图片描述

3.1 设置REFEN [23] enable

[23] = 1

3.2 设置TREFMD [22]

使用默认值自动刷新

3.3 设置 Trp [21:20] SDRAM RAS pre-charge Time

行所存时间

看芯片手册可能Trp >=20ns
取最小值
[21:20]=00

3.4 设置 Refresh Counter [10:0]

刷新周期
64ms 刷新8k
Refresh period = 64ms/8192 = 7.8ms
Refresh period = (211-refresh_count+1)/HCLK

==》refresh_count = 1269

3.5 设置Tsrc [19:18]

在这里插入图片描述
Trc >= 70ns 取Trc = 70ns
Trp>=20ns 取Trp = 20ns
Tsrc = 50ns

4、设置BANKSIZE寄存器

在这里插入图片描述

4.1 BK76MAP [2:0]有两个16位的组成64MB空间
4.2 BURST_EN [7] 可以突发访问

可以连续一次访问多个字节
如果disable 就不能突发访问不能一次连续访问多个字节

4.3 SCKE_EN [5]使能设置

poewe down mode 设置enable

4.4 SCLK_EN [4] 使用推介值1
5设置MRSRB6寄存器

这个寄存器中的值使用固定值即可
在这里插入图片描述

设置只需要设置CL位

内存控制器读SDRAM,发出BANK地址,行地址,列地址
需要等待一会数据才好

等待时间可以看芯片手册
这里我们设置2clock
一旦设置了这个值之后,当SDRAM接收到列地址之后会等待2clock,之后把数据发送给JZ2440

在这里插入图片描述
设置MRSR的CL位的时候,会像SDRAM使得SDRAM中MR寄存器中CL与其一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值