S3C2440 与 SDRAM 的地址连线分析

    S3C2440 有 27 根地址线 ADDR[26:0],8 根片选信号 ngcs0-ngcs7,对应 bank0-bank7,当访问 bankx 的地址空间,ngcsx 引脚为低电平,选中外设。
     2^27=2^7 * 2^10 * 2^10 = 128Mbyte
     8*128Mbyte = 1Gbyte
    所以 S3C2440 总的寻址空间是 1Gbyte。 市面上很少有 32 位宽度的单片 SDRAM,一般选择2片16位 SDRAM 扩展得到 32位 SDRAM. 选择的SDARM是  HY57V561620F,4Mbit * 4bank *16,共 32Mbyte。

       首先了解下 SDRAM 的寻址原理:SDRAM 内部是一个存储阵列。 可以把它想象成一个表格。 和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元。这个表格称为逻辑 BA NK。目前的 SDRAM 基本都是 4 个 BANK。寻址的流程就是先指定 BANK 地址,再指定行地址, 最后指定列地址。 这就是 SDRAM 的寻址原理。

       查看 HY57V561620F 的资料,这个 SDRAM有13根行地址线   RA0-RA12   9根列地址线    CA0-CA8   2根 BANK 选择线 BA0-BA1 。
 
       SDRAM的地址引脚是复用的,在读写 SDRAM存储单元时,操作过程是将读写的地址分两次输入到芯片中,每一次都由同一组地址线输入。两次送到芯片上去的地址分别称为行地址和列地址。 它们被锁存到芯片内部的行地址锁存器和列地址锁存器。/RAS 是行地址锁存信号,该信号将行地址锁存在芯片内部的行地址锁存器中;/CAS 是列地址锁存信号,该信号将列地址锁存在芯片内部的列地址锁存器中。

 

        SDRAM 的 A0 接 S3C2440 的 ADDR2,很多初学者都对这里又疑问。 A0 为什么不接 ADDR0? 要理解这种接法,首先要清楚在 CPU的寻址空间中,字节(8位)是表示存储容量的唯一单位。用 2片HY57V561620F扩展成32位 SDRAM,可以认为每个存储单元是 4个字节。因此当它的地址线 A1:A0=01时,处理器上对应的地址线应为 ADDR3:ADDR2=01(因为 CPU的寻址空间是以 Byte为单位的)。所以 SDRAM 的A0引脚接到了S3C2440的 ADDR2地址线上。同理,如果用1 片 HY57V561620F,数据线是16位,因为一个存储单元是 2个字节,这时 SDRAM的 A0要接到S3C2440的 ADDR1上。 也就是说SDRAM的A0接S3C2440的哪一根地址线是根据整个SDRAM的数据
位宽来决定的。
 
       上面的接线图上,BA0,BA1 接ADDR24,ADDR25,为什么用这两根地址线呢? BA0~BA1代表了 SDRAM 的最高地址位。因为CPU的寻址空间是以字节(Byte)为单位的,本系统 SDRAM 容量为 64MByte,那就需要 A25~A0(64M=2^26)地址线来寻址,所以BA1~BA0地址线应该接到 2440 的 ADDR25~ADDR24引脚上。

       13根行地址线+9根列地址线 = 22根。另外 HY57V561620F 一个存储单元是2个字节,相当于有了 23根地址线。BA0,BA1是最高地址位,所以应该接在ADDR24,ADDR25上。 也就是说 SDRAM 的BA0,BA1接S3C2440的哪几根地址线是根据整个 SDRAM 的容量来决定的。
 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值