SDRAM 讲解(一)

mini2440的地址怎么分配。mini2440处理器的地址怎么分配。mini2440的处理器是S3C2440,理论上,S3C2440处理器可以使用的物理地址空间可以达到4GB,其中前1GB的地址(也就是0x0000 0000--0x4000 0000)为外设地址空间,还有一部分为CPU内部使用的特殊功能寄存器地址空间(地址范围为0x4800 0000--0x5FFF FFFF),其余的地址空间没有使用。

下面用两个表格说明外设地址空间好特殊功能寄存器地址空间

内存概念:

内存是代码的执行空间,程序是以文件的形式保存在硬盘里面的,程序在运行之前需要由操作系统载入到内存中,

由于内存是RAM(可以随机访问),所以可以通过地址去定位一个字节的数据,CPU在执行程序时候把PC值也就是指针设为程序在内存的开始地址。按顺序进行取值译码工作。

s3c2440讲解

1、 S3C2440对外引出了27根地址线ADDR0~ADDR26,它最多能够寻址128MB,

而S3C2440的寻址空间可以达到1GB,这是由于S3C2440将1GB的地址空间分成了8个BANKS(Bank0~Bank7),

其中每一个BANK对应一根片选信号线nGCS0~nGCS7(这是存储器自身的引脚口)

当访问BANKx的时候,nGCSx管脚电平拉低,用来选中外接设备, S3C2440通过8根选信号线和27根地址线,就可以访问1GB

27根地址线(可以看友善之臂的第一页原理图 ADDR0~ADDR26 )

S3C2440芯片性质决定了,SDRAM类型的内存条只能焊在 Bank6~Bank7上,最大支持内存 256M,即0x30000000--0x3FFFFFFF ,    但是我们的只是 64M=32* 2,所以地址范围是 上图 第 6 列

0x3800 0000       11   1000  0000   0000   0000   0000    0000   0000  (看到后面,感觉这里理解不是很正确),因为 SDRAM 只有 13根地址线,

0x3000 0000       11   0000  0000   0000   0000   0000    0000   0000

0x2800 0000       10   1000  0000   0000   0000   0000    0000   0000

0x2000 0000       10   0000  0000   0000   0000   0000    0000   0000

显然我们发现了规律,

0---111..111(27根)  =  128M

其中Bank0~Bank5可以焊接ROM或SRAM类型存储器,Bank6~Bank7可以焊接ROM,SRAM,SDRAM类型存储器,也就是说,S3C2440的SDRAM内存应该焊接在Bank6~Bank7上,最大支持内存256M,Bank0~Bank5通常焊接一些用于引导系统启动小容量ROM,具体焊接什么样存储器,多大容量,根据每个开发板生产商不同而不同,比如MINI2440开发板将2M的Norflash焊接在了Bank0上,用于存放系统引导程序Bootloader,将两片32M,16Bit位宽SDRAM内存焊接在Bank6和Bank7上,并联形成64M,32位内存。

你要知道 ARM 是 32位,芯片所以坑定 寻址空间不止上面一个G的大小,还有三个G 呢。

其中Bank0~Bank5可以焊接ROM或SRAM类型存储器,Bank6~Bank7可以焊接ROM,SRAM,SDRAM类型存储器,也就是说,S3C2440的SDRAM内存应该焊接在Bank6~Bank7上,最大支持内存256M,

Bank0~Bank5通常焊接一些用于引导系统启动小容量ROM,具体焊接什么样存储器,多大容量,根据每个开发板生产商不同而不同,比如MINI2440开发板将2M的Norflash焊接在了Bank0上,用于存放系统引导程序Bootloader,

将两片32M,16Bit位宽SDRAM内存焊接在Bank6和Bank7上,并联形成64M,

__________________________________________________________________________________________________________________________________________________________________________________________

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

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

2、SDRAM内存工作原理

上面产生的误解关于 Bank ,这个bank 不是 和 S3C2440 芯片有关系,而是

所以人们在 SDRAM内部分割成多个 L-Bank,目前基本都是 4个(这也是SDRAM规范中的最高L-Bank数量),由此可见,在进行寻址时就要先确定是哪个 L-Bank,然后在这个选定的 L-Bank中选择相应的行与列进行寻址。因此对内存的访问,一次只能是一个 L-Bank工作。如图2-50

当对内存进行操作时(见下图),先要确定操作L-Bank,因此要对L-Bank进行选择。在内存芯片的外部管脚上多出了两个管脚BA0, BA1,用来片选4个L-Bank

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

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

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

通过S3C2440 16位宽内存芯片接线图可以看出,两片内存芯片只有两个地方不一样,LDQM, UDQM和数据总线DQn接线方式不一样。

{LDQM和UDQM}

由于存储芯片位宽为16位,一次可以进行两个字节的读取。但是,通常操作系统里最小寻址单位是1字节,因此内存控制器必须要保证可以访问内存里每一个字节。UDQM ,LDQM分别代表16位数据的高,低字节读取信号,当读取数据时,LDQM /UDQM分别用来控制16位数据中高低字节能否被读取,当LDQM /UDQM为低电平时,对应的高/低字节就可以被读取,如果LDQM /UDQM为高电平时,对应的高/低字节就不能被读取。当向内存里写入数据时,LDQM /UDQM控制数据能否被写入,当LDQM /UDQM为低电平时,对应的高/低字节就可以被写入,如果LDQM /UDQM为高电平时,对应的高/低字节就不能被写入。通过对LDQM /UDQM信号的控制可以控制对两个存储芯片存储数据,由于两个存储单元的地址线是通用的,他们都能接收到CPU发出的地址信号,但是,发给两个存储单元的LDQM /UDQM信号是不同的,以此来区分一个字的高低字节。

S3C2440A为32位CPU,也就是说其数据总线和地址总线宽度都是32位(可以理解为32根线一端连接CPU内部,另外一端连接向内存控制器),那么内存数据的输入/输出端也要保证是32位总线,MINI2440上采用两片16位宽总线内存芯片并联构成32位总线。其中一个芯片连接到CPU数据总线的低16位,另外一个芯片连接到数据总线上的高16位,并联成32位总线,因此两个芯片的输入/输出总线连接到CPU总线上的不同管脚上。

时间: 2024-10-05 17:20:43

SDRAM 讲解(一)的相关文章

(一) ARM 内存SDRAM 讲解

2.SDRAM内存工作原理 上面产生的误解关于 Bank ,这个bank 不是 和 S3C2440 芯片有关系(RAM 自身有bank , SDRAM 自身也有bank ,就像书 有 好几章节一样) 所以人们在 SDRAM内部分割成多个 L-Bank,目前基本都是 4个(这也是SDRAM规范中的最高L-Bank数量),由此可见,在进行寻址时就要先确定是哪个 L-Bank,然后在这个选定的 L-Bank中选择相应的行与列进行寻址.因此对内存的访问,一次只能是一个 L-Bank工作.如图2-50 当

FMC—扩展外部 SDRAM

本章参考资料:< STM32F4xx 参考手册 2>.< STM32F4xx 规格书>.库帮助文档< stm32f4xx_dsp_stdperiph_lib_um.chm>.关于 SDRAM 存储器,请参考前面的" 常用存储器介绍"章节,实验中 SDRAM 芯片的具体参数,请参考其规格书< IS42-45S16400J> 来了解. SDRAM 控制原理STM32 控制器芯片内部有一定大小的 SRAM 及 FLASH 作为内存和程序存储空间

力战SDRAM(二)

前文中讲解了SDRAM的总体思想,以为有了例程,改了改一些时钟方面的问题就行了,然而烧录到自己的开发板上却不好使! (备注:特权例程所用飓风二代,我的是飓风四代,这点没有关系!主要的修改就是1.时钟频率不同25-48: 2.SDRAM芯片不同HY-winbond,结果是,我的是13位地址,他的是12位地址,也就是容量不同) 现象一:烧录成功后,串口显示程序出现FF,之后再无数据! 于是又是研读了一番程序,看了看自己的程序,没有发现可以更改的地方,只是把时钟,计数方面的修改的更为精准,继续烧录,现

(三)内存 SDRAM 驱动实验

SDRAM 芯片讲解: 地址: 行地址 (A0-A12) 列地址 (A0-A8)    片选信号(BA0 BA1)(L-BANK)(因为SDRAM有 4片) 两片SDRAM 连线唯一区别在 UDQM LDQM DQM0 ---片1 LDQM DQM1----片1 UDQM DQM2----片2  LDQM DQM3---片2   UDQM ———————————————————————————————————————————————————————————— 1.读操作(见杨铸 121) 地址线

SDRAM的工作原理

 SDRAM的工作原理.控制时序.及相关控制器的配置方法一直是嵌入式系统学习.开发过程中的一个难点.掌握SDRAM的知识对硬件设计.编写系统启动代码.提高系统存取效率.电源管理都有一定的意义.本文想通过: 1.SDRAM的工作原理. 2.HY57V561620 SDRAM介绍. 3.S3C2410和HY57V561620的接线方法. 4.S3C2410 SDRAM控制器的配置方法. 5.SDRAM控制时序分析 这5个方面来帮助初学者了解SDRAM.文章分为2篇,第1篇讲解前3个知识点,第2篇

第一期_储存控制器与SDRAM

内存接口概念 首先来分析下操作GPIO控制器和操作UART控制器两者的区别 如图是S3C2440是个片上系统,有GPIO控制器(接有GPIO管脚),有串口控制器 (接有TXD RXD引脚) 配置GPIO控制器相应的寄存器,即可让引脚输出高低电平:配置UART控制器相应的寄存器,即可让引脚输出波形.前者相对简单,类似门电路,后者相对复杂,属于协议类接口.类似的协议类接口还有iic.iis.spi等. 对于CPU是不管什么接口的,它只写相应的寄存器,由控制器根据寄存器的配置去控制具体的引脚. 那么C

SDRAM(1):基本介绍和操作时序

一.存储器类型 1.RAM,随机存取存储器(Random Access Memory),也叫主存,是与 CPU 直接交换数据的内部存储器.可按地址进行读写,掉电后数据会丢失. (1)DRAM:动态RAM,使用电容的电量来表示逻辑 0 和 1,电容充放电的特性导致其需要不断的刷新来保证数据不丢失.存储容量较大,多用于数据存储.常见的有 SDRAM 和 DDR. (2)SRAM:静态RAM,使用触发器的两个稳定状态来表示逻辑 0 和 1,不需要刷新操作.存储容量一般较小,但读写速度快. 2.ROM,

【STM32H7教程】第49章 STM32H7的FMC总线应用之SDRAM

完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第49章       STM32H7的FMC总线应用之SDRAM 本章教程为大家讲解SDRAM的驱动实现,后面LCD的显存和大数量的存取都要用到. 49.1 初学者重要提示 49.2 SDRAM硬件设计 49.3 SDRAM驱动设计 49.4 SDRAM板级支持包(bsp_fmc_sdram.c) 49.5 SDRAM驱动移植和使用 49.6 实验例程设计框架 49.

拓扑排序讲解

在这里我们要说的拓扑排序是有前提的 我们在这里说的拓扑排序是基于有向无环图的!!!. (⊙o⊙)…我所说的有向无环图都知道是什么东西吧.. 如果不知道,我们下面先来来说说什么是有向无环图. 所谓有向无环图,顾名思义是不存在环的有向图(至于有向图是什么不知道的在前面我们有一个图论讲解上都有). 点的入度:以这个点为结束点的边数. 点的出度:以这个点为出发点的边的条数. 拓扑序就是对于一个节点的一个排列,使得(u,v)属于E,那么u一定出现在v的前面.然而拓扑排序就是一个用来求拓扑序的东西. 对于左