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 */