I am having trouble getting DMA to work on the ezdsp board. Since the AIC3204 is configured as a Master device, I have set up the I2S0 as follows:
/* I2S settings */
I2S0_SRGR = 0x0; // sample rate generator, not active in slave mode
I2S0_CR = 0x8010; // 16-bit word, slave, enable I2C
I2S0_ICMR = 0x3F; // Enable interrupts (I2SINTMASK)
I have configured DMA0 for "manual" ping-pong operation (not using the PP bits in DMA) using DMA0 ch0, 1, 2, &3.
And I have configured the DMA0 controller channels 0 & 1 to trigger on I2S0 tx events, and channels 2 & 3 to trigger on I2S0 rx events.
I have set the DMA0 ch 0 & 1 destination addresses to the I2S L & R data registers, and source addresses to the output buffer in RAM .
I have set the DMA0 ch 2 & 3 destination addresses to the input buffer in RAM,and the source addresses to the I2S0 L & R input data registers.
I can monitor the I2S events via my DMA ISR. Each event is triggering an interrupt, which I service. I then clear the interrupt flags for the triggered event.
HOWEVER, NO DATA IS TRANSFERRED on either the input or output DMA transfer.
Does anyone have any suggestions what could be going wrong?