DSP

TMS320C6474学习总结(十三)----DDR2

2019-07-13 10:57发布

TMS320C6474中的DDR2控制器 1. DDR2控制器       DDR2内存控制器作为DDR2 SDRAM的接口,兼容JESD79-2B标准的DDR2 SDRAM,主要特点:               ·最高支持512MB               ·总线宽度为32/16bits               ·内部bank数:1,2,4,8               ·页大小:256,512,,1024,2048               ·SDRAM自动初始化               ·自刷新模式               ·可设定的时序参数               ·大端或小端传输        DSP内部的主设备,如EDMA3控制器及CPU可以通过交换网络直接访问DDR2控制器。PLL2对输入时钟进行10倍频,输出的时钟作为DDR2的输入。 DDR2CLKOUT可按下面的公式计算: DDR2CLKOUT frequency = (PLL2 input clock frequency *10)/2 2. DDR2控制器的初始化        DDR2 SDRAM中的MR及EMR寄存器用于配置设备的操作模式。这些寄 存器主要配置突发类型、突发长度、CAS延时等。DDR2控制器在初始化期间 通过MRS及EMRS指令来配置DDR2的MR及EMR寄存器。        DDR2控制器会在如下情况进行初始化操作:        2.1、在硬复位或软复位后自动进行初始化        在复位之后进行的初始化操作,DDR2控制器中FIFO存储的所有命令及数 据将丢失。但是,如果是由写入SDCFG寄存器触发初始化操作,数据及命令不 会丢失,且DDR2控制器会确保在当前的指令执行完成后再进行初始化。        复位后的初始化会使用SDRAM timing1及SDRAM timing2寄存器中的默认值配置DDR2;使用MR及EMR中默认值配置DDR2的模式寄存器。由于软复位并不复位DDR2控制器的寄存器,随后的初始化动作仍将使用之前的配置。        2.2、在对SDCFG的低16bit进行写操作后        对SDCFG的低16bit位进行写操作也会触发初始化动作,按如下流程操作进 行初始化:               1、置SDCFG中BOOT_UNLOCK位及TIMUNLOCK位开启修改操作               2、配置时序参数寄存器SDTIM1及SDTIM2               3、在DMCCTL中写入RL读取延时,保持保留区域的值不被修改               4、设定SDRFC,设置DDR2的刷新率               5、设置SDCFG,置TIMUNLOCK位并清BOOT_UNLOCK位               6、清TIMUNLOCK位        初始化结束后,DDR2控制器进行一次自动刷新,使DDR2控制器处于空闲 状态,DDR2的所有bank被关闭。 注:在使用DDR2之前必须要对DDR2进行初始化操作 DDR_SDCFG    = 0x00D3CA32; /*BOOT_UNLOCK=1,TIMUNLOCK=1,16bit bus width,CAS5,8 banks, 10 bit column */ DDR_SDRFC    = 0x00000a29; /* Refresh rate = 333000000 * 7.8us = 0xa29 */ DDR_SDTIM1   = 0x4D246C9A; /* Timing 1 */ DDR_SDRIM2   = 0x00993c42; /* Timing 2 */ DDR_DDRPHYC  = 0x00000006; /* PHY read latency for CAS 5 is 5 + 2 - 1 */ DDR_SDCFG    = 0x0053CA32; /*BOOT_UNLOCK=0,TIMUNLOCK=1,16bit bus width,CAS5,8 banks, 10 bit column */