ADP5587
Data Sheet
Rev. D | Page 10 of 24
Auto-Increment
The ADP5587 features automatic increment during I2C read
access, which allows the user to increment the address pointer
without the need to send a read command for subsequent
addresses. This minimizes processor intervention and, therefore,
saves processor bandwidth and current drain. Bit 7 of Register 0x01
must be set to initiate auto-increment (see
Figure 17 for the full
write and read sequence).
Key Event Interrupt
On a key event (KE) interrupt, the processor reads the interrupt
status register to determine the cause of the interrupt. If the
KE_INT bit in Register 0x02 is set, the processor reads the key
event count from the KEC [3:0] field in Register 0x03 to determine
the number of events. After reading all the events from the
FIFO, it then reads the KEC field again (in Register 0x03) to
make sure that no new events have come in. After all the events
are read, the KEC field is decremented to zero (KEC = 0), and
the KE_INT bit can be cleared by writing a 1 to it. Both key
presses and key releases are capable of generating key event
interrupts. The KE_INT bit cannot be cleared, and the INT pin
cannot be deasserted, until the FIFO is cleared of all events.
KEYPAD MODE
KEC
REG. 0x1D
THROUGH REG. 0x1F
REG. 0x03
READ KE(s) TO CLEAR
INT DRIVE
KE_INT
REG. 0x02
WRITE 1 TO CLEAR
KE_IEN
REG. 0x01
AND
08612-
007
Figure 11. Key Event Interrupt Generation
START
MASK TIMER = 0
KEY PRESS
DETECTED
NO
YES
NO
YES
NO
YES
NO
YES
NO
YES
NO
GENERATE
KE INTERRUPT
START MASK TIMER
MASK TIMER
EXPIRES
MASK TIMER
EXPIRES
GENERATE
KEYLOCK INTERRUPT
FIRST UNLOCK
KEY DETECTED
SECOND UNLOCK
KEY DETECTED
START UNLOCK1 TO UNLOCK2
UNLOCK1 TO
UNLOCK2
TIMER EXPIRES
KEY PRESS
DETECTED
START UNLOCK1 TO UNLOCK2
FIRST UNLOCK
KEY DETECTED
GENERATE
KEYLOCK INTERRUPT
SECOND UNLOCK
KEY DETECTED
UNLOCK1 TO
UNLOCK2
TIMER EXPIRES
NO
08612-
008
Figure 12. Keypad Lock Interrupt Mask Timer Flowchart