- •Preface
- •About this document
- •Intended audience
- •Organization
- •Typographical conventions
- •Timing diagram conventions
- •Further reading
- •ARM publications
- •Other publications
- •Feedback
- •Feedback on this document
- •Feedback on the ARM PrimeCell PS2 Keyboard/Mouse Interface (PL050)
- •1 Introduction
- •1.1 About the ARM PrimeCell PS2 Keyboard/Mouse Interface (PL050)
- •1.1.1 Features of the PrimeCell KMI
- •1.2 AMBA compatibility
- •2 Functional Overview
- •2.1 ARM PrimeCell PS2 Keyboard/Mouse Interface (PL050) overview
- •2.2 PrimeCell KMI functional description
- •2.2.1 AMBA APB interface and register block
- •2.2.2 Transmit block
- •2.2.3 Receive block
- •2.2.4 Controller block
- •2.2.5 Timer/clock divider blocks
- •2.2.6 Synchronization logic
- •2.2.7 Test registers and logic
- •2.3 PrimeCell KMI operation
- •2.3.1 Interface reset
- •2.3.2 Clock signals
- •2.3.3 Keyboard clock and data signals
- •2.3.4 Keyboard/mouse data output
- •2.3.5 Keyboard data input
- •2.3.6 Timing requirements
- •3 Programmer’s Model
- •3.1 About the programmer’s model
- •3.2 Summary of PrimeCell KMI registers
- •3.3 Register descriptions
- •3.3.1 KMICR: [6] (+ 0x00)
- •3.3.3 KMIDATA: [8] (+ 0x08)
- •3.3.4 KMICLKDIV: [4] (+ 0x0C)
- •3.3.5 KMIIR: [2] (+ 0x10)
- •3.4 Interrupts
- •3.4.1 Interrupt generation logic
- •4 Programmer’s Model for Test
- •4.1 PrimeCell KMI test harness overview
- •4.2 Scan testing
- •4.3 Test registers
- •4.3.2 KMITCR [5] (+0x80)
- •4.3.3 KMITMR [4] (+0x84)
- •4.3.4 KMITISR [2] (+0x88)
- •4.3.5 KMITOCR [3] (+0x8c)
- •4.3.6 KMISTG1 [6] (+0x90)
- •4.3.7 KMISTG2 [5] (+0x94)
- •4.3.8 KMISTG3 [8] (+0x98)
- •4.3.9 KMISTATE [4] (+0x9c)
- •A.1 AMBA APB signals
- •A.2 On-chip signals
- •A.3 Signals to pads
Programmer’s Model for Test
4.3Test registers
The PrimeCell KMI test registers are memory-mapped as shown in Table 4-1:
Table 4-1 Test registers memory map
Address |
Type |
Width |
Reset value |
Name |
Description |
|
|
|
|
|
|
KMI Base + 0x40–0x7c |
Read/ |
0 |
- |
KMITCER |
Test clock enable register. |
|
write |
|
|
|
|
|
|
|
|
|
|
KMI Base + 0x80 |
Read/ |
5 |
0x00 |
KMITCR |
Test control register. |
|
write |
|
|
|
|
|
|
|
|
|
|
KMI Base + 0x84 |
Read/ |
4 |
0x00 |
KMITMR |
Test mode register. |
|
write |
|
|
|
|
|
|
|
|
|
|
KMI Base + 0x88 |
Read/ |
2 |
0x00 |
KMITISR |
Test input stimulus register. |
|
write |
|
|
|
|
|
|
|
|
|
|
KMI Base + 0x8c |
Read |
3 |
0x03 |
KMITOCR |
Test output capture register. |
|
|
|
|
|
|
KMI Base + 0x90 |
Read |
6 |
0x00 |
KMISTG1 |
Stage 1 timer register. |
|
|
|
|
|
|
KMI Base + 0x94 |
Read |
5 |
0x00 |
KMISTG2 |
Stage 2 timer register. |
|
|
|
|
|
|
KMI Base + 0x98 |
Read |
8 |
0x00 |
KMISTG3 |
Stage 3 timer register. |
|
|
|
|
|
|
KMI Base + 0x9c |
Read |
4 |
0x06 |
KMISTATE |
State register. |
|
|
|
|
|
|
Each register shown in Table 4-1 is described below.
4.3.1KMITCER [0] (+0x40–0x7c)
KMITCER is the PrimeCell KMI test clock enable register which is a 0-bit register.
Table 4-2 shows the bit assignments for the KMITCER.
|
|
Table 4-2 KMITCER register |
|
|
|
Bit |
Name |
Description |
|
|
|
7:0 |
- |
When in registered clock mode (refer to KMITCR [5] |
|
|
(+0x80) on page 4-6), a test clock enable is produced only |
|
|
when this register is accessed (read or write). |
|
|
|
KMITCER has a multiple word space in the register address map to allow for the generation of multiple test clock enable pulses.
DDI 0143C |
© Copyright ARM Limited 1999. All rights reserved. |
4-5 |
Programmer’s Model for Test
4.3.2KMITCR [5] (+0x80)
KMITCR is the PrimeCell KMI test control register. It is a general test register that controls operation of the PrimeCell KMI under test conditions. Table 4-3 shows the bit assignments for the KMITCR.
|
|
Table 4-3 KMITCR register |
|
|
|
Bit |
Name |
Description |
|
|
|
7:5 |
- |
Reserved, read unpredictable, should be written as 0. |
|
|
|
4 |
Test Input Select |
By default, this bit is cleared to 0 for normal operation. |
|
(TESTINPSEL) |
This bit selects the source for the internal input signal for |
|
|
external non-AMBA inputs. |
|
|
When this bit is cleared to 0, the primary inputs are taken |
|
|
from the external pads (normal operation). |
|
|
When this bit is set to 1, the values programmed in |
|
|
KMITISR are used to drive the internal line. |
|
|
|
3 |
Test Reset |
By default, this bit is cleared to 0 for normal operation |
|
(TESTRST) |
when reset by BnRES. |
|
|
When this bit is set to 1, a reset is asserted throughout the |
|
|
module, EXCEPT for the test registers (this simulates reset |
|
|
by BnRES being asserted to 0). |
|
|
|
2 |
Registered Clock Mode |
This bit selects the internal test clock mode: |
|
(REGCLK) |
0 = Strobe clock mode is selected, which generates a test |
|
|
clock enable on every APB access (read or write) to the |
block. Use of strobe clock mode allows testing with less test vectors when testing functions such as counters. The Test Clock Enable is generated from PENABLE ANDed with PSEL.
1 = Registered clock mode is selected, which only generates a test clock enable on an APB access to the KMITCER (KMI test clock enable register) location.
This bit has no effect unless bit 0 and bit 1 are both set to 1. This bit is cleared to 0 by default on reset by BnRES.
4-6 |
© Copyright ARM Limited 1999. All rights reserved. |
DDI 0143C |
|
|
|
Programmer’s Model for Test |
|
|
|
Table 4-3 KMITCR register (continued) |
|
|
|
|
Bit |
Name |
Description |
|
|
|
|
|
1 |
Test Clock Enable |
This bit selects the source of the test clock: |
|
|
(TESTCLKEN) |
0 |
= The internal clock enable is continuously HIGH. |
|
|
1 |
= The internal test clock enable is selected, so that the |
|
|
test clocks are enabled for only one period of the input |
|
|
|
clock per APB access. The internal clock enable mode |
|
|
|
depends on the setting of bit 2. |
|
|
|
This bit has no effect unless bit 0 is set to 1. |
|
|
|
This bit is cleared to 0 by default on reset by BnRES. |
|
|
|
|
|
0 |
Test Mode Enable |
0 |
= Normal operating mode is selected. |
|
(TESTEN) |
1 |
= Test mode is selected. |
|
|
Bits 1 and 2 have no effect unless bit 0 is set to 1. |
|
|
|
This bit is cleared to 0 by default on reset by BnRES. |
|
|
|
|
|
4.3.3KMITMR [4] (+0x84)
KMITMR is the PrimeCell KMI test mode register which controls the specific test modes for the PrimeCell KMI.
If the S1NIB and S3NIB bits are 1, the first and third stage counters of the internal 17-bit timer that generates the 64μs and 16ms pulse are put in nibble mode. The counters count up as 00–11–22–33–44–55–66–77–88–99–AA–BB–CC–DD–EE–FF. If the
STG1BYPASS and STG2BYPASS bits are 1, the enable for the second and third stage counters are bypassed and driven by the Pulse8MHz signal. These two features reduce the number of test vectors that are required to test the timer. Table 4-4 shows the bit assignments for the KMITMR.
|
|
|
Table 4-4 KMITMR register |
|
|
|
|
Bit |
Name |
Description |
|
|
|
|
|
7:4 |
- |
Reserved, read unpredictable, should be written as 0. |
|
|
|
|
|
3 |
S3NIB |
0 |
= Normal operating mode is selected. |
|
|
1 |
= Enable nibble mode for stage 3 of the timer. |
|
|
|
|
2 |
S1NIB |
0 |
= Normal operating mode is selected. |
|
|
1 |
= Enable nibble mode for stage 1 of the timer. |
|
|
|
|
DDI 0143C |
© Copyright ARM Limited 1999. All rights reserved. |
4-7 |
Programmer’s Model for Test
|
|
|
Table 4-4 KMITMR register (continued) |
|
|
|
|
Bit |
Name |
Description |
|
|
|
|
|
1 |
STG2BYPASS |
0 |
= Normal operating mode is selected. |
|
|
1 |
= Allows the third stage of the timer to be clocked directly |
|
|
|
by the Pulse8MHz input. |
|
|
|
|
0 |
STG1BYPASS |
0 |
= Normal operating mode is selected. |
|
|
1 |
= Allows the second stage of the timer to be clocked |
|
|
|
directly by the Pulse8MHz input. |
|
|
|
|
4.3.4KMITISR [2] (+0x88)
KMITISR is the PrimeCell KMI test input stimulus register. It provides test mode stimulus for the KMIDATAIN and the KMICLKIN inputs to the KMI. When the TESTINPSEL bit in the KMITCR register is 1, the values on the KMIDATAIN and the KMICLKIN bits in the KMITISR register are routed to the internal KMIDATAIN and KMICLKIN lines. Table 4-5 shows the bit assignments for the KMITISR.
|
|
Table 4-5 KMITISR register |
|
|
|
Bit |
Name |
Description |
|
|
|
7:2 |
- |
Reserved, read unpredictable, should be written as 0. |
|
|
|
1 |
KMIDATAIN |
Test data input for the KMIDATAIN pin. |
|
|
|
0 |
KMICLKIN |
Test data input for the KMICLKIN pin. |
|
|
|
4.3.5KMITOCR [3] (+0x8c)
KMITOCR is the PrimeCell KMI test output capture register. It is a read-only register that provides observability for the primary outputs of the PrimeCell KMI. The KMIINTR interrupt is an OR of the two individual KMITXINTR and KMIRXINTR interrupts. The nKMIDATAEN and the nKMICLKEN bits provide visibility of the pad control signals. Table 4-6 shows the bit assignments for the KMITOCR.
Table 4-6 KMITOCR register
Bit |
Name |
Description |
|
|
|
7:3 |
- |
Reserved, read unpredictable. |
|
|
|
4-8 |
© Copyright ARM Limited 1999. All rights reserved. |
DDI 0143C |