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.

F28379的EMIF无法向FPGA传送数据

用F28379的EMIF向FPGA传数据,程序如下:

FLUSHSECTOR = 1;
DAB = 255;

其中,FLUSHSECTOR和DAB分别为地址*(Uint16 *)0x0010001E和*(Uint16 *)0x00100004。FPGA输出两个信号,用来观察数据传输是否正确。如下图所示

其中黑色实线用来判断数据线EM1D上是否为255,红色虚线为接收到的DAB地址使能信号。根据上面的程序,DAB地址线使能时,EM1D上的数据应为255,但实际结果却是DAB为高时,EM1D的数据要过较长实际才能变为255,这导致FPGA收到的数据不正确。

调了2天了,还是没找到问题的解决办法,确定不是FPGA的问题。

下面是EMIF的配置,麻烦TI的工程师看一下。

    ClkCfgRegs.PERCLKDIVSEL.bit.EMIF1CLKDIV = 0;    //EMIF时钟为200MHz
    Emif1Regs.ASYNC_CS2_CR.bit.ASIZE = 1; //16位模式
    Emif1Regs.ASYNC_CS2_CR.bit.TA = 0;
    Emif1Regs.ASYNC_CS2_CR.bit.R_HOLD = 0;   //1个保持周期
    Emif1Regs.ASYNC_CS2_CR.bit.R_STROBE = 1; //2个建立周期
    Emif1Regs.ASYNC_CS2_CR.bit.R_SETUP = 0;  //1个建立周期
    Emif1Regs.ASYNC_CS2_CR.bit.W_HOLD = 0;   //1个保持周期
    Emif1Regs.ASYNC_CS2_CR.bit.W_STROBE = 1; //2个建立周期
    Emif1Regs.ASYNC_CS2_CR.bit.W_SETUP = 0;  //1个建立周期
    Emif1Regs.ASYNC_CS2_CR.bit.EW = 0; //禁止等待
    Emif1Regs.ASYNC_CS2_CR.bit.SS = 0;  //禁止Strobe Mode