Micro2440 SDRAM初始化实验

1、BWSCON(位宽和等待寄存器)
在这里插入图片描述

在这里插入图片描述
通过上面两个图可以发现这个寄存器每四位控制一个bank,所以我们只需要配置第7的这四个位。
ST7:配置为0,不是用UB/LB,通过芯片连接图可得知
WS7:配置为0,不初始化为等待。
DW7:位宽为32位,则配置为10。
BANK6也控制着SDRAM,所以配置一样,其他配置为0
则这个寄存器配置为0x22000000
2、BANKCONx(BANK控制寄存器)
在这里插入图片描述
不使用,直接配置成默认值。
3、BNAK控制寄存器

在这里插入图片描述
在这里插入图片描述
配置BANKCON6,7.
MT:配置成11,表示配置为SDRAM
最后配置后三位:
Trcd:通过前面的时序图可配置成为2clocks,则为00
在这里插入图片描述
SCAN:通过SDRAM芯片手册可以知道,为9bit,则配置成01.
在这里插入图片描述
则这个寄存器配置为0x22000000。
4、REFRESH(刷新寄存器)
配置这个寄存器
在这里插入图片描述
REFEN:配置为1,使能SDRAM刷新寄存器。
TREFMD:配置为0,自动刷新。
Trp:看数据手册,上面显示为两个时钟信号,配置为00
在这里插入图片描述
Tsrc:默认为7个clock,配置为11。
Reserved:配置为0。
Refresh Counter:直接配置为1269
则整个寄存器配置为:0x008c04f5
​5、BANKSIZE
在这里插入图片描述
BURST_EN:支持突发传输,配置为1。
SCKE_EN:节能模式,配置为1。
SCLK_EN:配置为推荐的1。
BK76MAP:配置为001由两片32位芯片配置而成。
最后配置为:0x000000b1.
6、模式设置寄存器MRSRBx
在这里插入图片描述
其它固定,只配置CL,CAS的潜伏期
在这里插入图片描述
由数据手册可得:
CLOCK为3,则配置为011
整个寄存器配置为:0x00000030
代码如下:


#define men_contrl 0x48000000

init_sdram:
		ldr r0, =men_contrl @起始地址保存在r0中
		add r3, r0, #4*13  @每个寄存器为4位,13个
		adr1 r1, men_data  @把men_data的地址传给r1

0:
		ldr r2, [r1], #4
		str r2, [r0], #4
		cmp r0, r3  @比较两个地址
		bne 0b      @往前跳转
		mov pc, lr

men_data:
		@存储控制器的13个寄存器的设置值
		.long  0x22000000  @BWSCON
		.long  0x00000700  @BANKCON0
		.long  0x00000700  @BANKCON1
		.long  0x00000700  @BANKCON2
		.long  0x00000700  @BANKCON3
		.long  0x00000700  @BANKCON4
		.long  0x00000700  @BANKCON5
		.long  0x00018001  @BANKCON6
		.long  0X00018001  @BANKCON7
		.long  0x008C04f5  @REFRESH
		.long  0x000000B1  @BANKSIAZE
		.long  0x00000030  @MRSRB6
		.long  0x00000030  @MRSRB7
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值