ΣSigmaStudio Ask AI Русский Log in

ADAU1401 Stereo I2S data processing

SigmaDSP & SigmaStudio Sarmadh Apr 12, 2010 00:00 7 replies Original on forum ↗
Subscribe
Sarmadh Question
Apr 12, 2010 00:00

How do I split stereo I2S data coming into an ADAU1401 serial data input into two separate signals (L&R) that can be processed independently? Do I use a single/multiple-control splitter block to do that? I can't find much in the Sigma DSP help files in terms of documentation on how to process I2S data. I also have the same question with regard to the opposite; how do I combine two independent signals (L&R) into one stereo I2S digital output? Do I use a mixer block?

Audio Signal Processors

adau1401

SigmaDSP Audio Processors

BerndH Reply
Apr 13, 2010 00:00

Hi Sarmadh,

maybe you think to complicated ;-)

The I2S data is just the "container" for two signals. Just place a input block in SigmaStudio and use input "2" and "3" for the first I2S pair. Now you have two separate channels which you can handle individually. It is that easy :-)

For the output it's essentialy the same. Just place two output blocks and select "DIG0" and "DIG1" and that is your first I2S output pair.

Hope I could help!

Regards Bernd

ADIApproved Reply
Apr 13, 2010 00:00

Hi Bernd,

Thanks for the answer here. On the ADAU1401's input block in SigmaStudio, the signals from the ADCs are inputs 0 & 1, and the digital serial data inputs are pins 2-9. Inputs 2 & 3 correspond to serial input pin SDATA_IN0, 4 & 5 to SDATA_IN1, and so on. The same goes for the output pins.

Sarmadh Reply
Apr 13, 2010 00:00

Thanks for the answer, this is helpful. Where does this info reside in the Sigma Studio help files? It's not in the help screen for the input block. I also have another question with regard to operating the ADAU1401 as an I2S Master to an external CODEC; do I have to externally connect the OUTPUT_LRCLK (MP10) and OUTPUT_BCLK (MP11) pins to the INPUT_LRCLK (MP4) and INPUT_BCLK (MP5) pins respectively as well as to the external CODEC clock input pins? The ADAU1401 datasheet seems to indicate so, but I just need a confirmation.

ADIApproved Reply
Apr 13, 2010 00:00

Sarmadh,

Yes, if you are using the output serial ports as clock master and are also using the serial inputs, you will need to externally connect the output BCLK & LRCLK to the input BCLK and LRCLK.

Sarmadh Reply
Jun 18, 2010 00:00

Geradl,

with regard to your response:

Thanks for the answer here. On the ADAU1401's input block in SigmaStudio, the signals from the ADCs are inputs 0 & 1, and the digital serial data inputs are pins 2-9. Inputs 2 & 3 correspond to serial input pin SDATA_IN0, 4 & 5 to SDATA_IN1, and so on. The same goes for the output pins.

My digital input from the external I2S CODEC is tied to MP0 (pin 11 on the ADAU1401) which is configured as Input SDATA_in0, and my digital output to the CODEC is tied to pin MP6 (pin 15 on the ADAU1401) which is configured as Output sdata_out0. Internally in the Sigma DSP software, I am routing the Left and Right signals to Outputs DIG0 and DIG1 respectively; I can get a signal out of the DIG0 output (left side) but I can't seem to get a signal out of the DIG1 output (right side). I know my outputs out of the external CODEC are OK because I can switch the LRCLK polarity in the Serial Output block of the Hardware Configuration screen and the signal switches to the other output.

Note: I'm currently testing my program with an internal single sinusoid source and using a splitter to split it to two signals (left & Right), then I'm routing the two signals respectively to outputs DIG0 and DIG1; do you see a problem with that? I was having the same problem described above with a real external analog input sourced into ADC1 (pin 2 on the ADAU1401) .

ADIApproved Reply
Jun 21, 2010 00:00

It would be helpful if you could attach the SigmaStudio project you're using here. I can use that to see how you're configuring the SigmaDSP core and the control registers. Thanks.

Sarmadh Reply
Jun 24, 2010 00:00

Thanks, I figured it out; I just had the BCLK Frequency set to the wrong division ratio. I can get two analog channels out of the external CODEC now, however, I can only get that with an internal tone; I'm still having trouble doing the same with an external input to either ADC0 or ADC1, I think the analog inputs might have been damaged on ADAU1401; I had an over voltage problem initially with the board.