This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EMIF如何配置

我写了个程序,想让DSP CE1脚拉低。

程序如下:

for(;;)
{
souraddr = (unsigned int *)0x403c00;
*souraddr=0xff;
delay();
delay();
souraddr = (unsigned int *)0x403800;
*souraddr=0;
delay();
delay();
}

可是CE1脚一直是高。是不是EMIF没配置好?如何配置?谢谢!

  • 请问你用的是哪款DSP? CE1接的是什么memory? EMIF寄存器是怎么配置的?

  • TMS320VC5509

    CPLD

    /*SDRAM的EMIF设置*/
    EMIF_Config emiffig = {
      0x221,  //EGCR  : the MEMFREQ = 00,the clock for the memory is equal to cpu frequence
         //    the WPE = 0 ,forbiden the writing posting when we debug the EMIF
         //        the MEMCEN = 1,the memory clock is reflected on the CLKMEM pin
         //        the NOHOLD = 1,HOLD requests are not recognized by the EMIF
      0xFFFF, //EMI_RST: any write to this register resets the EMIF state machine
      0x3FFF, //CE0_1:  CE0 space control register 1
         //        MTYPE = 011,Synchronous DRAM(SDRAM),16-bit data bus width
      0xFFFF,   //CE0_2:  CE0 space control register 2
      0x00FF,   //CE0_3:  CE0 space control register 3
         //        TIMEOUT = 0xFF;
      0x1FFF, //CE1_1:  CE0 space control register 1
                //        Asynchronous, 16Bit
      0xFFFF, //CE1_2:  CE0 space control register 2
      0x00FF, //CE1_3:  CE0 space control register 3
     
      0x1FFF, //CE2_1:  CE0 space control register 1
                //        Asynchronous, 16Bit
      0xFFFF, //CE2_2:  CE0 space control register 2
      0x00FF, //CE2_3:  CE0 space control register 3
     
      0x1FFF, //CE3_1:  CE0 space control register 1
                //        Asynchronous, 16Bit
      0xFFFF, //CE3_2:  CE0 space control register 2
      0x00FF, //CE3_3:  CE0 space control register 3
     
      0x2911,   //SDC1:   SDRAM control register 1
         //    TRC = 8
         //        SDSIZE = 0;SDWID = 0
         //        RFEN = 1
         //        TRCD = 2
         //        TRP  = 2
      0x0410, //SDPER : SDRAM period register
         //    7ns *4096
      0x07FF,    //SDINIT: SDRAM initialization register
         //        any write to this register to init the all CE spaces,
         //        do it after hardware reset or power up the C55x device
      0x0131 //SDC2:   SDRAM control register 2
         //        SDACC = 0;
         //        TMRD = 01;
         //        TRAS = 0101;
         //        TACTV2ACTV = 0001;        
      };

  • vc5509的数据空间是word编址的,

    所以souraddr = (unsigned int *)0x403c00; 这个0x403c00是byte address, 你要用word address, 0x201E0.