嵌入式芯片本身的ram和rom都很小,但有时需要处理的数据有很大,于是出现了EMC,EMC可以外接norflash,sdram等来增加存储区域。
CPU可以通过AHB从机寄存器接口对EMC寄存器进行编程.为了避免可能发生的字顺序问题,操作EMC寄存器的过程中,所有数据的床上必须是32位宽的字.
通过数据缓冲区进行读写操作,可提供存储器带宽并减少传输等待时间.数据宽城区可用作读缓冲区,写缓冲区或读写缓冲区.
访问外部存储器需要注意几点:
1.数据传输的字节顺序
2.数据产生的宽度
3.对写保护的存储器区域进行写操作.
EMC与NOR_FLASH接线方式。
EMC_OE输出使能,EMC_WE写使能,EMC_CS片选
EMC操作norflash用到的寄存器
我们再看看EMC的基本操作过程:
1.首先是使能EMC: lpc1788为例
在使用EMC前一定要先在功率控制寄存器中将其使能: 有的芯片不需要这两步操作,本身就开启的
LPC_SC->SCS |= (0x01 << 0);
LPC_SC->PCONP |= 0x00000800; /* 使能EMC功率控制 */
接下来,设置EMC控制寄存器EMCControl的第0位置1,使能EMC:
LPC_EMC->Control = 0x00000001; /* 使能EMC */
LPC_EMC->Config = 0x00000000; /*小端模式,ROP复位 */
2.引脚连接:
将相关的引脚连接到EMC模块.
LPC_IOCON->P3_0 = 1; /* D0 @ P3.0 */
LPC_IOCON->P3_1 = 1; &n