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

McASP用EDMA访问调试通过了,然后使用McASP的AFIFO就不行了

参考一个McBSP的例子,AFIFO使能,对EDMA的设置也修改了

void EDMA_Config(int dmaCh, Uint32 srcAddr, Uint32 dstAddr, Uint32 a, Uint32 b, Uint32 c,Uint32 bInput)

#define L138_McASP0_DATA_Reg    0x01D02000

EDMA_Config(0, L138_McASP0_DATA_Reg, dma_mem_alloc((AdNum-1)*sizeof(int)*PCM_SAMPLE_NUM*2*2), sizeof(int), (AdNum-1), PCM_SAMPLE_NUM*2, TRUE);
EDMA_Config(1, dma_mem_alloc((DaNum-1)*sizeof(int)*PCM_SAMPLE_NUM*2*2), L138_McASP0_DATA_Reg, sizeof(int), (AdNum-1), PCM_SAMPLE_NUM*2, FALSE);

本来channel0的源地址和channel1的目标地址为接收缓存器[0]和发送缓存器[1]地址,修改前后都数据搬运都不成功,而且EDMA中断都进不了,我的理解是,不管edma的源地址或目标地址有没有设置正确,McASP接收或者是发送完一个slot的数据,必定会引起触发事件,在AB同步传输中,只要触发C次后,就会进入一次中断。现在的结果我自己理解为,使能AFIFO后,就没有产生触发事件了。

观察状态寄存器的值:RDTDA(Receive data ready flag)=1,RSTAFRM(Receive start of frame flag)=1

user4433409:

Tony Tang:

回复 user4433409:

FIFO是按32bit word访问与计数的。你看是不是这个问题。

还有你看一下paraset的值是否已经有变化,比如地址,计数。

赞(0)
未经允许不得转载:TI中文支持网 » McASP用EDMA访问调试通过了,然后使用McASP的AFIFO就不行了
分享到: 更多 (0)