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.

TCA8418: TCA8418 respond only C1 keys response. Other C2-C10 response failed.

Part Number: TCA8418

I used TCA8418 in my custom product and connected 75 keys as matrix.

I used IC in polling mode. Read every 1msec to detect key.

At power on, all key detection is proper.

But after fast pressing or random pressing, at some moment there is following problem occurs:

In key matrix, those keys which are in C2-C10, those cannot give any response.

But if I pressed C1 (where 4 pins connected, any one of 4 keys), IC will give response and after that C2-C10 keys also gives response.

If i reset IC, then after also IC working.

My observation during issue:

- I2C working OK.

- IC working OK with only C1 column keys

Please support me on that. Is there in software issue or IC bug?

  • Hi Vishal,

    Can you provide a schematic of your system? Can you also show how you configure your registers? Especially registers KP_GPIO1/2/3, UNLOCK1/2, KP_LCK_TIMER, and configuration register (0x01)? 

    Regards,

    Tyler

  • Hi Tyler,

    I cannot share schematic. It's private.

    My configuration is as follows:
    Config register=0x21, KP_GPIO1/2/3=0xFF, GPI_EM1/2/3=0xFF, DEBOUCE_DIS1/2/3=0xFF

    Read logic is as follows:
    First read KEY_LCK_EC register and if there is any event then read KEY_EVENT_A until get all events.

    Is there is any missing or extra required then please guide me.
    Here I use polling method. Can Interrupt help on that?

    Regards,
    Vishal

  • Hi Vishal,

    Just to clarify, you said all buttons in C1 work. How many buttons are in column 1? Also, C10 does not exist. Are you stating that your column 1 (C1) is actually column C0 in the datasheet?

    In the meantime, can you try setting config_register = 0xA1 to see if this changes anything? 

    I do see that you have the overflow mode set to enabled; overflow data shifts with last event pushing first event out. Have you made the necessary accommodations in your code to adjust for this shifting of events?

    I am unsure if this is a software or hardware related bug, please contact me at my email at

    t-townsend@ti.com

    Here you can share schematics and software offline to debug this problem further. 

    Regards,

    Tyler

  • Hello Tyler,

    Thanks for reply.

    Just to clarify, you said all buttons in C1 work. How many buttons are in column 1? Also, C10 does not exist. Are you stating that your column 1 (C1) is actually column C0 in the datasheet?

    In Column 1, threr are 5 key connected. As per your thinking, For column C0-C9, my Column 1 is C0.

    In the meantime, can you try setting config_register = 0xA1 to see if this changes anything?

    This will not work. Here in our code, we read or write 1 byte at a time.So, auto-increment not required.

    I do see that you have the overflow mode set to enabled; overflow data shifts with last event pushing first event out. Have you made the necessary accommodations in your code to adjust for this shifting of events?

    It's required in our code. We works on the latest key handling.

    I will share you my schematic and logic from vishal.akbari@encore-research.co

    Regards,

    Vishal

  • Hi Vishal,

    I will close this post since we are taking information offline.

    Regards,

    Tyler