微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 2440初始化存储器原理(接上一篇)

2440初始化存储器原理(接上一篇)

时间:11-09 来源:互联网 点击:

wn模式使能)/*0 = SDRAM power down mode disable;1 = SDRAM power down mode enable*/

SCLK_EN[4]:SCLK is enabled only during SDRAM access cycle for reducing power consumption. When SDRAM is not accessed SCLK becomes L level(低电平). /*0 = SCLK is always active. 1 = SCLK is active only during the access (recommended).*/注:Reserved[3]:Not used.

BK76MAP[2:0]:设置BANK6~BANK7的大小。/* 010 = 128MB/128MB;001 = 64MB/64MB;000 = 32M/32M;111 = 16M/16M;110 = 8M/8M;101 = 4M/4M;100 = 2M/2M */

MRSRBx(x= 6~7):SDRAM模式设置寄存器。

能做修改的只有CL[6:4]:代表SDRAM时序的一些参数。 /*000 = 1 clock;010 = 2 clocks;011=3 clocks;Others: reserved*/

2410内存控制器介绍(BWSCON)

http://blogold.chinaunix.net/u1/59572/showart_1914422.html

下面先转载手册对于内存控制器基本特点的概述:

— Little/Big endian (selectable by a software)

— Address space: 128Mbytes per bank (total 1GB/8 banks)

— Programmable access size (8/16/32-bit) for all banks except bank0 (16/32-bit)

— Total 8 memory banks

Six memory banks for ROM, SRAM, etc.

Remaining two memory banks for ROM, SRAM, SDRAM, etc .

— Seven fixed memory bank start address

— One flexible memory bank start address and programmable bank size

— Programmable access cycles for all memory banks

— External wait to extend the bus cycles

Supporting self-refresh and power down mode in SDRAM

bank6和bank7的大小必须一样,并且bank7的起始地址根据bank6的大小不同而不同

复位后S3C2410A的存储器映射图如下:

bank0(nGCS0)数据总线宽度由OM[1:0]决定:

OM[1:0]= 00 Nand Flash 模式

01 16位

10 32位

11 测试模式

2)以图2(带nWAIT信号)为例,描述一下处理器的总线的读操作过程,来说明Flash整体读、写的流程。第一个时钟周期开始,系统地址总线给出需要访问的存储空间地址,经过Tacs时间后,片选信号也相应给出(锁存当前地址线上地址信息),再经过Tcso时间后,处理器给出当前操作是读(nOE为低)还是写(new为低),并在Tacc时间内将数据数据准备好放之总线上,Tacc时间后(并查看nWAIT信号,为低则延长本次总线作y一个时钟周期),nOE 拉高,锁存数据线数据。这样一个总线操作就基本完成

图2 带nWAIT 信号的总线读操作

相关的寄存器

数据宽度和等待控制寄存器:

BWSCON地址0x48000000

BWSCON每四位为一组,控制着bank0到bank7,以bank7为例这四位分别为:ST7[31],WS7[30],DW7[29,28]

ST7:启动/禁止SDRAM的数据掩码引脚,对于SDRAM,此位为0;对于SRAM,此位为1。

Determine SRAM for using UB/LB for bank 7.

0 = Not using UB/LB (The pins are dedicated nWBE[3:0])

1 = Using UB/LB (The pins are dedicated nBE[3:0])

nBE[3:0] is the AND signal nWBE[3:0] and nOE.

WS7:是否使用存储器的WAIT信号,通常设为0

DW7:使用两位来设置存储器的位宽:00-8位,01-16位,10-32位,11-保留。

其他个bank与此一样,比较特殊的是bank0对应的4位,它们由硬件跳线决定,只读。

bank控制寄存器(BANKCONN:nGCS0-nGCS5): reset value: 0x0700

BANKCON0地址0x48000004

BANKCON1地址0x48000008

BANKCON2地址0x4800000C

BANKCON3地址0x48000010

BANKCON4地址0x48000014

BANKCON5地址0x48000018

BANK控制寄存器(BANKCONN:nGCS6-nGCS7):reset value: 0x0700

BANKCON6地址0x4800001C

BANKCON7地址0x48000020

各bank控制寄存器只使用[14:0]位,主要是控制读写时序各个参数的大小,如:Tacs,Tcos等。对于bank6和bank7,还要使用到[16:15]两位,用来控制bank6和bank7的存储模式,00表示使用rom或sram存储,11表示使用sdram存储。

对于本开发板,使用两片容量为32Mbyte、位宽为16的SDRAM组成容量为64Mbyte、位宽为32的存储器,所以其BWSCON相应位 为:0010。对于本开发板,BWSCON可设为0x22111110:其实我们只需要将BANK6对应的4位设为0010即可,其它的是什么值没什么影 响,这个值是参考手册上给出的。

2.BANKCON0-BANKCON5:我们没用到,使用默认值0x00000700即可

3.BANKCON6-BANKCON7:设为0x00018005

在8个BANK中,只有BANK6和BANK7可以使用SRAM或SDRAM,所以BANKCON6-7与BANKCON0-5有点不同:

a.MT([16:15]):用于设置本BANK外接的是

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top