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.

TLV320AIC3254: codec POR - I2C pulled low by codec

Part Number: TLV320AIC3254

Hi there, 

I am having ongoing issues with the AIC3254 getting into a state where it is pulling one or both of the I2C lines low, making it impossible for me to communicate with it or talk to any other I2C devices. When it gets into this state, the only get to get it out is to either:

1) Pull the codec hardware reset pin low

2) Cut power for at least 20 minutes to allow the volatile memory to clear. 

3) Sometimes cutting power for 10 seconds works. It varies from device to device. 

This is how the pcb should boot up. I2C lines are yellow/green. 1.8V DVDD is orange and the VBATT is purple. 

This is what happens sometimes - if it is turned off and on too quickly or on some devices. I2C SDA line starts low. Making it impossible to issue any I2C commands. 

Sometimes this happens EVERY time power is applied and on BOTH I2C pins. Only on some boards - it seems to vary randomly. 

I know it is the codec pulling this line low because it is released when I pull the HW_RESET pin on the codec low. 

Unfortunately, my design does not have a way of pulling the HW_RESET pin on the codec low. I was hoping to simply rely on the SW_RESET command. 

By the way, there is a 2Mhz MCLK clock input to the codec at all times. 

This is my codec schematic

QUESTIONS:

What's going on? Why are the I2C line(s) pulled low by the codec?

When it is in this state, is there anything I can do to reset it other than the 3 above? Maybe stopping the clock? 

How can I avoid it getting into this state?

When I send the I2C reset command to the codec, does it need to have an MCLK to reset properly?

This is very urgent so I hope for a reply soon. 

Many thanks

David