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: Keypad Lock feature does not work

Part Number: TCA8418

Hello,

I'm trying to utilize the keypad lock feature of the TCA8418 to ignore all button presses but unable to get the device to actually enter locked mode. I have followed the application example in the data sheet (9.2.2.2) down to the exact register values. This is followed by a write of 0xFF to the KEY_LCK_EC register to lock the keypad. I then read back every register to verify the correct values have been latched and they are all correct. The only problem is LCK1 and LCK2 of KEY_LCK_EC are both 0 indicating the keypad is still not locked even though K_LCK_EN is 1 on the same readback.

Testing the keypad after this does indeed show that lock failed to enabled as K_INT's are fired on every key press allowing the keypad to function normally.

What is preventing the keypad from entering lock mode?

Thanks for your help,

Lukas

  • Hi Lukas,

    Do you have oscilloscope captures, code, schematic, that could help create a fuller picture of what problem you are facing? 

    Regards,

    Tyler

  • I will try and capture the I2c traffic on a logic analyzer. Although I'm not so sure if it will help since I have confirmed the configuration of the device by querying it. 

    Code is not the issue. We have been using TCA for a very long time succesfully. Only now are we interested in the lock feature. 

    Schematic is typical application. Simple keypad, nothing special. 

  • Hi Lukas,

    I think I have better understanding now from re-reading the thread. 

    I am assuming you are following this procedure in section 8.3.2 of the datasheet? 

    Can you print and give register readouts for the following registers? 

    KEY_LCK_EC

    UNLOCK1

    UNLOCK2

    KP_LCK_TMR

    This is followed by a write of 0xFF to the KEY_LCK_EC register to lock the keypad. I then read back every register to verify the correct values have been latched and they are all correct.

    Just to see what happens. Instead of writing 0xFF to the KEY_LCK_EC register, can you try only writing to BIT6 (K_LCK_EN)? Only write a 1 or 0 to that specific bit. Do not try to overwrite BIT7 for example with 0xFF. 

    Regards,

    Tyler