I am working on the BeagleBoard for playing Audio. I use SDMA to
transfer my audio data to McBSP2 using software triggering. The data
is sent in 1k chunks because of the FIFO size limitation. I have
registered interrupt on end-of-block-transfer for SDMA. When the end-
of-block occurs i trigger the DMA with my next chunk of data. This
causes the transmit buffer to overflow and i listen a short tone
instead of the song. To avoid the overflow i put a loop on XBUFFSTAT
to check if 1K free locations are available; then trigger the DMA.
This has solved the problem but the approach is not good as CPU time
is being wasted on the wait loop. I have tried using the XRDY and
XEMPTYEOF interrupts of McBSP for triggering DMA but they occur too
soon. Can anyone kindly suggest me the solution?
Thanks & Regards,