ADAU1401 Stereo I2S data processing
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
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
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.
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.
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.
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) .
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.
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.
Please log in to reply.