理解内存类原理图
# HW 学习例子
- S3C2440 Chip -> 内存控制器
- SD RAM芯片/ NOF FLASH芯片/ NET网卡芯片
SYSTEM - 主要的信号类型
内存控制器来控制
- 地址线 addr
- 数据线 data
- 片选信号 CS
还有外设上的
- 读信号 RE
- 写信号 WE
CHIP - 内存控制器
S3C2440,三星的一款ARM9内核(ARM920T CPU core)微处理器,数据总线是32位宽。
CPU把地址发送给内存控制器,内存控制器根据不同的地址来选择发送哪个片选信号。只有当一个内存设备的片选信号被选中时,该内存设备才会工作。
所以,同一个时刻只有一个设备被选中,不选中的芯片不工作。所以说,GPIO、UART、IIC、SDRAM、DM9000和Nor Flash都属于CPU统一编址。
需要特别注意的是,Nand Flash不属于CPU统一编址,它和CPU之间没有连接任何地址线。
CHIP - 地址空间
- 每个BANK的地址空间都是128MB,总共8个BANK,合计1GB空间
- 可编程选择总线的位宽(8/16/32位),但是BANK0只支持两种位宽(16/32位)
- 共有8个BANK,其中BANK0~BANK5只支持外接ROM或SRAM,BANK6、BANK7还支持外接SDRAM,BANK0~BANK6的起始地址是固定的
- 当访问相应的地址时,存储控制器会自动将对应的nGCSx引脚输出低电平,从而选中外接设备
SDRAM
JZ2440开发板使用的SDRAM型号为EM63A165TS-6G,SDRAM芯片是台湾钰创科技公司(EtronTech)的产品。
开发板外接了两片EM63A165TS-6G,每片芯片位宽为16位,大小为32MB,所以JZ2440外接内存大小一共为64MB。
需要说明的一点是,而S3C2440每个BANK最大支持128MB内存,共有BANK6、BANK7两个BANK可以外接内存,故S3C2440最大可以支持256MB的外接内存。
只有BANK6和BANK7支持SDRAM,而JZ2440开发板只把SDRAM接到了BANK6上,所以我们只需要设置BANK6即可。由于SDRAM外接在了BANK6上,所以内存的基地址是0x30000000。
由原理图可知,SDRAM由两片16bit的芯片组成,数据总线的宽度为32bit。
SDRAM 信号
对于SDRAM,S3C2440提供了一组专用的SDRAM信号:
- SDRAM时钟有效信号SCKE
- SDRAM时钟信号SCLK0/SCLK1
- 数据掩码信号DQM0/DQM1/DQM2/DQM3
- SDRAM片选信号nSCS0
- SDRAM行地址选通脉冲信号nSRAS
- SDRAM列地址选通脉冲信号nSCAS
- 写允许信号nWE(该信号不是专用于SDRAM的)
学习参考资料:
https://blog.csdn.net/BakerTheGreat/article/details/104189642
Github地址:https://github.com/kumataahh