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.

TIC12400-Q1: TIC12400-Q1

Part Number: TIC12400-Q1

Tool/software:

Hi,

   I am using MSDI-TIC12400QDCPRQ1 in our system. In that we have created a function, by calling it ADC of the particular channel can be calculated. I am facing the issue while calling the function more than one time. The first API or function is executed correctly and we able to see the ADC value. But whatever function executed after this the value is not changing. I am not getting the ADC value for that channel.

   Once the value is stored in the register, it is not changing. If the board is reset and tried again it is changing accordance to the first function and not the second. Kindly help me to solve the issue.

 

  • Hi Leethika,

    Thank you for your question. Please refer to the following document: Steps to Configure TIC12400-Q1 Multiple Switch Detection Interface (MSDI) and ensure that these steps have been followed. If you are still having issues, would it be possible to share the register writes that you are using?

    Thank you, Amy

    1. Enabling the respective channel, here 1st channel is enabled, 0y10110110.00000000.00000000.00000011
    2. Next, configuring whether it is current source or slave, 0y00110110.00000000.00000000.00000011
    3. Next, it is configured as a comparator or adc, here it is used as adc, 0y11100100.00000000.00000000.00000010
    4. Next wetting current for the channel is selected for both the registers, 0y10111010.10010010.01001001.00100100 , 0y10111100.00010010.01001001.00100101
    5. Next, interrupt register is made SSC_EN, 0y11001000.00000000.00000000.00001001
    6. Next, config register is set, 0y10110100.00000000.00011000.01000101
    7. reading the adc value from the respective ANA_STATx register, 0y00010100.00000000.00000000.00000001

    Above are the configurations done in MSDI, and we also observed that parity interrupt is happening though parity are correct. And also once the value is set it can't be overwritten by another value. Kindly help us to solve the issue. 

    Note: The reset pin is made low.

  • Hi Leethika,

    Here is a post with a similar issue: TIC12400-Q1: TIC12400: Wakeup configuration issues - Interface forum - Interface - TI E2E support forums

    Can you confirm that the trigger bit is set to 0 before any other registers are written to? The config register should be written to first to set the trigger bit to 0. 

    Thank you, Amy

  • Thanks for the reply, the above has been worked. Now we are facing issues in Comparator mode. The following has been configured in the order,

    1. The respective channel is enabled in IN_EN register, 0y10110110.00000000.00000000.00000011
    2. CONFIG register is made to zero
    3. Configure whether the channel to be done in current source or sink, 0y10111000.00000000.00000000.00000010
    4. Set the wetting current in the respective register, 0y10111010.00000000.00000000.00000101,
    5. The register is set to ADC or Comparator, 0y11100100.00000000.00000000.00000001
    6. Threshold is set to zero in THRES_COMP, 0y11000010.00000000.00000000.00000000,
    7. Interrupt is set in the INT_EN_CF0 register,0y11001000.00000000.00000000.00001001
    8. CONFIG register is filled with necessary configurations. 0y10110100.00000000.00011000.01000101
    9. Read the IN_STAT_COMP register to see the result, 0y00001010.00000000.00000000.00000001

    I am not observing any data in IN_STAT_COMP, the input I gave is 5V and the threshold is 2V but I am not seeing any data. And also I am getting parity error in the received registers though parity is correct. Kindly help me to solve the issue.

  • Hi Leethika,

    Glad to hear that this solved the ADC issue! 

    For the comparator mode issue, kindly refer to the following post: TIC12400: Switch State Change (SSC) Interrupt generated

    I would recommend trying the register writes listed. However, for register 0x1A, ensure that for register 0x1A that WET_D_INx_EN bits are set to 0. Additionally, if you are not using the INT_CONFIG with the dynamic try setting this to static.

    Thank you, Amy