s3c2440数据手册的第五章是关于内存控制器的,这篇文章就是关于它的理解和备忘(暂不涉及SDRAM的编程)。内存类芯片常见的基本就那么几大类。使用很频繁的,,后面可能专门对它们做一个总结。
-
2440的内存控制器基本情况:
——共有8个存储体(bank),每一个bank最大都达到一个128m,共1g了。除bank0(必须是只能是设置为访问外部是16/32位)外,其他存储体的可编程访问外部芯片的位的大小为8/16/32位。
——8个存储体中,前六个用于ROM、SRAM等(在它手册里,写成SROM, means ROM or SRAM type memory )。bank6/7用于ROM、SRAM、SDRAM等。
——7个bank开始地址是固定的,最后一个,地址和空间大小是灵活的
——前6个大小被确定,后2个大小可变,且必须一致(所以,最后一个的地址才是灵活的)
——所有内存组访问周期都可编程
——外部等待(extend wait)来延长总线通讯周期
——对于SDRAM,支持自刷新和关闭模式(所以,只对bank6/7有效) -
内存控制器/读写内存操作的流程
在对非SDRAM的内存芯片读写操作时,只需要按照2440的手册,将内存芯片和2440的引脚对应接好(特别注意是一片还是两片),然后直接编程,配置寄存器,主要就是注意16/32/8位选好、时序(时序就是,让2440的各个T> = 内存芯片的各个T)。内存控制器会自动读取或者写入的了。 -
几个问题:
Q:为什么每个bank最大寻址区域为128m?
A:外接的引脚地址线,是27根,即是2^27 = 128m
Q:看引脚图会发现data线是单独出来的,没有和gpxn口共用,而地址线只有一部分是和GPAn共用?
A:是。Data、addr这些引脚配置的模式都是high z模式的,只是2440包裹了这一层而已。但是而且这些引脚使用作为addr和data时,甚至还不用去设置GPXnCON和GPXnDATA之类的(GPXnDATA还好说,对于GPXnCON,是最不能理解的)
Q:nWAIT的n是什么意思
A:名称前面有n就是低电平有效。
Q:下面几个寄存器位的含义
A:nWBE为“写字节使能(write byte enable) ,nBE: 字节使能(byte enable),nCE:片选使能(nCE是内存类芯片的引脚名称,对于2440来说,是nGCSn),nWE:写使能 ,nOE:读使能 -
bank0的功能(比较特殊,挑出来说)
Bank0数据总线必须配置为16位和32位之一的宽度(事实上,配置寄存器时也只有32/16位可选)。由于可转换的ROM存储体(映射到ACN_0000)的总线宽度应 在第一次ROM访问之前确定,这将取决于在复位时OM的