diff options
Diffstat (limited to 'converter/ps2_usb/README.md')
-rw-r--r-- | converter/ps2_usb/README.md | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/converter/ps2_usb/README.md b/converter/ps2_usb/README.md new file mode 100644 index 000000000..8a535949d --- /dev/null +++ b/converter/ps2_usb/README.md @@ -0,0 +1,84 @@ +PS/2 to USB keyboard converter +============================== +This firmware converts PS/2 keyboard protocol to USB.(It supports Scan Code Set 2.) + + +Connect Wires +------------- +In case of Teensy2.0(ATMega32U4): + +1. Connect **Vcc** and **GND**. +2. Connect **Clock** and **Data** line. + - **Interrupt**: **Clock** is on `PD1` and **Data** on `PD0`.(Recommended. Soarer's converter compatible) + - **Busywait**: **Clock** is on `PD1` and **Data** on `PD0`. + - **USART**: **Clock** is on `PD5` and **Data** on `PD2`. +3. Optionally you need pull-up resistor. 1K-10K Ohm is OK. + +To change pin configuration edit config.h. + + +Build Firmware +-------------- +For **PJRC Teensy** just run `make`: + + $ make clean + $ make + +To select keymap: + + $ make clean + $ make KEYMAP=[plain|jis|spacefn|...] + +After that you will find HEX file `ps2_usb_lufa.hex` in current directory. + + +- For **TMK converter Rev.1** use `make -f Makefile.tmk_rev1` instead of `make` and HEX file is `ps2_usb_tmk_rev1.hex`. + +- For **TMK converter Rev.2** use `make -f Makefile.tmk_rev2` instead of `make` and HEX file is `ps2_usb_tmk_rev2.hex`. + + +Keymap +------ +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 README.md of top directory) and existent keymap files. + + +PS/2 signal handling implementations +------------------------------------ +Following three methods can be used to implement PS/2 signal handling. + +### Simple and stupid busy-wait(ps2_busywait.c) + This is expected to implemented with portable C code for reference. +### Interrupt driven(ps2_interrupt.c) + Uses pin interrupt to detect falling edge of clock line. +### USART hardware module(ps2_usart.c) + Uses AVR USART engine to receive PS/2 signal. + +To select method edit Makefile. + + +V-USB Support +------------- +With V-USB you can use this converter on ATmega(168/328) but it doesn't support NKRO at this time. + +Circuit: + + +---+ +---------------+ + USB GND | | ATmega168 | + === C3 | | + 5V <-------+--------+---|Vcc,AVCC | PS/2 + R1 | | ==== + D- <----+--+-----R2-----|INT1 RXD|------->DATA + D+ <----|---+----R3-----|INT0 XCK|------->CLOCK + Z1 Z2 | | ->5V + GND<----+---+--+--+-----|GND | ->GND + | | | | + | C2-+--|XTAL1 | + | X1 | | + +--C3-+--|XTAL2 | + +---------------+ + R1: 1.5K Ohm + R2,R3: 68 Ohm + Z1,Z2: Zenner 3.6V + C1,C2: 22pF + C3: 0.1uF + X1: Crystal 20MHz(16MHz/12MHz) |