S3C2440与SDRAM分析

转自:http://blog.sina.com.cn/s/blog_8daab13801016dtn.html

终于拿到了友善之臂mini2440的板子,从今天开始就要开始我的linux之旅。之前断断续续看过2440的数据手册及linux应用,给我的总体感觉就是真难,简直是摸不着头脑。哎,大家都说女人不适合做技术,这条路我不知道能不能坚持下去,即使坚持下去我又能走多远呢?不过如果不做技术,我还能做什么呢?哎,废话不多说,还是一步一步地开始吧。

 
感觉从STM32到s3c2440,这中间有一个跳跃,因为STM32一直是使用片上FLASH和RAM,MDK也是定义好了下载算法,进行简单地配置就可以了。而s3c2440确需要外扩FLASH和SDRAM,对于他们之间如何联系起来我却不是很了解。只是一边看着数据手册一边看原理图及板子的使用手册慢慢地理解,下面进行s3c2440与SDRAM之间的连接进行简单地分析。
 
S3C2440 有 27 根地址线 ADDR[26:0],2^27= 128Mbyte ,这也相当于一个bank的最大容量,但是bank6和bank7可配置大小,如果小于128M就有些高位地址线没用。在友善之臂上使用的是2片32M的SDRAM,总容量为64M,2^26= 32Mbyte,因此这里用到最高地址总线为ADDR25。
 
板上用到的是HY57V561620FTP,4Mbit * 4bank *16 ,共32Mbyte。
这里要了解下 SDRAM 的寻址原理。 
SDRAM 内部是一个存储阵列。可以把它想象成一个表格。和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元。这个表格称为逻辑BANK。目前的 SDRAM 基本都是 4 个 BANK。寻址的流程就是先指定 BANK 地址,再指定行地址,最后指定列地址。

HY57V561620F这个SDRAM有 

13根行地址线   RA0-RA12 

9 根列地址线    CA0-CA8 
2 根BANK 选择线 BA0-BA1 
SDRAM的地址引脚是复用的,在读写SDRAM存储单元时,操作过程是将读写的地址分两次输入到芯片中,每一次都由同一组地址线输入。两次送到芯片上去的地址分别称为行地址和列地址。它们被锁存到芯片内部的行地址锁存器和列地址锁存器。/RAS 是行地址锁存信号,该信号将行地址锁存在芯片内部的行地址锁存器中;/CAS 是列地址锁存信号,该信号将列地址锁存在芯片内部的列地址锁存器中,这样就更容易理解这里只有15个地址总线了。
以下是SDRAM的部分的原理图:



从原理图上可以看到SDRAM的A0接到的是2440地址线2,可做以下理解:

这里使用的是2片16bit的SDRAM并联组成的32bit,数据宽度为32,查看2440的数据手册第五章


可以看出SDRAM 的A0接S3C2440 的ADDR2。SDRAM 的A0接S3C2440 的哪一根地址线是根据整个SDRAM 的数据位宽来决定的。(因为CPU的寻址空间是以Byte为单位的)
 
原理图中的BA0~BA1 代表了SDRAM 的最高2地址位,因此接ADDR24与ADDR25。也可以这样推理:13根行地址线+9根列地址线 = 22根。另外 HY57V561620F 一个存储单元是2 个字节,相当于有了23根地址线。BA0,BA1 是最高地址位,所以应该接在ADDR24,ADDR25上。也就是说SDRAM 的BA0,BA1接S3C2440 的哪几根地址线是根据整个SDRAM 的容量来决定的。 
 
在此,我还有一个疑惑:板子使用手册上说,SDRAM的物理起始地址为 0x30000000,这个是怎么得出的呢?手册上解释说是它们都使用了nGCS6 作为片选。
2240有8 根片选信号 ngcs0-ngcs7,对应 bank0-bank7,当ngcsx为低电平的时候,就选中对应的bankx,如果使用ngcx6作为片选信号,则选中的是bank6,查手册bank6的其实地址是0x30000000.这样是没错。但是我却自以为这里的片选信号是接的ngcx0,所以就出现了理解上的失误。在仔细看了原理图,我将LnSCS0混淆成了LnGCS0,照一般性的理解可能LNSCS0应该就是从LnGSCS0引脚出来,其实是从LnGSCS6上!哎,不能自以为是啊。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2440 硬件手册 INTRODUCTION This user’s manual describes SAMSUNG's S3C2440A 16/32-bit RISC microprocessor. SAMSUNG’s S3C2440A is designed to provide hand-held devices and general applications with low-power, and high-performance microcontroller solution in small die size. To reduce total system cost, the S3C2440A includes the following components. The S3C2440A is developed with ARM920T core, 0.13um CMOS standard cells and a memory complier. Its lowpower, simple, elegant and fully static design is particularly suitable for cost- and power-sensitive applications. It adopts a new bus architecture known as Advanced Micro controller Bus Architecture (AMBA). The S3C2440A offers outstanding features with its CPU core, a 16/32-bit ARM920T RISC processor designed by Advanced RISC Machines, Ltd. The ARM920T implements MMU, AMBA BUS, and Harvard cache architecture with separate 16KB instruction and 16KB data caches, each with an 8-word line length. By providing a complete set of common system peripherals, the S3C2440A minimizes overall system costs and eliminates the need to configure additional components. The integrated on-chip functions that are described in this document include: · Around 1.2V internal, 1.8V/2.5V/3.3V memory, 3.3V external I/O microprocessor with 16KB I-Cache/16KB DCache/ MMU · External memory controller (SDRAM Control and Chip Select logic) · LCD controller (up to 4K color STN and 256K color TFT) with LCD-dedicated DMA · 4-ch DMA controllers with external request pins · 3-ch UARTs (IrDA1.0, 64-Byte Tx FIFO, and 64-Byte Rx FIFO) · 2-ch SPls · IIC bus interface (multi-master support) · IIS Audio CODEC interface · AC’97 CODEC interface · SD Host interface version 1.0 & MMC Protocol version 2.11 compatible · 2-ch USB Host controller / 1-ch USB Device controller (ver 1.1) · 4-ch PWM timers / 1-ch Internal timer / Watch Dog Timer · 8-ch 10-bit ADC and Touch screen interface · RTC with calendar function · Camera interface (Max. 4096 x 4096 pixels input support. 2048 x 2048 pixel input support for scaling) · 130 General Purpose I/O ports / 24-ch external interrupt source · Power control: Normal, Slow, Idle and Sleep mode · On-chip clock generator with PLL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值