6.1使用存储控制器访问外设的原理

6.1.1 S3C2410/S3C2440的地址空间

  存储控制器用于通过地址选择外设

  支持小字节序、大字节序(通过软件选择)

  每个BANK的地址空间为128M,总共1GB(8BANKs)

  可编程控制的总线位宽(8/16/32bit),BANK0只能选择两种位宽(16/32bit)

  总共8个BANK,BANK0-BANK5可以支持外接ROM、SRAM等,BANK6-BANK7除可以支持ROM、SRAM外,还支持SDRAM等

  BANK0-BANK6的起始地址是固定的

  BANK7的起始地址可编程选择

  BANK6、BANK7的地址空间大小是可编程控制的

  每个BANK的访问周期均可编程控制

  可通过wait信号延长总线的访问周期

  外接SDRAM,支持自刷新和省电模式

S3C2410/S3C2440外引出27根地址线ADDR0-ADDR26,CPU对外还引出8根片选信号nGCS0-nGCS7对应于BANK0-BANK7

  8个BANK的地址空间:

  

6.1.2存储控制器与外设的关系

  地址线所确定的地址值加上这个BANK的其实地址,就是这个外设的访问地址

  SDRAM的信号:

  (1)SDRAM时钟有效信号SCKE

  (2)SDRAM时钟信号SCLK0/SCLK1

  (3)数据掩码信号DQM0DQM1DQM2DQM3

  (4)SDRAM片选信号nSRAS0(它与nGCS6是同一引脚的两个功能)

  (5)SDRAM行地址选通信号nSRAS

  (6)SDRAM行地址选通信号nSCAS

  (7)写允许信号nWE

SDRAM含有4个L-BANK

  对SDRAM的访问分为4个步骤:

  (1)CPU发出片选信号nSCS0有效,它选中SDRAM芯片

  (2)两根地址信号选择一个L-Bank(addr24、addr25)

  (3)对被选中的芯片进行统一的行/列寻址

  (4)数据传输

6.1.3 存储控制器的寄存器使用方法

  存储控制器共有13个寄存器,BANK0~BANK5只需要设置BWSCON和BANKCONx(x为0~5)两个寄存器;BANK6、BANK7外接SDRAM时,还要设置REFERESH、BANKSIZE、MRSRB6、MRSRB7等四个寄存器。

  (以下控制器的使用方法,在S3C2440的芯片手册中都有)

  1、位宽和等待控制寄存器BWSCON

  2、BANK控制寄存器BANKCONx(x为0~5)

    控制外接设备的访问时序

  3、BANK控制寄存器BANKCONx(x为6~7)

    它与BANKCONx(x为0~5)不同

  4、刷新控制寄存器REFRESH

    设置SDRAM刷新周期相关数据,在SDRAM数据手册上有标明

  5、BANKSIZE寄存器

    设置BANK6/7的大小,BANK7的其实地址会随着BNAK6的大小而变化

  6、SDRAM模式设置寄存器MRSRBx(x为6、7)

    设置SDRAM时序的一个时间参数(CL)

 6.2 存储控制器操作实例:使用SDRAM