外部存储器控制器EMC:外部管理控制器
在LPC2300系列ARM里,外部存储器控制器(EMC)为AHB总线和外部存储器件提供了接口,使得CPU得以扩展外部存储器
LPC2300系列中的LPC2378和LPC2388具备EMC,支持2个可单独配置的存储器组
这两个存储器组都支持SRAM,ROM,Flash,BurstROM或一些外部I/O器件
存储器组的片选地址范围大小为64KB
下面是EMC的控制器:对于AHB从机寄存器接口,CPU可以通过AHB从机寄存器接口对EMC寄存器进行编程
为了避免可能发生的字顺序问题,操作EMC寄存器的过程中,所有数据的床上必须是32位宽的字
通过数据缓冲区进行读写操作,可提供存储器带宽并减少传输等待时间
EMC含有4个16字大小的数据缓冲区
数据宽城区可用作读缓冲区,写缓冲区或读写缓冲区
存储器控制器状态机包括一个静态存储器控制器
CPU通过AHB从机存储器接口访问外部存储器,在访问外部存储器时,需要注意以下几点:1
数据传输的字节顺序2
数据产生的宽度3
对写保护的存储器区域进行写操作
我们再来看一下EMC的结构图:我们再看看EMC的基本操作过程:1
首先是使能EMC:在使用EMC前一定要先在功率控制寄存器中将其使能:PCONP=PCONP|0x00000800;//第11位置1接下来,设置EMC控制寄存器EMCControl的第0位置1,使能EMC:EMCControl=0x00000001;2
引脚连接:将相关的引脚连接到EMC模块
PINSEL6=0x00005555;//选择D0~D7脚PINSEL8=0x55555555;//选择A0~A15脚tmp=PINSEL9;tmp&=&0x0FF0FFFF;PINSEL9=tmp|0x50090000;//选择-OE,-WE,-CS0,-CS1脚3
时序设置:通常情况下,我们再操作外部存