1 PS/2 to USB keyboard converter
2 ==============================
3 This firmware converts PS/2 keyboard protocol to USB and supports only Scan Code Set 2.
6 PS/2 signal handling implementations
7 ------------------------------------
8 Following three methods are used to implement PS/2 signal handling.
10 ### Simple and stupid busy-wait(ps2_busywait.c)
11 This is expected to implemented with portable C code for reference.
12 ### Interrupt driven(ps2_interrupt.c)
13 Uses pin interrupt to detect falling edge of clock line.
14 ### USART hardware module(ps2_usart.c)
15 Uses AVR USART engine to recevie PS/2 signal.
17 To select method edit Makefile.
22 In case of Teensy2.0(ATMega32U4):
24 1. Connect Vcc and GND.
25 2. Connect Clock and Data line.
26 - Busywait: Clock is on PD5 and Data on PD2.
27 - Interrupt: Clock is on PD1 and Data on PD2.
28 - USART: Clock is on PD5 and Data on PD2.
29 3. Optionally you need pull-up register. 1K-10K Ohm is OK.
31 To change pin configuration edit config.h.
42 $ make KEYMAP=[plain|jis|spacefn|...]
47 Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_<name>.c` and see keymap document(you can find in top README.md) and existent keymap files.
52 You can also use this converter on ATmega(168/328) with V-USB instead of Teensy.
53 The converter on V-USB lacks some features for now: USB NKRO and System/Media control.
57 +---+ +---------------+
58 USB GND | | ATmega168 |
60 5V <-------+--------+---|Vcc,AVCC | PS/2
62 D- <----+--+-----R2-----|INT1 RXD|------->DATA
63 D+ <----|---+----R3-----|INT0 XCK|------->CLOCK
65 GND<----+---+--+--+-----|GND | ->GND
76 X1: Crystal 20MHz(16MHz/12MHz)