收藏 分销(赏)

arm外部存储器控制器.doc

上传人:pc****0 文档编号:5904436 上传时间:2024-11-23 格式:DOC 页数:6 大小:210.50KB 下载积分:10 金币
下载 相关 举报
arm外部存储器控制器.doc_第1页
第1页 / 共6页
arm外部存储器控制器.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
外部存储器控制器     EMC:外部管理控制器.     在LPC2300系列ARM里,外部存储器控制器(EMC)为AHB总线和外部存储器件提供了接口,使得CPU得以扩展外部存储器.     LPC2300系列中的LPC2378和LPC2388具备EMC,支持2个可单独配置的存储器组.这两个存储器组都支持SRAM,ROM,Flash,Burst ROM或一些外部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=0x0000 5555;                //选择D0~D7脚             PINSEL8=0x5555 5555;                //选择A0~A15脚             tmp=PINSEL9;             tmp&=&0x0FF0 FFFF;             PINSEL9=tmp|0x5009 0000;           //选择-OE,-WE,-CS0,-CS1脚       3.时序设置:         通常情况下,我们再操作外部存储器时分为读,写两个操作.         在读操作的过程中,我们需要配置下面的寄存器             a.静态存储器输出使能延时寄存器(EMCStaticWaitOen0-1);             b.静态存储器读延时寄存器(EMCStaticWaitRd0-1);             c.静态存储器页模式读延时寄存器(EMCStaticWaitPage0-1);                          通过设置静态存储器输出使能延时寄存器(EMCStaticWaitOen0-1)可改变片选信号优先到输出有效的延时t;                          通过静态存储器读延时寄存器(EMCStaticWaitRd0-1)可改变从片选信号有效到器件输出允许失效之间的延时t.                          页模式下,一次片选有效期内可联系读/写4个字节,在这过程中,-WE和-OE信号保持不变,只有地址信号发生变化,此时不能理解读取数据线上的数据,而不像等待一段时间t.             EMCStaticWaitPage的作用就是设置这段等待时间t的长短.             要注意的是,如果t值太大,读的速度会变慢,而t值太小,则读取可能会出错.           写操作的时序设置,我们需要配置的寄存器有:             静态存储器写使能延时寄存器(EMCStaticWaitWen0-1);             静态存储器写延时寄存器(EMCStaticWaitWr0-1);                          通过设置静态存储器写使能延时寄存器(EMCStaticWaitWen0-1)改变从"片选有效到写使能信号有效"之间的延时时间t.                          通过设置静态存储器写延时寄存器EMCStaticWaitWr0-1)改变片选有效到写使能信号失效之间的延时时间t 我们看一个EMC的时序设置的例子:     EMCStaticConfig0=0x0;        //禁止页模式     EMCStaticWaitWen0=0x0;       //写使能延时为1cclk     EMCStaticWaitWr0=0x1F;       //延时33cclk写     EMCStaticWaitOen0=0x0;       //输出使能延时为1cclk     EMCStaticWaitRd0=0x1F;       //延时为33cclk读     EMCStaticWaitPage0=0x0;      //页读模式延时为1cclk     EMCStaticWaitTurn0=0x0;      //总线空闲为1cclk     我并没有去仔细的查手册来看每一个寄存器的更详细的使用方法,从文档中抄袭了一下,大家先对某些东西有些印象,在使用的时候再慢慢的消化,学习的过程也只能如此.       4.读写操作:     在设置完EMC之后,就可以像访问RAM一样以字节,半字以及字读写的方式来访问外部存储器了.例如:     #define CS1ADDR0BUF3 (*(volatile unsigned long *)(0x80004000))     int main(void)     {         volatile long x;         EMCInit();                      //EMC初始化         while(1)         {             ......             CS1ADDR0BUF3=0x55AA55AA;    //以字的方式进行读写             x=CS1ADDR0BUF0;         }         return (0);     }    
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服