在OMAPL138上,原来是通过Transfers Through the Peripheral Configuration Bus 访问McAsp的XRBUF,功能是完好的,由于现在需要使用AFIFO,所以改为通过Transfers through the DMA Port 访问M从ASP的AFIFO,但是,这样修改后,出现一个问题,在TX方向,DMA已经把数据写到AFIFO的缓冲区了,可是并没有看见缓冲区的数据被移出到the XRSR[n] shift registers,也就是The XDATA flag一直没有置位,就好像没有发生TX一样。不知道为什么?请大家指教一下!谢谢!
另外,补充说明一下,RX方向是没有问题的,改为通过Transfers through the DMA Port 访问M从ASP的AFIFO。
至于,相关的配置,由于Transfers Through the Peripheral Configuration Bus的配置能正常工作的,所以在此基础上,增加了对AFIFO的配置,然后DMA的地址改为AFIFO的地址。
Transmit Bit Stream Format Register (XFMT) : &= ~(0x08)
Write FIFO Control Register (WFIFOCTL) :=(1<<16)+(40 << 8) + (1)