Skip to main content

PS2 keyboard

State of the part

This part is fully built and tested. We are currently working on integration testing.
Participators: Ferdinand, Johannes K., Julian D., Mona

Protocol

PS2 protocol

Schematics

PS2 board schematic

Layout

PS2 board layout

Flash Program:

Main Pinout

INTA0A1A2A3D0 (clk enable)D1 (PS2_clk pull)D2 (latch shift)D3 (interrupt)INT
0000000000
1100010001
2010010001
3110010001
4001010001
5101010001
6011010001
7111010001
8000110001
9100100000
10010101106
11 (end of protocol)1101010110
12001100000
13101100000
14011100000
15111100000

Addressing

0x0008-0x000f on address bus
Equivalent to A4=1, A5-A16=0
So at address 16-31 D4 is high

Testing

We used an Arduino Mega in order to simulate address and data bus and resolve the received keycodes to chars.
The code can be found here.

Limitations

As of now, our design is not able to handle print screen, pause, arrows and other multicode keys.

Findings

  • First proof of concept of our hardware interrupt setup successful
  • Keyboard buffers data until our hardware is ready to receive
  • Scan codes are very different for each standardized keyboard layout