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.

  • Resolved

TS3A227E: TS3A227E switch from 3-pole to Standard (CTIA) mode

Part Number: TS3A227E

Hi,

I have a headset which is not properly working with the TS3A227E. Tip-to-Sleeve resistance is 1.46 kOhm and Tip-to-Ring2 is 18 Ohm. According to this post it should be a standard (CTIA) headset:

However, its only detected as 3-pole. I also managed to setup some resistors on a 4-pole plug for simulating a headset and I have similar problems. Although this setup will be most of the times be recognized as a standard (CTIA) headset, sometimes the TS3A227E states it is only a 3-pole.

What could be the problem?

Best regards, Thorben

  • In reply to Thorben Vornholz:

    Thorben,

    What register settings are you changing that you are not able to manually control the switch? 

    Here are some sections of the datasheet that might help you with setting up manual mode

    These are the bits that need to be set for the different switch configurations to support 3-pole or 4-pole headsets.

    These are the different switch configurations that need to be set to support each type of headset.

    Thank you,

    Adam

  • In reply to Adam Torma:

    Hi Adam

    I tried the following:

    1. Reset the chip and set the the detection time to 2 seconds
    2. set Manual Switch Control = 1
    3. set switch control registers 0x7 to 0x28
    4. set switch control registers 0x8 to 0x06
      •    (this should be the right settings for OMTP mode)

    5. set Manual Switch Control = 0
    6. Plug in CTIA headset
    7. read headset status which is 0xC
    1. Reset the chip and set the the detection time to 2 seconds
    2. Plug in CTIA headset
    3. set Manual Switch Control = 1
    4. set switch control registers 0x7 to 0x28
    5. set switch control registers 0x8 to 0x06
      •    (this should be the right settings for OMTP mode)

    6. set Manual Switch Control = 0
    7. read headset status which is 0xC
    1. Reset the chip and set the the detection time to 2 seconds
    2. Plug in CTIA headset
    3. set Manual Switch Control = 1
    4. set switch control registers 0x7 to 0x28
    5. set switch control registers 0x8 to 0x06
      •    (this should be the right settings for OMTP mode)

    6. Call manual trigger
    7. set Manual Switch Control = 0
    8. read headset status which is 0xC


    I also tried following the steps on page 22 but with the 0x28 and 0x06 instead of 0xFF in step 5.
    Headphone status is again 0xC.

    Please tell me the correct order of sending I2C commands and when to plug or unplug my headphones.

    Regards, Thorben

  • In reply to Thorben Vornholz:

    Thorben,

    1. Reset the chip and set the the detection time to 2 seconds
    2. set Manual Switch Control = 1
    3. set switch control registers 0x7 to 0x28
    4. set switch control registers 0x8 to 0x06

    (this should be the right settings for OMTP mode)

    This is the correct setting for OMTP.  You can confirm this by checking the low impedance path from sleeve to GND and from RING2_SENSE to MICP.    

    1. set Manual Switch Control = 0
    2. Plug in CTIA headset
    3. read headset status which is 0xC

    This is correct and you can confirm by checking the low impedance path from SLEEVE_SENSE to MICP and from RING2 to GND.

      1. Reset the chip and set the the detection time to 2 seconds
      2. Plug in CTIA headset
      3. set Manual Switch Control = 1
      4. set switch control registers 0x7 to 0x28
      5. set switch control registers 0x8 to 0x06

    (this should be the right settings for OMTP mode)

    This is the correct setting for OMTP but you plugged in a CTIA headset

    1. set Manual Switch Control = 0
    2. read headset status which is 0xC

    0Cxh is correct reading for CTIA headset

      1. Reset the chip and set the the detection time to 2 seconds
      2. Plug in CTIA headset
      3. set Manual Switch Control = 1
      4. set switch control registers 0x7 to 0x28
      5. set switch control registers 0x8 to 0x06

    (this should be the right settings for OMTP mode)

    This is the correct setting for OMTP but you plugged in a CTIA headset

    1. Call manual trigger
    2. set Manual Switch Control = 0
    3. read headset status which is 0xC

    0Cxh is correct reading for CTIA headset

    1. Reset the chip and set the the detection time to 2 seconds
    2. set Manual Switch Control = 1
    3. set switch control registers 0x7 to 0x28
    4. set switch control registers 0x8 to 0x06
    5.    (this should be the right settings for OMTP mode)

    This is the correct setting for OMTP

    1. set Manual Switch Control = 0
    2. Plug in CTIA headset
    3. read headset status which is 0xC

    0Cxh is correct reading for CTIA headset

    1. Reset the chip and set the the detection time to 2 seconds
    2. Plug in CTIA headset
    3. set Manual Switch Control = 1
    4. set switch control registers 0x7 to 0x28
    5. set switch control registers 0x8 to 0x06
    6. (this should be the right settings for OMTP mode)
    7. This is the correct setting for OMTP

    8. set Manual Switch Control = 0
    9. read headset status which is 0xC
    10. Reset the chip and set the the detection time to 2 seconds
    11. Plug in CTIA headset
    12. set Manual Switch Control = 1
    13. set switch control registers 0x7 to 0x28
    14. set switch control registers 0x8 to 0x06
      •    (this should be the right settings for OMTP mode)

    15. Call manual trigger
    16. set Manual Switch Control = 0
    17. read headset status which is 0xC

    0Cxh is correct reading for CTIA headset

     

    What other issues are you having?

     

    Adam

  • In reply to Adam Torma:

    Hi Adam,

    Adam Torma

    This is the correct setting for OMTP but you plugged in a CTIA headset

    What other issues are you having?

    My issue is that I do plug in a CTIA headset but I want the TS3A227E to recognize it as OMTP and vice versa. Or, speaking more general, whatever I plug in, I want to be recognized as whatever I want it to be. Having speakers recognized as a headset or an OMTP headset as only speakers. How do I do that?

    Regards, Thorben

  • In reply to Thorben Vornholz:

    Thorben,

    To achieve the above function you will need to manually control the TS3A227E switch matrix and prevent the device from running the automatic detection.  

    Page 21 and 22 of the datasheet goes into detail on how to set up the registers for this operation.

    You will need to set the manual switch control (1), Auto DET EN (0), and DET_TRIGGER (SW) (0).  When you set these registers the switch matrix will configure itself to its last detection state.  Then you can set the switch matrix how you would like.

    Let me know if this information helps you.

    Thank you,

    Adam

  • In reply to Adam Torma:

    Hi Adam,

    thanks again for your answer. I tried the following:

    1. Disconnect the headset
    2. Reset TS3A227E
    3. Set detection time to 2 seconds (write 0x27 to 0x04)
    4. Disable Auto DET (write 0x07 to 0x04)
    5. Enable Manual Switch Control (write 0x47 to 0x04)
    6. Setup the control registers for OMTP
      1. write 0x28 to 0x7
      2. write 0x06 to 0x8
    7. Insert CTIA headset
    8. Read 0x08 from 0xB after 3 seconds

    I've also tried the same procedure with the headset already connected before calling the first step. Still reading 0x08 at the end.

    Am I missing something?

    Regards, Thorben

  • In reply to Adam Torma:

    Hi Adam,

    could you please provide further information? Please have a look at my last post

    Regards, Thorben

  • In reply to Thorben Vornholz:

    Thorben,

    I think you may be overwriting your own settings in this procedure if I'm interpreting this correctly.  You write to the 0x04 register several times with different values.  I think if you write 0x67 to 0x04 the TS3A227E will behave the way you want.  This will give you manual control of the switch and automatic detection so that when you insert the headset into the jack the TS3A227E will go through its detection sequence and update register 0x0B.   

    1.Disconnect the headset

    2.Reset TS3A227E

    3.Set detection time to 2 seconds (write 0x27 to 0x04) Correct

    4.Disable Auto DET (write 0x07 to 0x04) OK, but you also overwrote the detection time to 120ms because you changed bits 0-2 to 010.  The 0x04 register only holds the last value written to the register.  

    5.Enable Manual Switch Control (write 0x47 to 0x04) OK, you overwrote bits 0-2 of 0x04 again to be 2s debounce.  You also overwrote bit 5 of 0x04 to disable automatic detection.   The 0x04 register only holds the last value written to the register.  

    6.Setup the control registers for OMTP You would need to write 0x28 to 0x07 switch control 1 and  0x06 to 0x08 switch control 2

    a.write 0x28 to 0x7 Correct

    b.write 0x06 to 0x8 Correct

    7.Insert CTIA headset

    8.Read 0x08 from 0xB after 3 seconds This is correct since you have a an accessory inserted in to the jack. 

    How are you initiating the detection sequence since you disabled the automatic detection on step 5?

     

    If after step 8,  you write  0x57 to 0x04 to manually trigger the detection sequence will the 0x0B register read 0x09 for OMTP


     

    Thank you,

    Adam

  • In reply to Adam Torma:

    Thank you for your help, it works.

  • In reply to Adam Torma:

    Hi Adam, I got one last question.

    You wrote:

    > If after step 8,  you write  0x57 to 0x04 to manually trigger the detection sequence will the 0x0B register read 0x09 for OMTP.

    Don't you mean 0x0A for OMTP? 0x09 Should be normale 3 pole.

    Regards, Thorben

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.