微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM S3C2410硬件手册上的重要部分

ARM S3C2410硬件手册上的重要部分

时间:11-11 来源:互联网 点击:
a.Memory Controller

b.Nand Flash

c.UART

d.Interrupt

e.Timer

Memory Controller

SDRAM:

S3C2410 提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存储器的空间被分为8 BANKS,每BANK容量为128M:当访问BANKx(x从0到7)所对应的地址范围x*128M到(x+1)*128M-1

SDRAM使用BANK6,它的物理起始地址为6*128M=0x30000000。

(注:bank就是片选,一个片选就是一个bank,在U-Boot中,配制的时候要配制SDRAM和FLASH的 bank数,那么如果你的SDRAM或者FLASH就接了一个片选的时候,就定义为1就可以了,其他的类推,2410和其他的大部分的处理器一样,支持NorFlash和NANDFlash启动,而这两种启动方式内存所映射的地址不怎么相同)

SDRAM(刷新):

之所以称为DRAM,就是因为它要不断进行刷新(Refresh)才能保留住数据,因此它是DRAM最重要的操作。

那么要隔多长时间重复一次刷新呢?目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000秒),也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms

刷新操作分为两种:自动刷新(Auto Refresh,简称AR)与自刷新(Self Refresh,简称SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。对于AR, SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。

由于刷新涉及到所有L-Bank,因此在刷新过程中,所有L-Bank都停止工作,而每次刷新所占用的时间为9个时钟周期(PC133标准),之后就可进入正常的工作状态,也就是说在这9 个时钟期间内,所有工作指令只能等待而无法执行。

SR则主要用于休眠模式低功耗状态下的数据保存,这方面最著名的应用就是STR(Suspend to RAM,休眠挂起于内存)。在发出AR命令时,将CKE置于无效状态,就进入了SR模式,此时不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。

SDRAM(寄存器设置):

本实验介绍如何使用SDRAM,这需要设置13个寄存器。由于我们只使用了BANK6,大部分的寄存器我们不必理会:

1.BWSCON:对应BANK0-BANK7,每BANK使用4位。这4位分别表示:

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

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

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

d.比较特殊的是BANK0对应的4位,它们由硬件跳线决定,只读。

对于本开发板,使用两片容量为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外接的是SRAM还是SDRAM:SRAM-0b00,SDRAM-0b11

b.当MT=0b11时,还需要设置两个参数: Trcd([3:2]):RAS to CAS delay,设为推荐值0b01 SCAN([1:0]):

SDRAM的列地址位数,对于本开发板使用的SDRAM HY57V561620CT-H,列地址位数为9,所以SCAN=0b01。如果使用其他型号的SDRAM,您需要查看它的数据手册来决定SCAN的取值:00-8位,01-9位,10-10位

4. REFRESH(SDRAM refresh control register):设为0x008e0000+ R_CNT 其中R_CNT用于控制SDRAM的刷新周期,占用REFRESH寄存器的[10:0]位,它的取值可如下计算(SDRAM时钟频率就是HCLK):

R_CNT = 2^11 + 1 – SDRAM时钟频率(MHz) * SDRAM刷新周期(uS)

在未使用PLL时,SDRAM时钟频率等于晶振频率12MHz;

SDRAM 的刷新周期在SDRAM的数据手册上有标明,在本开发板使用的SDRAM HY57V561620CT-H的数据手册上,可看见这么一行“8192 refresh cycles / 64ms”:所以,刷新周期=64ms/8192 = 7.8125 uS。

对于本实验,R_CNT = 2^11 + 1 – 12 * 7.8125 = 1955, REFRESH=0x008e0000 + 1955 = 0x008e07a3

5.BANKSIZE:0x000000b2

位[7]=1:Enable burst operation

位[5]=1:SDRAM power down mode enable

位 [4]=1:SCLK is active only during the access (recommended) 位[2:1]=010:BANK6、BANK7对应的地址空间与BANK0-5不同。BANK0-5的地址空间都是固定的128M,地址范围是 (x*128M)到(x+1)*128M-1,x表示0到5。但是B

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

网站地图

Top