Keyboard Scanning Sequence; Mpuio Keyboard Interface - Texas Instruments OMAP5910 Technical Reference Manual

Dual-core
Hide thumbs Also See for OMAP5910:
Table of Contents

Advertisement

7.3.3

MPUIO Keyboard Interface

Table 7-11. Keyboard Scanning Sequence
Idle
KB.C[0]
0
KB.C[2]
0
KB.C[3]
0
KB.C[4]
0
KB.C[5]
0
KB.C[6]
0
KB.C[7]
0
KB.C[1]
0
To allow button press detection:
-
All the row lines (KB.R) must have an external pullup.
-
All the column lines (KB.C) drive a low level (idle state of Table 7-11).
The output drivers of the KBC output pins act as open-drain outputs in that
they only drive low or are 3-state. So external pullup resistors are required
to achieve a high state when these outputs are 3-stated.
The keyboard interrupt (keyboard_int) to the MPU is an AND of the eight row
lines filtering during one 32-kHz clock period (CLK_32KHZ).
As soon as any key of the keyboard matrix is pressed, the corresponding row
and column lines are shorted together and a low level is driven on the
corresponding row line, generating a keyboard interrupt (see Figure 7-11).
Once the keyboard interrupt is received, the MPU scans the column lines in
the sequence described in the Table 7-11 in order to detect the key that has
been pressed.
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
For each step of the sequence, the MPU:
-
Writes the specific value (with a low level on one column line) in the
KBC_REG register
-
Reads the value of the KBR_LATCH register and thus detects if one key
of the concerned column line (this one which drives a low level) is pressed
At the end of the scanning sequence, the MPU is able to establish which keys
have been pressed.
Keyboard Scanning
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
MPU Public Peripherals
MPU I/O
Idle
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
7-19

Advertisement

Table of Contents
loading

Table of Contents