
Data Sheet
ADP5589
Rev. B | Page 11 of 52
LOGIC EVENT
56
789
10
11
4
3
2
1
16
17
18
19
20
21
22
15
14
13
12
27
28
29
30
31
32
33
26
25
24
23
38
39
40
41
42
43
44
37
36
35
34
49
50
51
52
53
54
55
48
47
46
45
60
61
62
63
64
65
66
59
58
57
56
71
72
73
74
75
76
77
70
69
68
67
82
83
84
85
86
87
88
81
80
79
78
FIFO
UPDATE
KEY SCAN
CONTROL
I/O CONFIGURATION
KEY EVENT
GPI EVENT
I2C BUSY?
R0
R3
R1 R2
R4
R7
R5 R6
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
COLUMN
SINK ON/OFF
PIN_CONFIG_A[7:0]
PIN_CONFIG_B[7:0]
ROW
SENSE
FIFO
PIN_CONFIG_C[2:0]
UNLOCK1[7:0]
UNLOCK2[7:0]
EXT_LOCK_EVENT[7:0]
UNLOCK_TIMER[2:0]
INT_MASK_TIMER[4:0]
LOCK_EN
LOCK_STAT
EVENT_INT
OVRFLOW_INT
LOCK_INT
EC[4:0]
RESET_TRIGGER_TIME[2:0]
RESET1_EVENT_A[7:0]
RESET1_EVENT_B[7:0]
RESET1_EVENT_C[7:0]
89
91
96
95
94
90
93
92
RESET2_EVENT_A[7:0]
RESET2_EVENT_B[7:0]
RESET 1_INITIATE
RESET 2_INITIATE
0
971
4-
01
0
Figure 11. Detailed Key Scan Block
Use Registers PIN_CONFIG_A[7:0] (0x49),
PIN_CONFIG_B[7:0] (0x4A), and PIN_CONFIG_C[2:0]
(0x4B) to configure I/Os for keypad decoding. The number
label on each key switch represents the event identifier that
is recorded if that switch is pressed. If all row/column pins
are configured, it is possible to observe all 88 key identifiers on
the FIFO.
If a smaller 3 × 3 matrix is configured, for example, using the
C5, C6, and C7 column pins and the R1, R2, and R3 row pins,
only the nine event identifiers (17, 18, 19, 28, 29, 30, 39, 40,
and 41) can possibly be observed on the FIFO, as shown in
By default, the
ADP5589 records key presses and releases on the
FIFO
. Figure 12 illustrates what happens when a single key is
pressed and released. Initially, the key scanner is idle. When
Key 32 is pressed, the scanner begins scanning through all
configured row/column pairs. After the scan wait time, the
scanner again scans through all configured row/column pairs
and detects that Key 32 has remained pressed, which sets the
EVENT_INT interrupt. The event counter, EC[4:0], is incre-
mented to 1, EVENT1[7:0] of the FIFO is updated with its event
identifier set to 32, and its Event1_State bit is set to 1, indicating
a press.
KEY 32
KEY 32 PRESS
KEY 32 RELEASE
KEY SCAN
EVENT_INT
EC[4:0]
FIFO
1
2
1
0
32
0
09
714-
0
1
Figure 12. Press and Release Event
The key scanner continues the scan/wait cycles while the key
remains pressed. If the scanner detects that the key has been
released for two consecutive scan cycles, the event counter
EC[4:0] is incremented to 2, and EVENT2[7:0] of the FIFO is
updated with its event identifier set to 32. Its Event2_State bit is
set to 0, indicating a release. The key scanner goes back to idle
mode because no other keys are pressed.
The EVENT_INT interrupt can be triggered by both press and
EVENT_INT is asserted, EC[4:0] is updated, and the FIFO is
updated. During the time that the key is still 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 incremented, and
the FIFO updated with the release event information.