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

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

 

猜你喜欢

转载自blog.csdn.net/m0_37765662/article/details/82910049