beautypg.com

Cirrus Logic EP93xx User Manual

Page 770

background image

26-8

DS785UM1

Copyright 2007 Cirrus Logic

Keypad Interface
EP93xx User’s Guide

2

6

2

6

26

PRSCL:

Row/Column counter pre-scaler load value. This value is
used to pre-load the RC pre-scale counter. The pre-scale
down counter counts the number of 1 MHz clocks for
every step of the RC counter. When the pre-scale counter
reaches 0, the RC counter steps. A pre-load value of
0x002 will cause the RC counter to step every three
clocks. The PRSCL value should never be set to 0x000 or
0x001, except for high speed counter tests, as the key
state machine will not resolve keys properly for these
values.

Key array scan time = clock period * (PRSCL+1)[64keys]
Example scan time for PRSCL[9:0] = 0x0FA
Scan time = 1

μ

s * (249 +1) = 16 ms

if de-bounce = 0xFC, key detection interrupt is fired in
approximately 48 ms.
Array scan time can range from 64

μ

sec. to 65.536 ms.

KeyDiagnostic

Address:

0x808F_0004

Default:

0x0000_0000

Definition:

Diagnostic key value register.

Bit Descriptions:

RSVD:

Reserved. Unknown during read.

DIAG:

Diagnostic key value. When diagnostic mode is enabled
(KeyScanInit.DIAG high) and this register is written, the
Row Column scan value is used to directly control the chip
key matrix scan drivers and receivers. Results are read
back via the KeyRegister.K bit.

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

RSVD

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

RSVD

DIAG