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.

TLV320AIC14: noise?

Part Number: TLV320AIC14

HI TEAMS:

After the initial completion, the output audio is clean, but when the main control MCU plays a sound through the I2S interface and no longer sends data to I2S (zero), the codec will emit noise similar to a single tone, and the frequency and amplitude are not exactly the same each time. However, they are also fixed noise types. Do you have any experience in solving related problems? We look forward to your reply. Thank you

  • Hello Kevin,

    I have not seen an issue like this before. Could you please share more information about the application? 

    Any schematics, layout or register configurations would be helpful here. 

    Best,
    Andrew

  • hi Andrew:

    The configuration is as follows:

    i2c_Write(0x01, 0x61);

      i2c_Write(0x02, 0x20); // 0xa0);

      i2c_Write(0x03, 0x01);

      

      i2c_Write(0x04, 0x09);   ///<0b0 0001(N=1) 001(P=1);11.52Mhz

      i2c_Write(0x04, 0xda);   ///<0b1 1011010(M=90); //11.52Mhz

      

      i2c_Write(0x05, 0xba);

      i2c_Write(0x05, 0x32); ///<Default 2A, ADC = 12dB

      i2c_Write(0x05, 0x6a);  ///<Default 6A, DAC = 12dB

     

     

      if(is_external_mic && !use_active_noise_cancellation)

      {

         i2c_Write(0x06, 0x06);   ///<External mic

         current_mic_test = current_mic = MIC_EXTERNAL; 

      }

      else

      {

       if( is_noise_reduction_version() ) //modify by laijl@20220906 

         i2c_Write(0x06, 0x00);

      else

       i2c_Write(0x06, 0x04);   ///<Internal mic 

      current_mic_test = current_mic = MIC_INTERNAL;

      }

  • Hello Kevin,

    Thank you for the added information. The schematic looks good. So far I do not suspect any issues here. 

    How does the i2C_write function work? I assume that it is formatted as: i2C_write(<register_address>, <register_value>). I suspect that this function may be the issue. This device is older and uses a different register scheme than our other devices. Please see datasheet section 3.7.2 I2C for I2C programming method. 

    The following datasheet capture also shows how to perform an I2C write with the register address and data as a 16-bit data packet. 

    Let me know if you have any questions. 

    Best,
    Andrew