Hello,
I'm using our custom C6745 board, trying to bring up EDMA with the McASP, without using the BSP. The BSP footprint is simply too large (we don't have any external RAM), and when I compiled the BSP DMA and McBSP drivers in, they were something like 150k combined.
Anyway, I'm using the CSL directly, which seems to work fine, except that, well, it doesn't.
I can get the McASP to work in interrupt mode just fine, and it generates the XDATA trigger in XSTAT. That's good.
I can get the EDMA3 to work just fine for a manually triggered memory -> memory transfer. That's also good.
However, I can't seem to get the MCASP to generate an AXEVT synchronization signal to the EDMA3.
Here's my setup:
Clocking:
AHXCLK = 12 MHz -> CODEC MCLK (output from C6747)
CODEC has internal PLL and generates XCLK and FSCLK (i.e. they are input to the C674x).
I'm using Serializer 7 for TX from C674x, and serializer 8 for RX to C674x.
I'm following the instructions in SPRUFM1-August 2009, section 2.4.1.2.
I'm using TDM mode with 8 slots. All 8 slots active.
In section 2.4.1.2.8 it states, "As soon as the transmit serializer is taken out of reset, XDATA in the XSTAT register is set, indicating the XBUF is empty and ready to be serviced. The XDATA status causes a DMA event and AXEVT to be generated..."
I do get the XDATA as stated, but I don't seem to get the AXEVT. The way I'm checking to see if I get an AXEVT is by looking at the edma3->ER register. Is this the correct way to check?
I have carefully followed section 2.4.1.2 to ensure all the clocks are set up at the right time, and done all checks.
My code is attached. I get very stuck at step 8, since there doesn't seem to be any AXEVT generated, I can never verify the XDATA bit. When I manually write the XBUF, it does appropriately set XDATA, but still no AXEVT for the DMA.
Is there something I'm missing, maybe some global register that allows communication of the AXEVT signal from McASP to EDMA3?