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.

TLV320ADC3100: Right Channel bring-up issues

Part Number: TLV320ADC3100

Hello,

I am using the TLV320ADC3100 in a design and have not been able to get the right channel to send data. I have managed to get audio out of the left channel, however.

The design uses IN2L and IN3L in a differential setup for the left channel and uses IN2R and IN3R in a differential setup for the right channel. The inputs are DC coupled with the common mode set to VCC/2.

The clock is extracted from BCLK using the PLL. BCLK and WCLK are fed into the IC and SDATA is sent out.

Here is the startup code used to initialize the chip.

  // Set register page to 0
  i2c_write (ADD_ADC, 0x00, 0x00);
  // Reset ADC
  i2c_write (ADD_ADC, 0x01, 0x01);
  pca_2_wait(1 * PCA_TICKS_PER_MS);

  // Setup ADC PLL
  // Set PLL to multiply BCLK by 8
  i2c_write (ADD_ADC, 0x04, 0x07);
  i2c_write (ADD_ADC, 0x05, 0x18);
  i2c_write (ADD_ADC, 0x06, 0x01);
  i2c_write (ADD_ADC, 0x07, 0x00);
  i2c_write (ADD_ADC, 0x08, 0x00);

  // Power up PLL
  i2c_write (ADD_ADC, 0x05, 0x98);

  // Set ADC clock dividers
  // NADC = 2
  i2c_write (ADD_ADC, 0x12, 0x82);
  // MADC = 2
  i2c_write (ADD_ADC, 0x13, 0x82);
  // AOSR = 128
  i2c_write (ADD_ADC, 0x14, 0x80);
  // BCLK N = 8
  i2c_write (ADD_ADC, 0x1E, 0x84);

  // 24-bit i2s, BCLK in, WCLK in, No tri-stating of DOUT
  i2c_write (ADD_ADC, 0x1B, 0x20);

  // Switch to page 1
  i2c_write (ADD_ADC, 0x00, 0x01);

  // Setting MICBIAS to Unused
  i2c_write (ADD_ADC, 0x33, 0x00);

  // Setting ADC routing and gain
  // Differential Left
  i2c_write (ADD_ADC, 0x34, 0x3F);
  // Differential Right
  i2c_write (ADD_ADC, 0x37, 0x3F);
  // Left 0dB
  i2c_write (ADD_ADC, 0x3B, 0x00);
  // right 0dB
  i2c_write (ADD_ADC, 0x3C, 0x00);

  // Power up ADC
  // Switch back to page 0
  i2c_write (ADD_ADC, 0x00, 0x00);
  // Power up left/right ADC
  i2c_write (ADD_ADC, 0x51, 0xC2);
  // Unmute ADC
  i2c_write (ADD_ADC, 0x52, 0x00);

Is there some setting or configuration that I'm missing in order to get audio out of the right channel?