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