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

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

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

JLInk 调试加载的执行初始化存储器脚本(2440

Setmem 0x53000000 0x00000000 32
Setmem 0x4A000008 0xFFFFFFFF 32
Setmem 0x4A00001C 0x000007FF 32
Setmem 0x53000000 0x00000000 32
Setmem 0x56000050 0x000055AA 32
Setmem 0x4C000014 0x00000007 32
Setmem 0x4C000000 0x00FFFFFF 32
Setmem 0x4C000004 0x00061012 32
Setmem 0x4C000008 0x00040042 32
Setmem 0x48000000 0x22111120 32
Setmem 0x48000004 0x00002F50 32
Setmem 0x48000008 0x00000700 32
Setmem 0x4800000C 0x00000700 32
Setmem 0x48000010 0x00000700 32
Setmem 0x48000014 0x00000700 32
Setmem 0x48000018 0x0007FFFC 32
Setmem 0x4800001C 0x00018005 32
Setmem 0x48000020 0x00018005 32
Setmem 0x48000024 0x008E0459 32
Setmem 0x48000028 0x00000032 32
Setmem 0x4800002C 0x00000030 32
Setmem 0x48000030 0x00000030 32

原理:

1、什么是存储控制器

存储控制器是创建和控制其他存储设备的一种设备。S3C2440中存储控制器的起始地址为0x48000000结束地址为0x48000030。通过配置存储控制器提供的13个寄存器的具体数值来达到访问外围设备的目的。

2、如何得到外围设备的访问地址

在说明得到外围设备地址之前,先说明一下什么是片选信号。读过微机原理的同志应该很清楚了。

在S3C2440中分为nGCS0~nGCS7,共8个片选信号。分别对应了BANK0~BANK7,当需要访问外围设备的空间时(即访问BANKx 时),nGCSx 引脚输出低电平信号,这样选择相对应的BANKx外围设备来访问。(注:nGCS0~nGCS7在S3C2440手册中可以查找到相应的地址分配表)

BANK访问地址=BANK起始地址+地址线地址。

3、存储控制器中寄存器的使用

3.1、存储控制器提供的13个寄存器

BWSCON,BANKCONx(x=0~7),REFRESH,BANKSIZE,MRSRBx(x=6~7),共13个寄存器。在这些寄存器的配置中,当配置BANK0~BANK5的时候,只需要配置BWSCON和BANKCONx(x=0~5)即可。由于BANK6和BANK7嘤糜谕饨覵DRAM,所以配置的时候除配置BWSCON和BANKCONx(x=6~7)外,还需要配置REFRESH,BANKSIZE,MRSRB6和MRSRB7等4个寄存器。

BWSCON(R/WBusWidth & WaitStatusControl,位宽和等待寄存器)

BWSCON共32位,BWSCON的高4位对应了外设的BANK7,然而BWSCON是每4位对应一个BANK,所以依次类推可以得到其余BANK6~BANK0的对应位数。

STx(x= 0~7):启动/禁止SDRAM数据掩码引脚。对于SDRAM此位为0,对于SRAM此位为1。一般为0。

WSx(x= 0~7):是否使用存储器的WAIT信号。通常设为0。 /*0 = WAIT disable*/

DWx(x= 0~7):用2位来设置对应BANK位宽(数据总线宽度),00=8-bit;01=16-bit;10=32-bit;11=reserved

其中,比较特殊的BANK0,它没有ST0和WS0,且DW0[2:1]为只读,由硬件电路跳线决定01=16-bit;10=32-bit。

BANKCONx(x= 0~5):用来控制外接设备的访问时序,默认设置0X0700可以满足使用需求。

BANKCONx(x= 6~7):只有BANK6和BANK7可以用来外接SRAM或SDRAM,所以在配置BANK6~BANK7会有所不同。

MT[16:15]位:用来标识外接的设备是ROM/SRAM,还是SDRAM。 /*00 = ROM or SRAM;01 = Reserved;10 = Reserved;11 = Sync.DRAM */

当MT=0b00时(即外接ROM):此时设置与BANKCONx(x= 0~5)并无多大差异。

当MT=0b11时(即外接SDRAM):

Trcd[3:2]:Time ofRAS toCASdelay(内存行地址传输到列地址的延迟时间) /*00 = 2 clocks;01 = 3 clocks;10 = 4 clocks*/

SCAN[1:0]:表示SDRAM列的地址,可根据具体芯片情况设置 /*00 = 8-bit;01 = 9-bit;10= 10-bit*/

REFRESH:刷新控制寄存器。

REFEN[23]:使能控制SDRAM刷新功能。/*0 = Disable;1 = Enable (self or CBR/auto refresh)*/

TREFMD[22]:SDRAM刷新模式。/*0 = CBR/Auto Refresh;1 = Self Refresh (休眠模式)*/

Trp[21:20]:Time of SDRAMRASpre-charge(RAS预充电时间)。/*00 = 2 clocks;01 = 3 clocks;10 = 4 clocks;11 = Not support*/

Tsrc[19:18]:Time of SDRAMSemiRowcycle(半行周期时间)。/*00 = 4 clocks;01 = 5 clocks;10 = 6 clocks;11 = 7 clocks*/ 注:Reserved[17:11]:Not used.

Refresh Counter[10:0]:SDRAM refresh count value(刷新计数值)。

BANKSIZE寄存器:

BURST_EN[7]:ARM coreburstoperation enable(ARM内核心突发操作使能)。/*0 = Disable burst operation;1 = Enable burst operation*/ 注:Reserved[6]:Not used.

SCKE_EN[5]:SDRAM power down mode enable control bySCKE。(SCKE power do

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

网站地图

Top