Electronic Components Datasheet Search
ADP5589CP-EVALZ Datasheet(PDF) 12 Page - Analog Devices
AD [Analog Devices]
ADP5589CP-EVALZ Datasheet(HTML) 12 Page - Analog Devices
/ 52 page
Rev. B | Page 12 of 52
KEY 32 PRESS
KEY 32 RELEASE
Figure 13. Asserting the EVENT_INT Interrupt
Key Pad Extension
As shown in Figure 11, 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 whole row is grounded.
When the key scanner completes scanning, it normally detects
Key 1 to Key 11 as being pressed; however, this unique condi-
tion is decoded by the ADP5589, and Key Event 89 is assigned
to it. Up to eight more key event assignments are possible, allowing
the keypad size to extend up to 96. However, if one of the
extended keys is pressed, none of the keys on that row is
detectable. Activation of a ground key causes all other keys
sharing that row to be undetectable.
Ghosting is an occurrence where, given certain key press com-
binations 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 can cause ghosting.
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 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 that are likely to be pressed
together in the same row or column. Some examples of keys
that are likely to be pressed together are as follows:
The navigation keys in combination with Select.
The navigation keys in combination with the space bar.
The reset combination keys, such as CTRL + ALT + DEL.
Figure 14. COL0-ROW3 is a Ghost Key Due to Short Between ROW0, COL0,
COL2 and ROW3 During Key Press
The ADP5589 features a lock mode, whereby events are pre-
vented from updating the FIFO or the event counter or from
generating EVENT_INT interrupts until an unlock event is
The lock feature is enabled by setting the LOCK_EN (0x37)
bit or, alternatively, by a user programmable key or GPI event
(set via EXT_LOCK_EVENT[7:0], Address 0x35). If the lock
feature is enabled by the LOCK_EN bit, the LOCK_STAT
(0x02) bit is set. If the lock feature is enabled by an external
event, then the LOCK_STAT bit is set, and a LOCK_INT
interrupt is generated.
Unlock events are programmed via the UNLOCK1[7:0] (0x33)
and UNLOCK2[7:0] (0x34) registers. Bits[6:0] comprise the
even number. Bit 7 determines the active/inactive event (see the
UNLOCK1 Register 0x33 (Table 59) and the UNLOCK2
Register 0x34 (Table 60).
If the user chooses to use only one unlock event, only the
UNLOCK1[7:0] register should be programmed. Unlock events
can be key press events (Event 1 to Event 88). Key release events
are ignored when the keypad is locked and should not be used as
GPIs configured to generate FIFO updates can also be used as
unlock events (Event 97 to Event 115, either active or inactive).
If either UNLOCKx register is programmed with Value 127
(Event 127), this means that any allowable event (key or
GPI) is the unlock event. For example, if UNLOCK1[6:0] is
programmed with 17, and UNLOCK2[6:0] is programmed with
127, the unlock sequence is Key 17 press followed by any other
If the first unlock event is detected, partial unlock has occurred.
If the next event after the first unlock event is not the second
unlock event, then a full lock state is entered again. If the next
event after the first unlock event is the second unlock event,
then LOCK_STAT is cleared, and a LOCK_INT interrupt is
generated. The user can at any stage clear LOCK_EN. This
clears the LOCK_STAT bit but does not cause a LOCK_INT
interrupt to be generated.
Does ALLDATASHEET help your business so far?
[ DONATE ]
All Rights Reserved©
| English :
| Chinese :
| German :
| Japanese :
| Korean :
| Spanish :
| French :
| Italian :
| Polish :
| Vietnamese :