这段时间在使用MCASP+EDMA传输音频数据,目的是要对采集的音频信号做一些算法处理,但是出现了一些问题,看各位大神能否帮忙解惑,(编解码芯片是AIC23B)
(1)使用MCASP_getRbufAddr和MCASP_getRbufAddr函数来获取MCASP0的地址时不是0x3C000000,是一些保留区或EMIFA的CE0的地址,使用MCASP_getRbufAddrCfg也是如此,不知道是因为什么原因;
(2)在配置好EDMA(一维传输)和MCASP后,如果设定EDMA为单元同步时虽然能一直触发EDMA的CPU中断,但是目的地址的值却一直保持不变,值也不正确,当然耳机输出端也听不到声音;但是,改为帧同步真可以清晰地听到声音,这时为什么?
(3)设定EDMA为帧同步时,在处理CPU中断函数时,接受数组(接收通道的目的数组)一直在不断发生变化,这就导致发送通道的数据杂乱无章,尽管能清晰听到声音(因为我是把接收数组和发送数组分开的,中断函数仅仅是将接收数组的值赋给发送数组);
(4)因为以前是用CPU轮询MCASP的中断请求,但是这种方法在接受和发送间的延迟过长时就会导致整个过程出错,使输出端耳机听不到声音,所以才加入EDMA,但是EDMA在更新CPU直接访问的数据时,好像是一起全部更新,那么在做音频滤波时是不是就会出现间断的情况? |