English
Language : 

ADP5586 Datasheet, PDF (12/44 Pages) Analog Devices – Keypad Decoder and I/O Port Expander
ADP5586
Data Sheet
The EVENT_INT interrupt (Register 0x01, Bit 0) can be triggered
by both press and release key events. As shown in Figure 12, if
Key 3 is pressed, EVENT_INT is asserted, EC[4:0] is updated,
and the FIFO is updated. During the time that the key remains
pressed, it is possible for the FIFO to be read, the event counter
decremented to 0, and EVENT_INT cleared. When the key is
finally released, EVENT_INT is asserted, the event counter is
incremented, and the FIFO is updated with the release event
information.
KEY 3
KEY SCAN
EVENT_INT
EC[4:0]
EVENT_INT CLEARED
1
0
1
KEY 3 PRESS
FIFO
13
00
00
00
FIFO
READ
FIFO
00
00
00
00
KEY 32 RELEASE
FIFO
03
00
00
00
Figure 12. Asserting the EVENT_INT Interrupt Keypad Extension
As shown in Figure 10, the keypad can be extended if each row
is connected directly to ground by a switch. If the switch placed
between R0 and ground is pressed, the entire row is grounded.
When the key scanner completes scanning, it normally detects
Key 1 to Key 5 as being pressed; however, this unique condition
is decoded by the ADP5586, and Key Event 31 is assigned to it.
Up to five more key event assignments are possible, allowing the
keypad size to extend up to 30. However, if one of the extended
keys is pressed, none of the keys on that row is detectable. The
activation of a ground key causes all other keys sharing that row
to be undetectable.
Precharge Time
During a scan sequence, a row scans through the columns
sequentially. Each row/column combination is tested at a rate
that is defined by the KEY_POLL_TIME bits (Register 0x39,
Bits[1:0]). Within each of these scan times, each column is
scanned for a time defined by the PRECHARGE_TIME bit
(Register 0x39, Bit 3). As shown in Figure 13, the resistance
capacitance (RC) time constant, which is defined by the series
resistance (from pull-up/pull-down, for example) and parallel
capacitance that is seen on the individual columns, affects the
sampling of a key press event.
PRECHARGE TIME
The ADP5586 samples the state of the row/column pairs near
the end of the precharge time. By extending this time, higher RC
time constants can be accommodated. For applications that use
physical buttons, the RC time constant is usually not an issue, but
if external relay switches or multiple external muxes are attached to
columns, the RC constant may increase. Using a smaller pull-up
resistor on the rows (Register 0x3C, Bit 7) reduces the RC time
constant.
Ghosting
Ghosting is an occurrence where, given certain key press
combinations on a keypad matrix, a false positive reading of
an additional key is detected. Ghosting is created when three
or more keys are pressed simultaneously on multiple rows or
columns (see Figure 14). Key combinations that form a right
angle on the keypad matrix may cause ghosting.
COL0
COL1
COL2
ROW0
PRESS
PRESS
ROW1
ROW2
GHOST
PRESS
ROW3
Figure 14. Ghosting Example: Column 0/Row 3 is a Ghost Key Due to a Short
Among Row 0, Column 0, Column 2, and Row 3 During Key Press
The solution to ghosting is to select a keypad matrix layout that
takes into account three key combinations that are most likely
to be pressed together. Multiple keys that are pressed across one
row or across one column do not cause ghosting. Staggering
keys so that they do not share a column also avoids ghosting.
The most common practice is to place keys in the same row or
column that are likely to be pressed at the same time. Some
examples of keys that are likely to be pressed at the same time
are as follows:
• The navigation keys in combination with the Select key
• The navigation keys in combination with the space bar
• The reset combination keys, such as CTRL + ALT + DEL
R1 SCAN
ACTIVE
VC2
VC3
KEY 8 (R1, C2) SAMPLED
KEY 9 (R1, C3) SAMPLED
Figure 13. Precharge Time
Rev. 0 | Page 12 of 44