X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=converter%2Fps2_usb%2FREADME.md;h=9b4585d360aa50a800db81427253a33b655e4ae7;hb=9f041460313bc16e3f8a9677faced4d38d343d9a;hp=74464e264045643ca1ec842091909f10c5578d79;hpb=524c7d133c57fd744906a0269189fe4bc979e894;p=max%2Ftmk_keyboard.git diff --git a/converter/ps2_usb/README.md b/converter/ps2_usb/README.md index 74464e26..9b4585d3 100644 --- a/converter/ps2_usb/README.md +++ b/converter/ps2_usb/README.md @@ -2,63 +2,69 @@ PS/2 to USB keyboard converter ============================== This firmware converts PS/2 keyboard protocol to USB.(It supports Scan Code Set 2.) +You can discuss about this converter here. + +https://geekhack.org/index.php?topic=14618.0 -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. +Preassembled TMK PS/2-USB converter is available here. -To change pin configuration edit **config.h** and **Makefile**. +https://geekhack.org/index.php?topic=72052.0 Build Firmware -------------- -For **PJRC Teensy** just run `make`: +For **TMK converter Rev.2**: + + $ make -f Makefile.rev2 clean + $ make -f Makefile.rev2 KEYMAP=plain + +To program firmware push the button on converter and run: - $ make clean - $ make + $ make -f Makefile.rev2 KEYMAP=plain dfu -To select keymap: - $ make clean - $ make KEYMAP=[plain|jis|spacefn|...] +For **TMK converter Rev.1** use `Makefile.rev1` instead. -After that you will find HEX file `ps2_usb_lufa.hex` in current directory. +If your use DIY converter with ATMega32u4 board you can use `Makefile.32u4`, but note that progarmming with 'dfu' may not work for your converter. -- For **TMK converter Rev.1** use `make -f Makefile.tmk_rev1` instead of `make` and HEX file is `ps2_usb_tmk_rev1.hex`. +Build your own converter +------------------------ +Use ATMega32u4 as controller and Makefile.32u4 to build firmware. -- For **TMK converter Rev.2** use `make -f Makefile.tmk_rev2` instead of `make` and HEX file is `ps2_usb_tmk_rev2.hex`. +1. Wire **Vcc** and **GND** properly. +2. Connect **Clock** to `PD1` and **Data** to `PD0` line. (Compatible to Soarer's converter pin configuration) +3. You need pull-up resistors on both signal lines. 1K-10K Ohm would be fine. + +You can configure controller and pin configurations in Makefile and config.h. 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_.c` and see keymap document(you can find in README.md of top directory) and existent keymap files. +To define your own keymap copy `unimap_plain.c` to `unimap_.c` and edit it. Or just edit `unimap_plain.c` directly. + +See wiki pages and documents. + +https://github.com/tmk/tmk_keyboard/wiki PS/2 signal handling implementations ------------------------------------ -Following three methods can be used to implement PS/2 signal handling. +Following three methods are available to implement PS/2 signal handling. + +- **Interrupt** Uses pin interrupt to detect falling edge of clock line. **Recommended.** (ps2_interrupt.c) +- **Busywait** Implementation with portable C code for reference. (ps2_busywait.c) +- **USART** Uses AVR USART hardware engine to receive PS/2 signal. You must use this fothis for V-USB. (ps2_usart.c) -### 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. +TMK converter rev1 uses **USART** and rev2 uses **Interrupt** for reference. -To select method edit Makefile. +You can change method by editing `Makefile` but not needed in most case. V-USB Support ------------- -With V-USB you can use this converter on ATmega(168/328) but it doesn't support NKRO at this time. +With V-USB you can use this converter on ATmega(168/328). Use Makefile.vusb to build firmeware. Not supported actively anymore. Circuit: