微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > S3C2440的SDRAM驱动

S3C2440的SDRAM驱动

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

容量,根据每个开发板生产商不同而不同,比如MINI2440开发板将2M的Norflash焊接在了Bank0上,用于存放系统引导程序Bootloader,将两片32M,16Bit位宽SDRAM内存焊接在Bank6和Bank7上,并联形成64M,32位内存。

由于S3C2440是32位芯片,理论上讲可以达到4GB的寻址范围,除去上述8个BANK用于连接外部设备,还有一部分的地址空间是用于设备特殊功能寄存器,其余地址没有被使用。

表2-14 S3C2440设备寄存器地址空间

外接设备

起始地址

结束地址

存储控制器

0x48000000

0x48000030

USB Host控制器

0x49000000

0x49000058

中断控制器

0x4A000000

0x4A00001C

DMA

0x4B000000

0x4B0000E0

时钟和电源管理

0x4C000000

0x4C000014

LCD控制器

0x4D000000

0x4D000060

NAND FLASH控制器

0x4E000000

0x4E000014

摄像头接口

0x4F000000

0x4F0000A0

UART

0x50000000

0x50008028

脉宽调制计时器

0x51000000

0x51000040

USB设备

0x52000140

0x5200026F

WATCHDOG计时器

0x53000000

0x53000008

IIC控制器

0x54000000

0x5400000C

IIS控制器

0x55000000

0x55000012

I/O端口

0x56000000

0x560000B0

实时时钟RTC

0x57000040

0x5700008B

A/D转换器

0x58000000

0x58000010

SPI

0x59000000

0x59000034

SD接口

0x5A000000

0x5A000040

AC97音频编码接口

0x5B000000

0x5B00001C

1.1.2SDRAM内存工作原理

SDRAM的内部是一个存储阵列。阵列就如同表格一样,将数据“填”进去。在数据读写时和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理,如图2-49所示。

图2-49内存行,列地址寻址示意图

这个单元格(存储阵列)就叫逻辑Bank(Logical Bank,下文简称L-Bank)。由于技术、成本等原因,不可能只做一个全容量的L-Bank,而且最重要的是,由于SDRAM的工作原理限制,单一的L-Ban k将会造成非常严重的寻址冲突,大幅降低内存效率。所以人们在SDRAM内部分割成多个L-Bank,目前基本都是4个(这也是SDRAM规范中的最高L-Bank数量),由此可见,在进行寻址时就要先确定是哪个L-Bank,然后在这个选定的L-Bank中选择相应的行与列进行寻址。因此对内存的访问,一次只能是一个L-Bank工作。如图2-50:

图2-50内存存储单元

当对内存进行操作时(见下图),先要确定操作L-Bank,因此要对L-Bank进行选择。在内存芯片的外部管脚上多出了两个管脚BA0, BA1,用来片选4个L-Bank。如前所述,32位的地址长度由于其存储结构特点,分成了行地址和列地址。通过下面的内存结构图可知,内存外接管脚地址线只有13根地址线A0~A12,它最多只能寻址8M内存空间,到底使用什么机制来实现对64M内存空间进行寻址的呢?SDRAM的行地址线和列地址线是分时复用的,即地址要分两次送出,先送出行地址(nSRAS行有效操作),再送出列地址(nSCAS列有效操作)。这样,可以大幅度减少地址线的数目,提高器件的性能和制作工艺复杂度。但寻址过程也会因此而变得复杂。实际上,现在的SDRAM一般都以L-Bank为基本寻址对象的。由L-Bank地址线BAn控制L-Bank间的选择,行地址线和列地址线贯穿连接所有的L-Bank,每个L-Bank的数据的宽度和整个存储器的宽度相同,这样,可以加快数据的存储速度。同时,BAn还可以使未被选中的L-Bank工作于低功耗的模式下,从而降低器件的功耗。

图2-51 HY57561620内部结构图

开发板内存控制器管脚接线(以MINI2440开发板为例):

(1)确定BA0、BA1的接线

表2-15 BA0、BA1接线

Bank Size:外接内存容量大小(HY57561620是4Mbit*16bit*4Bank*2Chips/8=64MB)

Bus Width:总线宽度 (两片16位HY57561620,并联成32位)
Base Component:单个芯片容量(bit)(256Mb)
Memory Configration:内存配置((4M*16*4banks)*2Chips )

由硬件手册Bank Address管脚连接配置表可知,使用A[25:24]两根地址线作为Bank片选信号,正好两根接线可以片选每个存储单元的4个BANKS。

(2)确定其它接线

SDRAM内存是焊接在BANK6~BANK7上的,其焊接管脚,如图2-52:

图2-52 S3C2440 16位宽内存芯片

上图是S3C2440提供的两片16位芯片并联连接示意图,An是CPU地址总线,其中A2~A14为内存芯片寻址总线,之所以地址寻址总线从A2开始是因为内存地址都是按字节对齐的,,A24,A25为L-Bank片选信号,Dn为CPU数据总线,其它为对应控制信号线。

表2-16内存芯片各管脚说明

外接管脚名

内接管脚名

全称

描述

A2~A14

A0~A12

Address

地址线

D0 ~D31

DQ0~DQ31

Data Input/Output

数据线

A24,A25

BA0,BA1

Bank Address

L-BANK片选信号

DQM0~DQM3

LDQM, UDQM

Data Input/Output Mask

高,低

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

网站地图

Top