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.

TLV320DAC3203: Audio Distortion in TLV320DAC3203

Part Number: TLV320DAC3203

Hi ,

I am using tlv320dac3203 codec. I getting audio distortion and hiss noise. Please find the register values below,

I2Cx_Write(codec, 0x00 , 0x00 );
I2Cx_Write(codec, 0x01 , 0x01 );


// 48KHz
I2Cx_Write(codec, 0x0b , 0x88 );

I2Cx_Write(codec, 0x0c , 0x81 );

I2Cx_Write(codec, 0x0d , 0x00 );
// 32-bit(2-channel)
I2Cx_Write(codec, 0x0e , 0x20 );

// bit clock divider
I2Cx_Write(codec, 0x1e , 0x81 );

//bclk-wclk = input to codec
I2Cx_Write(codec, 0x1b , 0x00 );
I2Cx_Write(codec, 0x04 , 0x10 );

I2Cx_Wrie(codec, 0x3c , 0x08 );

I2Cx_Write(codec, 0x00 , 0x01 );
I2Cx_Write(codec, 0x01 , 0x08 );
I2Cx_Write(codec, 0x02 , 0x01 );
I2Cx_Write(codec, 0x7b , 0x01 );
I2Cx_Write(codec, 0x14 , 0x25 );
I2Cx_Write(codec, 0x0a , 0x00 );
I2Cx_Write(codec, 0x0c , 0x08 );
I2Cx_Write(codec, 0x0d , 0x08 );
I2Cx_Write(codec, 0x03 , 0x00 );
I2Cx_Write(codec, 0x04 , 0x00 );
I2Cx_Write(codec, 0x10 , 0x00 );
I2Cx_Write(codec, 0x11 , 0x00 );
I2Cx_Write(codec, 0x09 , 0x30 );
//mdelay(1000 * 3);
I2Cx_Write(codec, 0x00 , 0x00 );
I2Cx_Write(codec, 0x3f , 0xd6 );
I2Cx_Write(codec, 0x40 , 0x00 );

Please help me to get the issue fixed.

Thanks in advance.

  • Hi Mani,

    Welcome to e2e.
    First thing to take a look is the clock settings. I see from your register values that: NDAC = 8, MDAC = 1, DOSR = 32and PLL = off. So I assume you're using MCLK = 12.288MHz, right?
    Have you tried by setting the following instead?: NDAC = 2, MDAC = 1, DOSR = 128

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators
  • Thanks for the reply.

    Yes, We are using MCLK as 12.288MHZ.

    But after changing your recommended setting,still same distortion happening. No improvements.

    Thanks.

  • Hi Ivan Salazar,

    We are getting accurate LRCK and BCLK as expected. So there is no problem in clocking.
    Basically while playing more noise is added in background.
    So we are thinking we need to check the settings is related to Filtering ,Noise cancel, Avdd and more on processing blocks.
    So please help me to confirm this settings with correct values.

    Thanks,
    Mani
  • Mani,

    I tried the register sequence from your original post and the output signal is good, although there is some little distortion:


    Then I tried to change only the following things as I suggested earlier: NDAC = 1, MDAC = 2, DOSR = 128 and the output signal is completely OK:



    So the command sequence seems to be fine.

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators

  • Hi Ivan,

    I am Velu from Libre wireless technologies, Techinical lead on Mani's team. Thanks for the support, the distortion level came down after configuring NDAC = 1, MDAC = 2, DOSR = 128 along with BCLK to match 32fs.

    We want to understand, how does it improve when we change the divider values?(even though we change the divider value the fs and bclk remains the same)?.

    Thanks and Regards,

    Velu,
    Technical lead - Libre wireless technologies, Bangalore, India.
  • Hi Velu,

    The OSR (oversampling ratio) is related to the interpolation filter. We suggest to use DOSR values of 64 or 128, and for best performance across all interpolation filters (A, B and C) 128 is recommended.

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators
  • Hi Ivan,

    Thanks for the support.

    Thanks,

    Mani