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.

TLV320AIC3101: Unable to write to several registers

Part Number: TLV320AIC3101
Other Parts Discussed in Thread: TLV320ADC3101

Hi, 

I am using the TLV320AIC3101 on a project and am running into some issues configuring it. I am monitoring the I2C bus to confirm that the write commands are being sent as expected, and reading back the register value after each write to confirm it successfully was programmed.

I am noticing that I can successfully write to some of these registers (read value = write value), while I cannot successfully write to others (read value = 0x00 regardless of write value). 

Could you please take a look at the registers below that I am having success and failure with and let me know if these registers have specific dependencies or rules that I need to adhere to? Or certain power states that need to be configured prior to attempting a write?

Any support would be greatly appreciated.

-Armen 

Registers I can write to successfully:

Page 0
0x08 - Register 8 - Audio Serial Data Interface Control Register A
0x51 - Register 81 - ADC Digital
0x52 - Register 82 - ADC Fine Volume Control

Page 1
0x33 - Register 51 - MICBIAS Control
0x34 - Register 52 - Left ADC Input Selection for Left PGA
0x36 - Register 54 - Left ADC Input Selection for Left PGA
0x37 - Register 55 - Right ADC Input Selection for Right PGA
0x39 - Register 57 - Right ADC Input Selection for Right PGA
0x3B - Register 59 - Left Analog PGA Settings
0x3C - Register 60 - Right Analog PGA Settings

Registers I cannot write to:

Page 0
0x02 - Register 2 - Codec Sample Rate Select Register (This one is particularly odd, because it reads back 0x20 regardless of what I try to write to it, which should be invalid value altogether since the first 4 and last 4 bits must be equivalent in this register per the data sheet)
0x09 - Register 9 - Audio Serial Data Interface Control Register B
0x65 - Register 101 - Clock Register
0x66 - Register 102 - Clock Generation Control Register
0x03 - Register 3 - PLL Programming Register A
0x04 - Register 4 - PLL Programming Register B
0x0B - Register 11 - Audio Codec Overflow Flag Register
0x53 - Register 83 - Left ADC Volume Control
0x54 - Register 84 - Right ADC Volume Control

  • Armen,

    Are you working the the TLV320AIC3101 or the TLV320ADC3101? These are two very different devices, your register writes look like you are working with the ADC3101, but if you are trying to write those to a TLV320AIC3101 you will definitely have some problems

    best regards,
    -Steve Wilson
  • Steve,

    You are totally right. At some point I closed the data sheet for the ADC part (which is the part I am actually using) and opened the data sheet for the AIC part, which explains why half of my writes work and the other half don't.

    Sorry to have taken your time for a foolish mistake, but thank you very much for the quick response and for pinpointing the problem! You saved me a ton of time.

    -Arme