TI中文支持网
TI专业的中文技术问题搜集分享网站

用SEED-DEC6416T开发板,DSP的EMIFB与FPGA通过异步FIFO通信并传输数据,QDMA将EMIFB的数据搬移到内部存储器,QDMA读到的数据不对问题

我是用SEED-DEC6416T开发板,将EMIFB的整个BCE2空间分配给扩展总线使用,通过XBUSR选择BCE2空间;我是通过FPGA的异步FIFO与DSP通信并传输数据的,EMIFB配置为16位异步模式,当FPGA的FIFO写满后触发外部中断INT7进入中断,开启QDMA传输数据,QDMA每次从固定地址(BCE2空间的首地址)搬移8192(FIFO的深度)个数据到内部RAM,我有三个疑惑:

1、C6416T有外部总线存储空间选择寄存器XBUSR吗?在开发板的资料中看到XBUSR是是映射0x60000028,但我在TI官网上没有找到相关资料啊;

2、程序跑起来后,在CCS的memory中观察到,BCE2地址空间的值都是全部相同的,QDMA从0x68000000(BCE2空间的首地址)搬移得到的8192个数据也全部是相等的,这与FPGA写入FIFO的数据不相符的;

3、QDMA每次搬移8192个数据,通过示波器观察EMIFB的BARE信号,只能看到一个脉冲信号,而不是连续的8192个周期性的脉冲信号,但QDMA确实是搬移了8192个数据的。

我没有找出来是软件还是硬件的什么原因,急需大神指导!

下面是我EMIFB和EDMA的配置程序:

////////////////////////////////////////////////////////////////////////////
//EMIFB 寄存器配置函数
////////////////////////////////////////////////////////////////////////////
void set_emifb(void) 
{
EMIFB_Config myEmifbCfg={
0x00012C38, //GBLCTL:ECLKOUT2输出时钟信号168MHZ,外部器件准备就绪并申请、拥有EMIF,HOLD输入允许
0xFFFFFF03, //CE0CTL:
0xFFFFFF03, //CE1CTL:
0xFFF20311, //CE2CTL:Rsetup=2,Rstrobe=3,hold=1;16位异步
0xFFFFFF03, //CE3CTL
0x00000000,
0x00000000,
0x00000000,
0x00000002, //CESEC0
0x00000002, //CESEC1
0x00000002, //CESEC2
0x00000002 //CESEC3 
};

EMIFB_config(&myEmifbCfg);
}

////////////////////////////////////////////////////////////////////////////
//QDMA寄存器配置函数
////////////////////////////////////////////////////////////////////////////
void set_qdma(void)

Uint32 i = 0;
volatile Uint32 ciprl;
EDMA_Config myQdmaCfg={
0x28370000, //PRI_HIGH,16BIT,1 D,S_FIX,D_INC,TCINT=1,TCCM:TCC=000111,NO_LINK 
SRC_ADDR, //Src addr
0x00012000, //Transfer Count,element size=8192
DST_ADDR, //Dst addr
0x00000001, //Index
0x00000000, //Element count reload and link addr
};

myhEdma=EDMA_open(EDMA_CHA_EXTINT7,EDMA_OPEN_ENABLE);
EDMA_qdmaConfig(&myQdmaCfg);
EDMA_enableChannel(myhEdma);
EDMA_setChannel(myhEdma);
ciprl = EDMA_RGET(CIPRL);
printf("qdma is running!\n");
while(!(EDMA_getPriQStatus()) & EDMA_OPT_PRI_HIGH);
EDMA_close(myhEdma);

}

ning duan:

问题还未解决,急求各位大神指导啊!

赞(0)
未经允许不得转载:TI中文支持网 » 用SEED-DEC6416T开发板,DSP的EMIFB与FPGA通过异步FIFO通信并传输数据,QDMA将EMIFB的数据搬移到内部存储器,QDMA读到的数据不对问题
分享到: 更多 (0)