This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C5515 and Multichannel Audio Codecs

Other Parts Discussed in Thread: TMS320C5515, PCM3168

I'm looking at an application for the TMS320C5515 where I need to ingest at least 4 channels of audio data. I'm hoping I can use a 4 or more channel codec such as the pcm3168 or AK5388. From what I can tell, the I2S controller in the C5515 only directly supports stereo audio. Is there a way to configure the controller to support a multichannel TDM I2S signal such as that provided by the pcm3168? Barring this I will use 2 stereo codecs and share the clock signals between them with one codec in master mode and all other devices in slave mode to achieve concurrent sampling.

  • Hi,

    C5515 I2S does not support multichannel I2S TDM so you have to use multiple I2S controllers. C5515 has four I2S controllers available.

    Regards,

    Hyun

  • Hello,

    I was able to interface an additional AIC3204 codec with C5515. I was able to switch between different stereo inputs. However, is it possible to access two stereo input at the same time? I tried a few approaches on top of the AIC3204 sample code but was unsuccessful. Any advice or suggestion would be greatly appreciated! 

    regards,

    ted. 

  • Hi There,

    I am using C5515EVM. I am trying to read the audio samples from the Stereo In1 and Stereo In2 simultaniously.

    The two inputs are working fine if I read the samples from one interrupt source at a time but not when used at the same time as given below. I want to read the data from the two independent audio sources connected to the Stereo In1 and Stereo In 2 respectively. When I use a loopback test of the received audio the second source is not reaching the DSP.  Currently I am stuck don't know what to do, your help is much appreciated.

    Thanks in advance

    Please find the code below:

    for ( ;; ) {

    /* Read Digital audio */

    while((Rcv & I2S2_IR) == 0);   // Wait for receive interrupt to be pending

            data1 = I2S2_W0_MSW_R;

            data2 = I2S2_W1_MSW_R;

    data0 = stereo_to_mono (data1, data2);

    while((Rcv & I2S2_IR) == 0);   // Wait for receive interrupt to be pending

    data3 = I2S2_W0_MSW_R;

    data4 = I2S2_W1_MSW_R;

    data = stereo_to_mono (data3, data4);

    }

    AIC3204 initialization is given below:

        AIC3204_rset(  0, 0x00 );    

        AIC3204_rset(  1, 0x01 );    

        AIC3204_rset(  0, 0x01 );    

        AIC3204_rset(  1, 0x08 );    

        AIC3204_rset(  2, 0x00 );    

        AIC3204_rset(  0, 0x00 );    

        AIC3204_rset( 27, 0x00 );    

        AIC3204_rset(  4, 0x07 );    

        AIC3204_rset(  6, 0x20 );    

        AIC3204_rset(  7, 0 );       

        AIC3204_rset(  8, 0 );       

        AIC3204_rset(  5, 0x92 );    

        AIC3204_rset( 13, 0x00 );    

        AIC3204_rset( 14, 0x80 );    

        AIC3204_rset( 20, 0x80 );    

        AIC3204_rset( 11, 0x84 );    

        AIC3204_rset( 12, 0x82 );    

        AIC3204_rset( 18, 0x84 );    

        AIC3204_rset( 19, 0x82 );    

        AIC3204_rset(  0, 0x01 );    

        AIC3204_rset( 14, 0x08 );    

        AIC3204_rset( 15, 0x08 );    

        AIC3204_rset(  0, 0x00 );    

        AIC3204_rset( 64, 0x02 );    

        AIC3204_rset( 65, 0x08 );    

        AIC3204_rset( 63, 0xd4 );    

        AIC3204_rset(  0, 0x01 );    

        AIC3204_rset( 18, 0x00 );    

        AIC3204_rset( 19, 0x00 );    

        AIC3204_rset(  9, 0x0C );    

        AIC3204_rset(  0, 0x00 );    

        EVM5515_wait( 500 );       

        AIC3204_rset(  0, 0x01 );    

        AIC3204_rset( 52, 0x30 );    

        AIC3204_rset( 55, 0x30 );    

        AIC3204_rset( 52, 0x0C );   

        AIC3204_rset( 55, 0x0C );   

        AIC3204_rset( 54, 0x03 );    

        AIC3204_rset( 57, 0xC0 );    

        AIC3204_rset( 59, 0x0f );    

        AIC3204_rset( 60, 0x0f );    

        AIC3204_rset(  0, 0x00 );    

        AIC3204_rset( 81, 0xc0 );    

        AIC3204_rset( 82, 0x00 );    

        EVM5515_wait( 200 );

    // Wait

      

    /* I2S settings */

        I2S2_SRGR = 0x0015;

        I2S2_ICMR = 0x0028;  

    // Enable interrupts

        I2S2_CR   = 0x8012;     

    // Unmute Left and Right ADC

  •  

    1.  We want to read audio samples from two different input sources and we are using EVMC5515.  This EVM has two built in microphones (x2) and  two line inputs.

    2. The two audio sources are connected to two line inputs and the AIC3204 codec is configured to read inputs from two line inputs.

    3. Unfortunately the samples from the second audio source are not reaching the DSP.

    4. The big question is ..

    Using EVM5515, is it possible to use two audio inputs (line inputs)  simultaniously to read samples from two different sources?

    5. Can you please suggest on which TIEVMs  to use for proving audio processing algorithms such as dual microphone noise cancellation.  If EVM5515 is not good for two inputs, then, is EVM5517 is suitable for this application? Since it has two AIC3204 codecs.

    Thanks in advance

    KP.

  • Hi,

    Please don't append your new issues into very old post. In order to get more focus towards your issue, please open up a new thread for the above.

    Thanks & regards,

    Sivaraj K