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.

OMAPL138 EMIF读取速率问题



OMAPL138+FPGA通过EMIF异步模式通讯。

EMA_CLK 100MHz,寄存器参数配置如下:

R_STROBE = 3

W_STROBE = 3

TA = 2

ASIZE = 1h (16Bit)

配置源码如下:

    /*CS4 FPGA*/
    emifaRegs->CE4CFG = 0x00000000;
    emifaRegs->CE4CFG |= CSL_EMIFA_CE4CFG_ASIZE_16BIT;
    emifaRegs->CE4CFG |= 0x3 << CSL_EMIFA_CE4CFG_R_STROBE_SHIFT;
    emifaRegs->CE4CFG |= 0x3 << CSL_EMIFA_CE4CFG_W_STROBE_SHIFT;
    emifaRegs->CE4CFG |= 0x2 << CSL_EMIFA_CE4CFG_TA_SHIFT;

操作时发现EMIF的读取延时很高。如下图所示:

图中蓝线是片选信号。开始进行2次写入操作,然后连续进行5次读取操作。测试程序只对FPGA进行读写操作,且运行过程中ARM核未运行任何程序。

写入操作正常。片选长度为58ns,两次写入之间的延时为28ns。写入速率约为12MHz

读取操作不正常。片选长度为58ns,但两次读取操作之间的延时为308ns。读取速率约为3Mhz。远远低于应用要求。

通过DMA读取时,两次读取操作之间的延时减小为108ns,读取速率约为6MHz仍然很慢。如下图所示:

尝试修改过EMIF相关的寄存器配置,都不能改变这个数据读取后的延时。

请问这个延时是什么原因造成的?有什么方法可以提高EMIF的读取速率?