DSPRelated.com
Forums

EDMA interface to McBSP

Started by rockall_rebel November 29, 2003
Hi all,

I'm new to the C6711DSK and I'm hoping you guys can help me to sort
out one or two problems I'm having.

I'm attempting to use the EDMA controller to send and receive data
via the McBSP which in turn interfaces to the AIC23EVM codec (which
sends and receives 32bit samples (16bits per left and right channel)).

Currently, I can send and receive data to the McBSP using the polling
technique and this is working perfectly with no problems what so ever,
so I'm now ready to advance to the EDMA stage. To do this, I thought I
could make a few changes to the "audio" project example in the ccs
examples folder, but I haven't been that lucky.

This is how I've set things up -

PIP (rxPipe and txPipe) -

bufseg - SDRAM
bufalign - 4
framesize in words - 64
num of frames - 2

EDMA TX -

Frame Sync = None
ESIZE = 32bit
Source
2DS = Disabled
SUM = Index
Address = 0x00000000
Destination
2DS = Disabled
DUM = None
Address = DSS_hMcbsp0 (McBSP handle)
Element Index = 2
Frame Index = 2
TCINT = Enable
TCC = 12
FC=0
EC2
ECRLD=0
Link = Disabled
PRI (low)

and something similar for Rx - I have the receive priority set to high
for receiving.

These settings give me a sample rate which is half of that expected,
for both receiving and transmitting. In other words, if I output a
100Hz wave, I get a 50Hz wave on my oscilloscope. I've tried changing
every value I can think of - number of PIP frames, size of PIP frame,
all the EDMA settings. I get all kinds of crazy outputs when I attempt
this, but not the output I expect.

Do I need to change my McBSP settings? If they work correctly for
polling, then I presume there is nothing I have to change if I wish to
use EDMA instead.

To make sure that the sampling rate of the codec is not being changed,
I placed a count in the EDMA IRS. When this count expires, I call
EDMA_RSET(EER, 0x0000) and revert to polling for the samples. The
output signal then doubles in frequency. This means that the codec is
correctly configured for 88200Hz.

It seems to me that two output samples are being outputted when only
one should be. How might this be happening?

Both left and right channels have the same outputs unless the upper or
lower word of a sample is different. I tried changing the Element
Index to one, and this is still the case, although the output with
respect to time is muddled up.

I've spent the last few days trying to decipher the "audio" project
with limited success. Could anyone offer me a simpler example?

Thanks for your help,

Francis.



Just to add to this thread:
I m experiencing the same issue on EDMA c6416. while trying to
implement the McBSP as a UART interface using EDMA as implemented in
the application report SPRA633A.
The same thing happen the EDMA interrupt is not occuring. Anyone who
can help please reply.
--- In , "rockall_rebel" <rockall_rebel@y...>
wrote:
> Hi all,
>
> I'm new to the C6711DSK and I'm hoping you guys can help me to sort
> out one or two problems I'm having.
>
> I'm attempting to use the EDMA controller to send and receive data
> via the McBSP which in turn interfaces to the AIC23EVM codec (which
> sends and receives 32bit samples (16bits per left and right
channel)).
>
> Currently, I can send and receive data to the McBSP using the
polling
> technique and this is working perfectly with no problems what so
ever,
> so I'm now ready to advance to the EDMA stage. To do this, I
thought I
> could make a few changes to the "audio" project example in the ccs
> examples folder, but I haven't been that lucky.