您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 西安工业大学电信学院嵌入式课件chapter_5(第5-8节).
第5章目录1.简介2.引脚配置3.存储器寻址4.系统控制模块5.存储器加速模块6.外部存储器控制器7.引脚连接模块8.向量中断控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定时器0/115.脉宽调制器(PWM)16.A/D转换器17.实时时钟18.看门狗5.5存储器加速模块(MAM)•概述LPC2114/2124/2210/2212/2214微控制器的ARM内核工作在最高频率60MHz时,执行一条指令约为17ns。而Flash存储器的访问周期需要50ns,即最高频率20MHz。所以如果将代码存放在Flash中,将影响ARM内核发挥最大效能。为了能将指令从内部Flash存储器更高效快速地提取到ARM内核,而设计产生了一个存储器加速模块(MAM)。5.5存储器加速模块(MAM)•存储器加速模块寄存器描述MAM控制寄存器(MAMCR):MAMCR[1:0]:用于MAM的模式控制,具体关系如下表。位765432[1:0]功能------模式控制MAMCR[1:0]描述00禁止MAM功能01部分使能MAM功能10完全使能MAM功能11保留5.5存储器加速模块(MAM)•存储器加速模块寄存器描述MAM定时寄存器(MAMTIM):MAMTIM[2:0]:决定使用多少个CCLK周期访问Flash存储器,这样可以调整MAM时序使其匹配处理器操作频率,具体关系如下表。位76543[2:0]功能-----取指周期控制MATIM[2:0]描述MATIM[2:0]描述000保留100取指周期为4个CCLK001取指周期为1个CCLK101取指周期为5个CCLK010取指周期为2个CCLK110取指周期为6个CCLK011取指周期为3个CCLK111取指周期为7个CCLK5.5存储器加速模块(MAM)•存储器加速模块寄存器描述MAM定时寄存器(MAMTIM):MATIM[2:0]描述MATIM[2:0]描述000保留100取指周期为4个CCLK001取指周期为1个CCLK101取指周期为5个CCLK010取指周期为2个CCLK110取指周期为6个CCLK011取指周期为3个CCLK111取指周期为7个CCLK当访问周期设置为1个CCLk时,实际上关闭了MAM,但是仍可以选择MAM模式对功耗进行优化。注意:不正确的设定会导致器件的错误操作5.5存储器加速模块(MAM)•MAM使用要点当改变MAM定时值时,必须先将MAMCR设置为0关闭MAM,然后将新值写入MAMTIM。最后将需要的操作模式的对应值(1或2)写入MAMCR,再次打开MAM;对于低于20MHz的系统时钟,MAMTIM设定为001,将Flash访问时间设定为1CCLK;对于20MHz到40MHz之间的系统时钟,建议将Flash访问时间设定为2CCLK;高于40MHz的系统时钟,建议使用3CCLK。•相关启动代码分析...MAMCR=0;#ifFcclk20000000MAMTIM=1;#else#ifFcclk40000000MAMTIM=2;#elseMAMTIM=3;#endif#endifMAMCR=2;...设置步骤:1.关闭MAM模块;2.根据用户定义的系统时钟频率决定MAM定时寄存器的值;3.打开MAM模块,完全使能MAM模块;系统时钟(CCLK)MAM定时值20MHz120MHz~40MHz240MHz3C代码:第5章目录1.简介2.引脚配置3.存储器寻址4.系统控制模块5.存储器加速模块6.外部存储器控制器7.引脚连接模块8.向量中断控制器9.GPIO10.UART011.UART112.I2C接口13.SPI接口14.定时器0/115.脉宽调制器(PWM)16.A/D转换器17.实时时钟18.看门狗ARM7TDMI-SCPUAHBToVPB桥EMCVICI2C串行接口SPI串行接口UART0&1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7局部总线系统功能EMC•外部存储器控制器概述只有LPC2200系列的微控制器含有EMC模块。外部静态存储器控制器是一个AHB总线上的从模块。EMC模块为AHB系统总线和外部存储器件之间提供了一个接口。ARM7TDMI-SCPUAHBToVPB桥EMCVICI2C串行接口外部中断TIMER0/1SRAMFlashAHB总线ARM7局部总线系统功能EMC外部存储器或外部I/O器件外部存储器或外部I/O器件外部存储器或外部I/O器件外部存储器或外部I/O器件•外部存储器控制器概述EMC模块支持4个独立配置的存储器组,每个存储器组的总线宽度可设置为8、16或者32位,但是同一个存储器组的器件必须宽度相同。每个存储器组最大支持16MB寻址空间。支持字节定位读取。ARM7TDMI-SCPUAHBToVPB桥EMCVICI2C串行接口外部中断TIMER0/1SRAMFlashAHB总线ARM7局部总线系统功能EMC外部存储器或外部I/O器件外部存储器或外部I/O器件外部存储器或外部I/O器件外部存储器或外部I/O器件•外部存储器控制器概述地址输出线是A[23:0],其中地址位A[25:24]用于4个存储器组的译码(CS[3:0])。总线存储器组选择线CS[3:0]Bank地址范围配置寄存器00x80000000~0x80FFFFFFBCFG010x81000000~0x81FFFFFFBCFG120x82000000~0x82FFFFFFBCFG230x83000000~0x83FFFFFFBCFG3Bank0Bank1Bank2Bank3•外部存储器总线接口描述引脚名类型引脚描述D[31:0]输入/输出外部存储器数据线A[23:0]输出外部存储器地址线OE输出输出使能信号,低有效BLS输出字节定位选择信号,低有效WE输出写使能信号,低有效CS[3:0]输出芯片选择信号,低有效接口引脚描述:这些引脚与P1、P2和P3口GPIO功能复用,所以在使用外部总线前首先要正确设置PINSEL2寄存器。可以在硬件上对引脚BOOT1:0设定,复位时微处理器自动初始化PINSEL2。或者在软件上字节初始化PINSEL2,这只适用于片内FLASH引导程序运行的系统中。XCLKCSOEWE/BLSAddrData外部存储器读访问典型波形:•外部存储器总线接口描述外部存储器写访问典型波形:XCLKCSOEWE/BLSAddrData有效数据有效地址有效地址变化数据有效数据经过一个等待状态后,存储器输出有效数据。5.6外部存储器控制器(EMC)•相关寄存器外部存储器控制器包含4个寄存器,它们分别对应一个存储器组。通过这些寄存器,可以分别设置每个存储器组读写访问之间插入的等待周期个数、每个存储器组的总线宽度等。名称描述访问复位值地址BCFG0存储器组0的配置寄存器读/写0x2000FBEF0xFFE00000BCFG1存储器组1的配置寄存器读/写0x2000FBEF0xFFE00004BCFG2存储器组2的配置寄存器读/写0x1000FBEF0xFFE00008BCFG3存储器组3的配置寄存器读/写0x0000FBEF0xFFE0000C5.6外部存储器控制器(EMC)•相关寄存器位31:3029:2827262524功能ATMWBMWPWPERRBUSERR位23:1615:11109:543:0功能保留WST2RBLEWST1保留IDCY存储器组配置寄存器0~3(BCFG0~3):IDCY:在两个存储器组之间切换访问时,为了避免器件间的总线竞争,需要插入空闲的CCLK周期,该域控制着这个周期数。计算公式为:空闲CCLK周期数=IDCY+1;(IDCY的复位值为15)5.6外部存储器控制器(EMC)•相关寄存器位31:3029:2827262524功能ATMWBMWPWPERRBUSERR位23:1615:11109:543:0功能保留WST2RBLEWST1保留IDCY存储器组配置寄存器0~3(BCFG0~3):WST1:一些慢速的外部存储器可能不能适应EMC最高速度的读操作,所以需要在读周期中插入若干个空闲等待周期,以降低读操作的速度。该域控制着读周期中插入的空闲CCLK周期数。计算公式为:读操作周期长度=WST1+3;(WST1的复位值为15)5.6外部存储器控制器(EMC)•相关寄存器位23:1615:11109:543:0功能保留WST2RBLEWST1保留IDCY存储器组配置寄存器0~3(BCFG0~3):XCLKCSOEWE/BLSAddrData有效地址变化数据有效数据WST1=01个等待周期外部存储器读访问波形(WST1=0):读操作,共需3个周期5.6外部存储器控制器(EMC)•相关寄存器位23:1615:11109:543:0功能保留WST2RBLEWST1保留IDCY存储器组配置寄存器0~3(BCFG0~3):XCLKCSOEWE/BLSAddrDataWST1=1,2个等待周期外部存储器读访问波形(WST1=1):有效地址变化数据有效数据读操作,共需4个周期5.6外部存储器控制器(EMC)•相关寄存器位31:3029:2827262524功能ATMWBMWPWPERRBUSERR位23:1615:11109:543:0功能保留WST2RBLEWST1保留IDCY存储器组配置寄存器0~3(BCFG0~3):RBLE:如果外部存储器的总线宽度为16或32位,那么读写操作是对总线上的2个或4个字节的数据同时进行的。某些存储器允许对总线上的某几个字节进行独立的读写操作,而不影响其它字节,这通过芯片的字节定位引脚实现。当RBLE位为1时使能字节定位功能,BLS3:0在读写操作时输出低电平。当RBLE位为0时,禁止该功能。D[7:0]D[15:8]nBLS0nBLS1nLBnUBA[23:0]nCS0nCEnWEnWED[15:0]D[7:0]D[15:0]D[7:0]A[23:0]A[23:0]LPC2200SRAM5.6外部存储器控制器(EMC)•相关寄存器例1:向地址0x80001000写入一个8位数据0xAA1.地址总线上出现地址;2.数据总线上出现数据0x??AA,高8位无效;0xAA无效数据3.控制线nBLS0、nCS0和nWE拉低,将低8位数据写入芯片。0x80001000LDRR0,=0x80001000MOVR1,#0xAASTRBR1,[R0]汇编代码:D[7:0]D[15:8]nBLS0nBLS1nLBnUBA[23:0]nCS0nCEnWEnWED[15:0]D[7:0]D[15:0]D[7:0]A[23:0]A[23:0]LPC2200SRAM5.6外部存储器控制器(EMC)•相关寄存器例2:向地址0x80001001写入一个8位数据0x551.地址总线上出现地址;2.数据总线上出现数据0x55??,低8位无效;0x55无效数据3.控制线nBLS1、nCS0和nWE拉低,将高8位数据写入芯片。0x80001000LDRR0,=0x80001001MOVR1,#0x55STRBR1,[R0]汇编代码:5.6外部存储器控制器(EMC)•相关寄存器位31:3029:2827262524功能ATMWBMWPWPERRBUSERR位23:1615:11109:543:0功能保留WST2RBLEWST1保留IDCY存储器组配置寄存器0~3(BCFG0~3):WST2:和读操作类似,一些慢速的外部存储器可能不能适应EMC最高速度的写操作,所以需要在写周期中插入若干个空闲等待周期,以降低写操作的速度。该域控制着写周期中插入的空闲CCLK周期数。计算公式为:写操作周期长度=WST2+3;(WST2的复位值为15)对于BurstROM,计算公式为:写操作周期长度=WST2+1;外部存储器写访问波形(WST2=0):XCLK
本文标题:西安工业大学电信学院嵌入式课件chapter_5(第5-8节).
链接地址:https://www.777doc.com/doc-2036318 .html