在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)
Nancy Wang:
先参考demo程序看一下。
wiki.tiprocessors.com/…/McASP_FAQ_for_OMAPL13x_C674x_devices
user4755476:
回复 Nancy Wang:
谢谢您的建议,但是,还是出现了Transmitter underflow的现象。不知道初始化过程哪里存在问题?!