• TI Thinks Resolved

TS3A225E: TS3A225E losing configuration

Part Number: TS3A225E


 We have implemented in our design the two following components (see schematic in attachment)

-          TLV320AIC3100

-          TS3A225E

We are confused to observe we are losing the register settings of the TS3A225E.

Writing and reading immediately the values back is ok but after 100ms most of the time the values are lost.

PS: the TLV320AIC3100 on the same I2C bus is working correctly

Could you advise?



  • MBa,

    The TS3A225E has both a manual I2C control mode to configure the switch matrix and an automatic mode.   The default mode of the switch is to be used with automatic detection.

    Are you wishing to use the device in automatic detection mode or manual mode?

    What settings are you wishing to write to the TS3A225E and what is the result when you lose those settings.

    Thank you,


  • In reply to Adam Torma:


    We write the I2C_INT bit of the CTRL3 register in order to get irq's whenever there are I2C register changes. (so we can detect head phones as well as microphones). What we observe is that after 'some time' the I2C_INT bit disappears (The CTRL3 register becomes zero again).

    As an experiment, we added a polling routine that dumps all registers. This is how we observed the I2C_INT bit disappears. It is not consisten when the bit goes away.

    As a result, after the I2C_INT bit drops to 0 we only get irq's if we plug in a real microphone (as we are using the chip's automatic mic detect feature), we get no irq when we plug in a headphone.

    So as a second experiment we rewrite the I2C_INT bit right before each register dump. This way we also get irq's when we plug in a head phone.


  • In reply to Peter Van Hoyweghen:


    The TS3A225E doesn't have a true interrupt pin to tell you that something has happened and you need to read the registers like the TS3A227E.  The TS3A225E MIC_PRESENT pin is like an interrupt only when a microphone is detected so the pin will not pull low unless it detects a microphone.  

    If you would like an interrupt every time something is inserted into the audio jack you can use the TS3A227E or an audio jack that has a mechanical switch that will make or break a connection when something is inserted into the jack.

    Thank you,


  • In reply to Adam Torma:

    Still, according to the datasheet, the function of MIC_PRESENT on the TS3A225E can be programmed via i2c register CTRL3 as: mic present detect (=default) or as  I2C_IRQ.
    It does not look normal to me that this configuration is lost over time. Or is it?

  • In reply to Peter Van Hoyweghen:


    CTRL3 register /MIC_PRESENT bit defaults to 0 if you would read the register and the MIC_PRESENT pin will only pull low when a MIC is detected. You also have the option to write to CTRL3 register /MIC_PRESENT bit to 1 which will cause the MIC_PRESENT pin to pull low.

    I would not expect the CTRL3 register to change overtime unless there was an interrupt to the supply pin and the value 1 could revert back to the default 0.

    I will need to check with the design team to see if this MIC_PRESENT pin will actually behave like an I2C_IRQ and pull low for any I2C change or if it will only pull low when a mic is detected