第5章存储器扩展电路和总线扩展DM642的外部存储器EMIFA接口FLASH存储器的扩展SDRAM存储器扩展DM642的输入/输出接口扩展第5章存储器扩展电路和总线扩展2020/1/2025.1DM642的外部存储器EMIFA接口5.1.1EMIFA接口概述1.支持的数据宽度8位、16位、32位和64位。第5章存储器扩展电路和总线扩展2020/1/2032.外扩存储空间DM642通过EMIFA接口扩展外部存储器时,使用ACE0~ACE3信号作为空间片选信号,可以把外扩的存储器映射在CE0~CE3不同空间中,每个存储空间的大小为256MB:CE0空间0x80000000~0x8FFFFFFFCE1空间0x90000000~0x9FFFFFFFCE2空间0xA0000000~0xAFFFFFFFCE3空间0xB0000000~0xBFFFFFFF第5章存储器扩展电路和总线扩展2020/1/2043.EMFA接口时钟NAMENO.TYPEDESCRIPTIONAECLKINH25I外部时钟输入,最高输入时钟频率133MHzAECLKOUT2J23O/Z时钟输出,输出的时钟频率可编程,可为时钟源频率的1分频、2分频或4分频AECLKOUT1J26O/Z时钟输出,输出的时钟频率等于时钟源的频率EMIFA接口同步时钟的来源取决于地址总线引脚AEA[20:19]的电平状态。AEA[20:19]00:来自AECLKIN引脚(缺省)01:来自CPU,对CPU主时钟进行4分频10:来自CPU,对CPU主时钟进行6分频11:保留未用第5章存储器扩展电路和总线扩展2020/1/2054.EMFA接口引脚第5章存储器扩展电路和总线扩展2020/1/2065.1DM642的外部存储器EMIFA接口5.1.2EMIFA接口的主要寄存器GBLCTL—EMIFglobalcontrolregisterCE0CTL—EMIFCE0spacecontrolregisterCE1CTL—EMIFCE1spacecontrolregisterCE2CTL—EMIFCE2spacecontrolregisterCE3CTL—EMIFCE3spacecontrolregister见SPRU266EP134第5章存储器扩展电路和总线扩展2020/1/207CE0SEC—EMIFCE0spacesecondarycontrolregisterCE1SEC—EMIFCE1spacesecondarycontrolregisterCE2SEC—EMIFCE2spacesecondarycontrolregisterCE3SEC—EMIFCE3spacesecondarycontrolregisterSDCTL—EMIFSDRAMcontrolregisterSDTIM—EMIFSDRAMrefreshcontrolregisterSDEXT—EMIFSDRAMextensionregisterPDTCTL—EMIFperipheraldevicetransfercontrolregister第5章存储器扩展电路和总线扩展2020/1/2081.EMIFGlobalControlRegister(GBLCTL)Legend:R/W=Read/Write;R=Readonly;-n=valueafterresetGBLCTL[31~20]:Reserved.Thereservedbitlocationisalwaysreadas0.Avaluewrittentothisfieldhasnoeffect.第5章存储器扩展电路和总线扩展2020/1/209GBLCTL[19~18]:EK2RATE,AECLKOUT2引脚时钟输出分频控制位。“00”—原始时钟频率(AECLKIN、主时钟/4、主时钟/6);“01”—2分频的原始时钟频率;“10”—4分频的原始时钟频率;“11”一保留未用。Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset第5章存储器扩展电路和总线扩展2020/1/2010GBLCTL[17]:EK2HZ,AECLKOUT2时钟输出控制位。“0”一若EK2EN等于“1”,AECLKOUT2引脚输出连续时钟脉冲;“1”一AECLKOUT2引脚处于高阻状态。GBLCTL[16]:EK2EN,AECLKOUT2电平输出使能位。“0”—AECLKOUT2引脚输出低电平;“1”—AECLKOUT2输出时钟使能。Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset第5章存储器扩展电路和总线扩展2020/1/2011GBLCTL[15~14]:保留未用。GBLCTL[13]:BRMODE,总线请求控制位。“0”—BUSREQ引脚信号用于存储器读写过程中挂起状态或工作状态的指示;“1”—BUSREQ引脚信号用于存储器读写过程中刷新、挂起和工作3种状态的指示。GBLCTL[12]:保留未用。Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset第5章存储器扩展电路和总线扩展2020/1/2012GBLCTL[11]:BUSREQ,总线请求信号(BUSREQ引脚信号)输出指示位。“0”—BUSREQ引脚输出低电平,表明没有存储器被刷新、挂起或访问;“1”—BUSREQ引脚输出高电平,表明存储器被刷新、挂起或访问。Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset第5章存储器扩展电路和总线扩展2020/1/2013GBLCTL[10]:ARDY,ARDYinputbit.ValidARDYbitisshownonlywhenperformingasynchronousmemoryaccess(whenasyncCEnisactive).“0”—ARDYinputislow,表明外部设备未准备就绪;“1”—ARDYinputishigh,表明外部设备已淮备就绪。Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset第5章存储器扩展电路和总线扩展2020/1/2014Legend:R/W=Read/Write;R=Readonly;-n=valueafterresetGBLCTL[9]:HOLD,HOLDinputbit.“0”—HOLD引脚输入低电平,外部设备正在向EMIFA接口请求;“1”—HOLD引脚输入高电平,没有外部设备发出请求。第5章存储器扩展电路和总线扩展2020/1/2015Legend:R/W=Read/Write;R=Readonly;-n=valueafterresetGBLCTL[8]:HOLDA,HOLDAoutputbit.“0”—HOLDA引脚输出低电平,表明外部设备可以使用EMIFA接口;“1”—HOLDA引脚输出高电平,表明外部设备不能使用EMIFA接口。第5章存储器扩展电路和总线扩展2020/1/2016Legend:R/W=Read/Write;R=Readonly;-n=valueafterresetGBLCTL[7]:NOHOLD,HOLD引脚信号使能位。“0”—HOLD引脚保持请求信号有效,HOLD引脚功能被使能;“1”—HOLD保持请求信号无效,HOLD引脚保持请求功能被屏蔽。第5章存储器扩展电路和总线扩展2020/1/2017GBLCTL[6]:EKlHZ,AECLKOUTl引脚输出控制位。“0”一如果EKlEN等于“1”,AECLKOUTl引脚输出连续的时钟脉冲;“1”一AECLKOUTl引脚处于高阻状态。GBLCTL[5]:EKlEN,AECLKOUTl时钟输出使能位。“0”一AECLKOUTl引脚输出低电平;“1”一AECLKOUTl引脚时钟输出使能。Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset第5章存储器扩展电路和总线扩展2020/1/2018GBICTL[4]:CLK4EN,CLKOUT4引脚使能位。“0”—CLKOUT4引脚输出高电平;“1”—CLKOUT4引脚使能,输出时钟脉冲。CLKOUT4引脚与GP1引脚复用,复位过程中CLKOUT4引脚处于使能状态,并输出时钟脉冲,DM642复位结束后,可通过配置GPEN寄存器把该引脚配置为GP1。Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset第5章存储器扩展电路和总线扩展2020/1/2019GBLCTL[3]:CLK6EN,CLKOUT6使能位。“0”—CLKOUT6引脚输出高电平;“1”—CLKOUT6引脚使能,输出时钟脉冲。CLKOUT6引脚与GP2引脚复用,复位过程中CLKOUT6引脚处于使能状态,并输出时钟脉冲,DM642复位结束后,可通过配置GPEN寄存器把该引脚配置为GP2。GBLCTL[2~0]:保留未用。Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset第5章存储器扩展电路和总线扩展2020/1/20202.EMIFCESpaceControlRegisters(CECTL0-3)Legend:R/W=Read/Write;R=Readonly;-n=valueafterresetMYTYPE(CECTL[7:4])是空间控制寄存器CECTLx中很重要的字段,用于设置EMFA接口的数据宽度和接口类型。“0x0”—EMIFA接口配置为8位数据宽度的异步接口;“0x1”—EMFA接口配置为16位数据宽度的异步接口;“0x2”—EMIFA接口配置为32位数据宽度的异步接口;第5章存储器扩展电路和总线扩展2020/1/2021Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset“0x3”—EMIFA接口配置为32位数据宽度的SDRAM接口;“0x4”—EMIFA接口配置为32位同步程序存储器接口;“0x5”~“0x7”—保留未用;“0x8”—EMIFA接口配置为8位数据宽度的SDRAM接口;第5章存储器扩展电路和总线扩展2020/1/2022Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset“0x9”—EMFA接口配置为16位数据宽度的SDRAM接口;“0xA”—EWFA接口配置为8位数据宽度同步程序存储器接口;“0xB”—EMFA接口配置为16位数据宽度同步程序存储器接口;“0xC”—EMFA接口配置为64位数据宽度的异步存储器接口;第5章存储器扩展电路和总线扩展2020/1/2023Legend:R/W=Read/Write;R=Readonly;-n=valueafterreset“0xD”—EMFA接口配置为64位数据宽度的SDRAM接口:“0xE”—EMIFA接口配置为64位数据宽度同步程序存储器接口;“0xF”—保留未用。第5章存储器扩展电路和总线扩展2020/1/20243.EMIFCESpaceSecondaryControlRegisters(CESEC0-3)Legend:R/W=Read/Write;R=Readonly;-n=valueafterresetSNCCLK(CESEC[6])EMIFA接口同步时钟选择控制位。“0”—AECLKOUTl引脚的输出时钟作为EMIFA接口同步时钟;“1”—AECLKOUT2引脚的输出时钟作为EMIFA接口同步时钟。第5章存储器扩展电路和总线扩展2020/1/2025Legend:R/W=Read/Write;R=Readonly;-n=valueafterresetSYNCWL(CESEC[3:2])用于设置“写”数据时的延迟时间。“0”—延迟时间设置为0个时钟周期