|
@ -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. |
|
|
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 |
|
|
Pin mini DIN MCU |
|
|
---------------------------------- |
|
|
---------------------------------- |
|
|
1 GND GND |
|
|
|
|
|
|
|
|
1 ~RST PD1 |
|
|
2 GND GND |
|
|
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 |
|
|
8 5V VCC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Protocol |
|
|
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 |
|
|
Build Firmware |
|
|
-------------- |
|
|
-------------- |
|
|
Just use 'make' |
|
|
Just use 'make' |
|
|
$ cd sun_usb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ cd pc98_usb |
|
|
$ make |
|
|
$ make |
|
|
|
|
|
|
|
|
Then, load the binary to MCU with your favorite programmer. |
|
|
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 |