TIC12400-Q1: Enabling wetting current diagnostic functionality

Part Number: TIC12400-Q1
Other Parts Discussed in Thread: TIC12400

I'm currently wanting to enable the wetting current diagnostics on IN0 of the TIC12400 however when I do this none of the inputs change values anymore if their hardware input states change. The datasheet seems to indicate that there is no additional procedure for properly enabling this functionality (with the exception of the order in which the registers are written which I am complying with). Is this a behaviour that has been seen before or is there some additional configuration steps that I need to do in order to be able to properly do wetting current diagnostics during normal device operation?

  • Hello Ian,

    I would recommend looking over the App Report below. It's a guide on how to configure the part.

    Steps to Configure TIC12400-Q1 Multiple Switch Detection Interface (MSDI).

    Regards,

    Josh

  • I am already configuring the device according to the procedure specified in the app note. However, when enabling the wetting current diagnostic feature none of the input readings in the registers reflect the actual input voltages.

  • Hello Ian,

    We are looking into this and will respond shortly. Thanks!

    Regards,

    Josh

  • Hi Joshua,

    Did you find anything?

    Thanks!

  • Hello, 

    The team is currently out of office due to holidays, we will get back to you as soon as possible.

    Regards,

    Jack

  • Hello Ian,

    Apologies for the delay.

    Can you confirm you are using the procedure below?

    1) Enable IN_EN_0 bit in the IN_EN register

    2) Make sure CS_IN0 bit is set to 0 in the CS_SELECT register

    3) Make sure M_IN0 bit is set to 1 in the MODE register

    4) Enable wetting current for IN0 under WET_D_IN0_EN bit in the CONFIG register

    5) Enable Trigger bit to 1

    I'm using TIC12400EVM and GUI to configure the part and I'm able to see state changes on IN0.

    Regards,

    Josh

  • Hello Ian,

    For your second question, can you share the input voltages you measured vs ADC code?

    Regards,

    Josh

  • Hi Joshua,

    Sorry for the delay. I am currently doing the configuration sequence of the registers as you have outlined above but the issue still persists. Are there any other registers that perhaps need to be configured a particular way in order for this to work? 
    As for the input voltages, the values read from the device for the analog voltages are what appear to be sampled only a single time and then never again. That is, if I set the input to be 10V the read value will be always stuck at the 10V reading in the register regardless of any variation to that input.

  • Hello Ian,

    The ADC input has a full scale of 6V so I'm not entirely sure how you are getting 10V. What register are you reading this from and what is the data that's outputted from the TIC12400?

    Regards,

    Josh

  • Sorry Josh that was merely an example. We have an input divider to scale to the ADC full range. My point was that the input is only ever sampled once by the ADC and then the register always reads that same value regardless of the input voltage.

  • Hello Ian,

    No worries.

    What register(s) are you reading the input voltage from and what is the data that's outputted from the TIC12400? I want to make sure I'm following along and not missing anything.

    Regards,

    Josh

  • Hi Josh,

    I'm reading the ANA_STATx registers. The initial reading in the registers seem correct (i.e 0x3FF at full range).

  • Hello Ian,

    Even if you force the inputs to ground, ANA_STATx registers would still read 0x3FF?  If we are reading 0x3FF, it means we are either surpassing 6V at the input or we left the input floating. 

    Regards,

    Josh

  • Hi Josh,

    The inputs all work as expected as long as I don't enable the wetting current diagnostic. It's only when I have this enabled do none of the register values change according to input stimulus. All the registers DO NOT read 0x3FF only ones that are held high. If I pull the those inputs low the register values do not change. That is the behaviour I am trying to describe. This is the case regardless of what the initial input voltage is.

  • Hello Ian,

    Let me set the wetting current diagnostic on my end and send you what I'm configuring. I was able to set the wetting current diagnostic in a previous test and didn't see any issues with reading input values.

    Regards,

    Josh

  • Hello Ian,

    Please see this excel for your reference: TIC12400-Q1.xlsx

    When comparing the register values when either wetting current diagnostics is on or off, the only thing changing are the CONFIG and INT_EN_CFG0 registers.

    • In the CONFIG register, please ensure WET_D_IN0_EN is enabled
    • In the INT_EN_CFG_0 register, please ensure WET_DIAG_EN is enabled.

    Inputs values (ANA_STAT_0) did change when current diagnostics was enabled.

    I would compare the values I provided with the values in your device to make sure nothing is missing.

    Regards,

    Josh 

  • Hi Joshua,

    Sorry for the delayed response. I configured my device to be have the same CONFIG register settings and ensured that the configuration procedure is the same as you specified and I am seeing the same behaviour: the input value registers never change when the diagnostic is enabled. Here is a dump of my device registers.

    Register Value
    DEVICE_ID 01 0x2
    INT_STAT 02 0x0
    CRC 03 0x24A9
    INT_STAT_MISC 04 0x0
    IN_STAT_COMP 05 0x00FD1542
    IN_STAT_ADC0 06 0x00AAA87F
    IN_STAT_ADC1 07 0x3F
    IN_STAT_MATRIX0 08 0x0
    IN_STAT_MATRIX1 09 0x00EFD000
    ANA_STAT0 0A 0xFFFFF
    ANA_STAT0 0B 0xD8FFF
    ANA_STAT0 0C 0xD8B62
    ANA_STAT0 0D 0x1B62
    ANA_STAT0 0E 0x1405
    ANA_STAT0 0F 0XFFC05
    ANA_STAT0 10 0xFFFFF
    ANA_STAT0 11 0xFFFFF
    ANA_STAT0 12 0xFFFFF
    ANA_STAT0 13 0xFFFFF
    ANA_STAT0 14 0x3FF
    ANA_STAT0 15 0x0
    ANA_STAT0 16 0x0
    RESERVED 17 0x0
    RESERVED 18 0x0
    RESERVED 19 0x0
    CONFIG 1A 0x40C40
    IN_EN 1B 0xFFFFFF
    CS_SEL 1C 0x0
    WC_CFG0 1D 0x11
    WC_CFG1 1E 0x1249
    CCP_CFG0 1F 0x1
    CCP_CFG1 20 0x10040C
    THRES_COMP 21 0xAAA
    INT_EN_Comp1 22 0x0
    INT_EN_Comp2 23 0x0
    INT_EN_CFG0 24 0x400
    INT_EN_CFG1 25 0x30
    INT_EN_CFG2 26 0x30C0C0
    INT_EN_CFG3 27 0x30C0
    INT_EN_CFG4 28 0x0
    THRES_CFG0 29 0x7FDAA
    THRES_CFG1 2A 0x37566
    THRES_CFG2 2B 0x0
    THRES_CFG3 2C 0x0
    THRES_CFG4 2D 0x0
    THRESMAP_CFG0 2E 0x0
    THRESMAP_CFG1 2F 0x3000
    THRESMAP_CFG2 30 0x0
    MATRIX 31 0x0
    MODE 32 0x1BEEFD
    CONFIG 1A

    Thanks.

  • Helllo Ian,

    I will take a look at your register values and will provide a response by Friday. Thanks!

    Regards,

    Josh

  • Hi Josh,

    Any update on this?

    Thanks.

  • Hello Ian,

    Apologies for the delay. Will comment by EOD today.

    Regards,

    Josh

  • Hello Ian,

    Thanks again for providing the register data. Using your values, I configured the part and ran into the same issues.

    Here are the steps I did to fix it.

    1) Since IN23 is enabled, we need to follow proper ADC input configuration even if we use a comparator

    Throughout your code, you don't use THRES8 or THRES9 threshold voltages so we can easily write 0x7DFAA to THRES_CFG4 register. This will solve any improper configuration on IN23.

    2) Make sure all inputs are configured to ADC mode even if Wetting Current Diagnostics is configured to only one input. That means we need to change IN1 from Comp to ADC

    3) Make sure INT_EN_CFG3 and EN_CFG4 registers are set to 0. (this follows the recommendation from Table 8-3).

    Once I updated the registers, I was able to see input state changes on IN0 (while wetting current diagnostics was on).

    I've updated the excel worksheet to show the differences between the code you provided and mine. Thanks!

    3051.TIC12400-Q1.xlsx

    Regards,

    Josh