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.

c6455 EMIFA接口问题



最近在用dspc6455 的emifa接口与fpga之间进行数据传输,现在遇到一些问题,

配置代码如下:

{
EMIFA_CE2CFG = 0x00240120;
EMIFA_CE3CFG = 0x00240120;
EMIFA_CE4CFG = 0x80000106;
EMIFA_BPRIO = 0x000000FE;
printf("emif init end\n");
}

PLL的配置是50M*20/10 = 100M

#define EMIFA_CE4_BASE_ADDR    (0xC0000000u)

Uint32 *pSyncData = (Uint32 *)EMIFA_CE4_BASE_ADDR;
void read_emif()
{


printf("\tInfo: Sync read write \n");

for(time_cnt = 0;time_cnt < 65530; time_cnt ++)
{
delay_123();
for (index = 0; index < 6; index++)
{
read_data[index] = pSyncData[index];
}
}
printf("ends \n");
}

读emifa 端口上的数据我们用的是一个for循环去做的测试

每次读6个数据,delay 10us左右

波形如下图所示:

在正常情况下,CE2和OE信号应该保持低电平直到一次传输完毕,而上图显示的情况则是每发送一次传输就会停顿,感觉像是异步的读数据,但是我们配置的是同步模式。应该是读完6次数据 ce和oe才会拉高。

有几个问题,首先是不是for循环对EMIFA的时序产生了影响,用edma搬移数据这个现象会不会没有