~ruther/qmk_firmware

84a3d4d2a1fbcc3cabdd8c20805845833601c47b — tmk 12 years ago 4ec8fd2
Edit README of PC98
1 files changed, 44 insertions(+), 58 deletions(-)

M converter/pc98_usb/README
M converter/pc98_usb/README => converter/pc98_usb/README +44 -58
@@ 1,79 1,65 @@
Sun to USB keyboard protocol converter
======================================
PC98 to USB keyboard protocol converter
=======================================
Target MCU is ATMega32u4 but other USB capable AVR will also work.
Supported keyboards: Sun Type 5 Keyboard, CTCSP SHORT TYPE KEYBOARD(CKUB)

CTCSP SHORT TYPE KEYBOARD: http://imgur.com/a/QIv6p

Connector
---------

    8Pin mini DIN
       ___ ___
      /  |_|  \
     / 8  7  6 \
    | 5    4  3 |
     \_ 2   1 _/
       \_____/  
     (receptacle)


Connector
---------
  8Pin mini DIN
     ___ ___
    /  |_|  \
   / 8  7  6 \
  | 5    4  3 |
   \_ 2   1 _/
     \_____/  
   (receptacle)

    Wiring:
Wiring: You can change this with ediging config.h.

    Pin mini DIN        MCU
    ----------------------------------
    1   GND             GND
    1  ~RST             PD1
    2   GND             GND
    3   5V
    4   RX/TX(Mouse)
    5   RX              PD3
    6   TX              PD2
    7   GND             GND
    3  ~RDY             PD4
    4   RXD             PD2
    5  ~RTY             PD5
    6   NC                 
    7   NC                 
    8   5V              VCC




Protocol
--------
Singnal: Asynchronous, Negative logic, 1200baud, No Flow control
Frame format: 1-Start bit, 8-Data bits, No-Parity, 1-Stop bit

    AVR USART engine expects positive logic while Sun keyboard signal is negative.
    To use AVR UART engine you need exteral inverter in front of RX and TX pin.
    Otherwise you can software serial routine to communicate the keyboard.

This converter uses software method, you doesn't need any inverter part.


Commands From System To Keyboard
    0x01 Reset
            Keyboard responds with following byte sequence:
            Success: 0xFF 0x04 0x7F
            Fail:    0x7E 0x01 0x7F
    0x02 Bell On
    0x03 Bell Off
    0x0A Click On
    0x0B Click Off
    0x0E LED
            followed by LED status byte:
            bit: 3       2       1       0
            LED: CapsLk  ScrLk   Compose NumLk
    0x0F Layout
            Keyboard responds with 'Layout Response' 0xFE 0xXX

Commands From Keyboard To System
    0x7F Idle
            means no keys pressed.
    0xFE Layout Response
    0xFF Reset Response(followed by 0x04)
     
Reference
    http://kentie.net/article/sunkbd/page2.htm
    http://kentie.net/article/sunkbd/KBD.pdf
Singnal: Asynchronous, Positive logic, 19200baud, Least bit first
Frame format: 1-Start bit(Lo), 8-Data bits, Odd-Parity, 1-Stop bit

This converter uses software method for testing purpose. AVR UART engine will work better.




Build Firmware
--------------
Just use 'make'
    $ cd sun_usb

    $ cd pc98_usb
    $ make

Then, load the binary to MCU with your favorite programmer.



Other PC98 converter projects and resource
------------------------------------------
PC98 to USB
http://davy.nyacom.net/kbd98usb/

PC98 to PS/2
http://www.tsp.ne.jp/~sawada/mago/c_gka98at.htm

PC98 keyboard commands
http://www.webtech.co.jp/company/doc/undocumented_mem/io_kb.txt