### S3C2410A 存储器控制器知识点详解
#### 一、概述
本章节主要介绍了S3C2410A处理器中存储器控制器的基本概念及其功能特点。S3C2410A是一款高性能的ARM920T内核微处理器,广泛应用于嵌入式系统开发中。其存储器控制器模块负责管理与外部存储器之间的数据交换,确保数据读写操作的正确性与高效性。
#### 二、存储器控制器特性
1. **小/大端选择**:存储器控制器支持小端和大端两种字节序模式的选择,可通过软件进行配置。
2. **地址空间**:每个Bank的最大地址空间为128MB,共计8个Bank,提供高达1GB的地址空间。
3. **Bank0特殊性**:Bank0仅支持16位或32位的总线宽度,而其他Bank支持可编程的访问大小(8/16/32位)。
4. **Bank数量**:共有8个Bank,其中6个用于ROM、SRAM等类型存储器,剩余2个可用于多种类型的存储器,如ROM、SRAM、SDRAM等。
5. **Bank起始地址**:除了最后一个Bank的起始地址可编程外,其余7个Bank的起始地址固定。
6. **Bank大小可编程**:最后两个Bank的大小可以根据实际需求进行编程设定。
7. **访问周期可编程**:所有Bank的访问周期均可编程,以便优化系统性能。
8. **支持外部Wait**:可以通过插入外部Wait来延长总线访问周期。
9. **SDRAM管理**:支持SDRAM的自刷新和掉电模式管理。
#### 三、功能描述
1. **Bank0总线宽度**
- Bank0的数据总线(nGCS0)在复位后必须设置为16位或32位宽度。
- 系统根据OM[1:0]引脚上的逻辑电平确定Bank0的总线宽度。
- OM1 和 OM0 的组合决定了Bank0的总线宽度以及是否进入测试模式。
- 00: NAND Flash模式
- 01: 16位总线宽度
- 10: 32位总线宽度
- 11: 测试模式
- 对于不同总线宽度的Bank0,地址引脚的连接也有所不同。
2. **nWAIT引脚的作用**
- nWAIT引脚用于接收来自外部存储器的等待信号,当外部存储器无法及时响应时,可以通过该引脚向处理器发送等待信号,从而延长访问周期。
3. **nXBREQ/nXBACK引脚操作**
- 这两个引脚用于实现外部总线请求/应答机制,支持处理器与其他设备之间更加灵活的通信方式。
4. **存储器接口举例**
- 本章节提供了具体的实例,展示了如何设置不同的Bank,包括其起始地址、总线宽度等参数。
- 表5-1列出了Bank6和Bank7的起始地址和终止地址,以及它们对应的不同存储器大小的情况。
#### 四、寄存器介绍
1. **总线带宽和等待控制寄存器(BWSCON)**
- 用于控制总线的带宽以及等待时间,以适应不同类型的外部存储器。
2. **总线控制寄存器(BANKCONN:nGCS0-nGCS5)**
- 控制前六个Bank的基本属性,如总线宽度、等待时间等。
3. **BANK控制寄存器(BANKCONn:nGCS6-nGCS7)**
- 控制最后两个Bank的相关参数,这两个Bank可以用于更复杂类型的存储器,如SDRAM。
4. **刷新控制寄存器**
- 用于SDRAM的刷新管理,包括自刷新和掉电模式。
5. **BANKSIZE寄存器**
- 设置最后两个Bank的大小。
6. **SDRAM模式寄存器集寄存器(MRSR)**
- 控制SDRAM的工作模式,如预充电时间、行地址周期时间等。
S3C2410A的存储器控制器具备丰富的特性和功能,能够满足嵌入式系统对不同类型存储器的需求,并且通过各种寄存器的设置,可以灵活地配置存储器系统的各项参数,从而优化整体系统的性能。