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: automating testing process

Part Number: TCA8418

We are looking at a way to automate the pressing of the keypad buttons which use the TCA8418 keypad interface.  Is there any possible way to apply a logic voltage on the corresponding row and column to simulate a specific pin being pressed? Or do we have connect a circuit to the row and column which will actually short the two together to simulate the keypress? Our current test system only has logic drivers available, no shorting relays, so that is why we are asking.

  • See sections 8.4.2.1/2 and 9.1.1 of the datasheet:

    Once the TCA8418 has had the keypad array configured, it will enter idle mode when no keys are being pressed. All columns configured as part of the keypad array will be driven low and all rows configured as part of the keypad array will be set to inputs, with pull-up resistors enabled. […]

    Once a key is pressed in the array, a low signal on one of the ROW pin inputs triggers an interrupt, which will turn on the internal oscillator and enter the active key scan mode. At this point, the TCA8418 will start the key scan algorithm to determine which key is being pressed, and/or it will use the internal oscillator for debouncing. […]

    During this algorithm, It sweeps the output low across the columns, such that only 1 column is driven low at a time. While this is done to each column, the TCA8418 will read the ROW inputs, to determine which keys on a column are being pressed.

    So the column pins are not inputs. And if you unconditionally drive a row input low, all keys in the column will be detected.

    You have to short a row input to the corresponding column output. Alternately, simulate this by reading the state of the column output (low or Hi-Z) and reacting fast enough, which is probably not possible.

  • Nicholas,

    In addition to Clemens's correct comment above, I would say one potential option would be to test by having only one column configured and up to 8 rows of "buttons." Here, there is no concern for the device "detecting the whole column," since there would only be one button per column. I'm not sure if this would perfectly fit the use case you've described, not to mention that this would only allow 8 buttons maximum.

    Best,

    Danny

  • A matrix with on column would be pointless; in this case, configuring all pins as GPIs would give you 18 keys.

    You could add switches (74xx66) or three-state drivers (74xx126) to the board, but with one gate per key, that would probably be too expensive.