Forums

DSP563xx ESAI and DMA

Started by Alexander Trica June 23, 2005
Hi @ all,

I have a question concerning the ESAI data transfer using a DMA channel.

I configured the DMA0 channel to transfer the ESAI data (ADC data,
i2s mode) from the RX0 register to the X memory space. Since there is
no other DMA trigger source I am using the mode 01011 as DMA request
source which is "ESAI receive data" (RDF=1). For my application it is
important to know which channel (left or right) of the ADC I am
receiving. Since there is only one DMA request source (RDF=1) how can
I distinguish between right an left channel data?

Using interrupts to get the data from the ESAI receiver it is no
problem to differ between left an right channel ADC data. Using the
odd and even data interrupts or checking the REDF or RODF bits in
the ISR is working fine for me.

How can I differ between left and right channel data using DMA
transfers?

Best Regards
Alex
--
K&S Mechatronik GmbH
Tel.: +49 3677 668 489
Fax: +49 3677 20 33 77
http://www.ks-mechatronik.de



Alex,

If you initialize the DMA properly and avoid all DMA related errata it
should guarantee that information is always brought in left channel
then right channel. I've have some simple audio passthru code I've used
for years based on DMA and never noticed a channel swap (though I will
admit I've not spend any time specifically testing for it)...

--
dB

--- Alexander Trica <moto@moto...> wrote:

> Hi @ all,
>
> I have a question concerning the ESAI data transfer using a DMA
> channel.
>
> I configured the DMA0 channel to transfer the ESAI data (ADC data,
> i2s mode) from the RX0 register to the X memory space. Since there is
>
> no other DMA trigger source I am using the mode 01011 as DMA request
> source which is "ESAI receive data" (RDF=1). For my application it is
>
> important to know which channel (left or right) of the ADC I am
> receiving. Since there is only one DMA request source (RDF=1) how can
>
> I distinguish between right an left channel data?
>
> Using interrupts to get the data from the ESAI receiver it is no
> problem to differ between left an right channel ADC data. Using the
> odd and even data interrupts or checking the REDF or RODF bits in
> the ISR is working fine for me.
>
> How can I differ between left and right channel data using DMA
> transfers?
>
> Best Regards
> Alex
> --
> K&S Mechatronik GmbH
> Tel.: +49 3677 668 489
> Fax: +49 3677 20 33 77
> http://www.ks-mechatronik.de >
>


__________________________________________________




Hi,

sorry for my late answer - I was busy programming
the DSP.

I ran a few tests and realized that it is always the
right channel then left chennel. How ever - I don't
know why it is right - left here and not left-right but
it seams to run stable that way. Maybe I can
change the FSR polarity in the ADCs - then I would be
left first - then right channel.

Knowing that it is always right-left is great for me.

Thanks so far,
Alex dbaudiopro wrote:
>
> Alex,
>
> If you initialize the DMA properly and avoid all DMA related errata it
> should guarantee that information is always brought in left channel
> then right channel. I've have some simple audio passthru code I've used
> for years based on DMA and never noticed a channel swap (though I will
> admit I've not spend any time specifically testing for it)...
>