Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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.

Communication problem with TLV320AIC22C by I2C interfcae

Other Parts Discussed in Thread: TLV320AIC22C

Dear

I have a problem to communicate with AIC22C by I2C in ter face. Does any one have any idea or comment of this issue? I've checked the slave address and the wafeform signal by scope. Below is my test condition.

Issue description: Unable to access TLV320AIC22C by I2C interface.

Power supply : 3.3V
Set Pin14, I2C\SPI pull high to set I2C interface selected.
(Slave address set as “E0” by A0 & A1 = 0)
àUse USB DAQ board as the master to access the register of AIC22C. But the communication not worked. 8422.Issue_I2C of AIC22.ppt
Thanks for every's paying attention.
  • Hi Alex,

    The file fails to get downloaded/opened.

    Some quick questions-

    1. Are you using your own custom board? Which processor/ controller are you using?

    2. Have you connected pull-ups of 4k7 or 3k3 on SDA and SCL line as is required for I2C communications?

    3. AT what speed are you trying to run I2C? I2C max speed is 400 KHz, try running it at around 100 KHz,

    Regards,

    Sid

  • Hello Sid,

    Thanks for your respond, below is the answers for your questions.

    1. This is a prototype PCB board made by customer for AIC22C evaluation. I use the USB-DAQ board as the I2C controller.

    2.I used 10k ohm pull up resistor on I2c and SDA line for I2C communication.

    3.The I2C speed is 100kHz

    I've checked the waveform from scope and thought there is no problem with the I2C interface of the USB DAQ platform. Coz' it can access other I2C device normally. So I'm wandering is there any setting I missed at codec side? 

  • Hi Alex,

    Normally all I2C slaves including audio codecs respond when their address is mentioned. They done require any extra setting.

    1. Have you checked that your audio interface is receiving voltage correctly on its VCC pins? I once had a similar problem due to a faulty inductor which prevented my audio codec from responding to I2C requests.

    Regards,

    Sid

  • Hello Sid,

    Do you mean the AVDD? If yes, I've confirmed all the power provided to AIC22 is normally. Below is the schematic, please help me to check if there is any problem. Thanks a lot  in advance.

     

    4572.947_TLV320AIC22.pdf

     

     

  • Hi Alex,

    Why is your SDA and SCL line having both pull-up and pull-down resistor? I hope you have connected only pull-up resistors and pull-down resistors are not assembled/populated. Else, it will form a voltage divider circuit.

    From your schematic it is not clear which resistors are populated and which arent. For eg. is PWRDWN pin resistor connected correctly, are you sure that the IC isnt in powerdown state which could prevent it from responding.

    And I mean AVDD as well as DVDD.

    Regards,

    Sid

  • Hello Sid,

    The SDA and SCL only pull up by 10k ohm. And the power down is pulled low for normal operation. I've checked those by multimeter and scope, and there is nothing suspicious, so I have no idea why it can't access by I2C.

    Thanks a lot.^^

  • Hi Alex,

    Hardware wise everything looks fine. I had a question - In your first post, you said that you can access other I2C device correctly, by this do you mean another codec or some other I2C slave?

    If yes, then are you sure you are using the correct I2C slave address for TLV320AIC22? What address are you using as the I2C slave address in the code? Also, when you say that the I2C slave does not respond, in your code, do you continue to wait in the loop until you get a response, or you exit immediately?

    Sometimes, some I2C slave devices require some wait state insertion to respond to the communication initiated by the master. It might be possible that the same code works for one I2c slave and does not for the other? Can you post the code snippet where you are trying to access the TLV320AIC22?

    Regards,

    Sid