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.

TLV320DAC3100: Unable to get Jack Interrupt on headphone insertion

Part Number: TLV320DAC3100

I want to generate Jack interrupt whenever i insert the Headphone. Following is the schematic design part of TLV IC implementation.

 And below is the settings i have done to enable the interrupt 

void enable_jack_interrupt()
{
system("i2cset -y -r 1 0x18 0x00 0x00");
system("i2cset -y -r 1 0x18 0x01 0x01");
system("i2cset -y -r 1 0x18 0x04 0x03");
system("i2cset -y -r 1 0x18 0x06 0x08");
system("i2cset -y -r 1 0x18 0x07 0x00");
system("i2cset -y -r 1 0x18 0x05 0x91");
system("i2cset -y -r 1 0x18 0x0B 0x88");
system("i2cset -y -r 1 0x18 0x0C 0x82");
system("i2cset -y -r 1 0x18 0x0D 0x00");
system("i2cset -y -r 1 0x18 0x1B 0x00");
system("i2cset -y -r 1 0x18 0x3C 0x0B");
system("i2cset -y -r 1 0x18 0x00 0x08");
system("i2cset -y -r 1 0x18 0x01 0x04");
system("i2cset -y -r 1 0x18 0x00 0x00");
system("i2cset -y -r 1 0x18 0x74 0x00");
system("i2cset -y -r 1 0x18 0x43 0x85");
system("i2cset -y -r 1 0x18 0x30 0xC0");

system("i2cset -y -r 1 0x18 0x00 0x01");
system("i2cset -y -r 1 0x18 0x1F 0x04"); //for headphone uncomment this line
system("i2cset -y -r 1 0x18 0x21 0x4E");
system("i2cset -y -r 1 0x18 0x23 0x44");
system("i2cset -y -r 1 0x18 0x28 0x06");
system("i2cset -y -r 1 0x18 0x29 0x06");
system("i2cset -y -r 1 0x18 0x2A 0x1C");
system("i2cset -y -r 1 0x18 0x1F 0xC2");//for headphone uncomment this line
system("i2cset -y -r 1 0x18 0x20 0x86");//for headphone only just comment this line
system("i2cset -y -r 1 0x18 0x24 0x92");
system("i2cset -y -r 1 0x18 0x25 0x92");
system("i2cset -y -r 1 0x18 0x26 0x92");

system("i2cset -y -r 1 0x18 0x00 0x00");
system("i2cset -y -r 1 0x18 0x3F 0xD4");
system("i2cset -y -r 1 0x18 0x41 0xE6");// 0xE6=0.4V 0xFB=1.5v AC
system("i2cset -y -r 1 0x18 0x42 0xE6");
system("i2cset -y -r 1 0x18 0x40 0x00");

} But still I could not able to get interrupt on Jack INT pin. Can you support me on solving the problem statement.

  • Hi Madhuri,

    From hardware perspective, there are a couple things that may have to be adjusted:

    • From DAC3100 documentation, pin 11 should be connected to the jack pin that changes from floating to GND when the plug is inserted. Not sure what the Sleeve pin is doing on this jack, and not clear if this pin is toggling from float to GND depending on the plug insert,
    • Then from that same connection of pin 11 and the jack pin, there should be a resistor connecting to pin 12. It seems you have this backwards being pin 12 the common connection to the jack.
    • You can refer to the connection from the EVM User's Guide, involving pin 11, pin 12, R17 and J4-pin4, as well as data sheet Figure 6-17 in Section 6.3.10.5.

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi,

    Thank you for your response.

    As per our headphones (ZEB BUDS30) pin 4 is ground and pin 1 is for mic i.e. written sleeve in jack connectors datasheet as per attachment. So this hardware could be okay I guess. Is the DAC settings i have done is correct? Or something else you can suggest. 

     

  • Hi Madhuri,

    I think you still need to fix the MICBIAS and MICDET connection, the headphone jack pin must be connected to MICDET instead of MICBIAS.

    Register configuration looks OK for the portion related to MICDET, I'll need more time to double check all the rest, I'll come back with any further comments on the registers within a couple of days.

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi,

    We have tried suggested change in hardware design but still we could not able to achieve the interrupt.

    Can you suggest more. following registers I have been used and set to 

    1) 0x43 -> 0x80

    2) 0x30 -> 0xC0

    3) 0x33 -> 0x14

    4) 0x2E -> 0x09

  • Hi,

    Can you please check MICDET pin 11 with a scope and share captures of this signal when plug is inserted and not inserted?
    Also please read register 0x43 with plug inserted and not inserted, is there any change on bits 6:5?

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi Ivan,

    Can you share the register setting require to enable jack interrupt  

  • Hi,

    Enabling MSB on register 0x43 should enable the headset detection, would you be able to test as mentioned above by using an oscilloscope and reading register 0x43 content?

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Yes. I do see the Micdet pin on oscilloscope(Yellow line as per attachment). No effect on 0x43 register.

    Also connect Micdet directly to ground instead of inserting headset.

    What are the more register settings requires?

  • Hi,

    I have replicated the test on EVM, I can confirm you need to enable bit 7 from Page 1 Register 0x43. I tested with different MICBIAS settings on Page 1 Register 0x2e, all of them work as it remains at 2V or higher depending on the configuration. You can try with this:

    system("i2cset -y -r 1 0x18 0x00 0x01"); // go to page 1
    system("i2cset -y -r 1 0x18 0x2e 0x0b"); // enable MICBIAS always, MICBIAS powered from AVDD
    system("i2cset -y -r 1 0x18 0x00 0x00"); // go to page 0
    system("i2cset -y -r 1 0x18 0x43 0x80"); // enable bit MICDET

    On the hardware side, I can see from your scope capture that MICDET goes low close to 0V, but then it rises to about half of the supply. This is not OK as the detection would consider this as "no insert". Can you comment why is it not stay low? That should fix the detection.

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi Ivan,

    I able to resolve the issue by setting page3/register 10.

    Thank you so much for your support

  • Hi,

    Good to know you got it working now. Thanks for sharing this information.

    Best regards,
    -Ivan Salazar
    Applications Engineer