]>
Commit | Line | Data |
---|---|---|
1 | X68000 to USB keyboard protocol converter | |
2 | ========================================= | |
3 | SHARP X68000 is a hobby computer released in Japan.(1987-93) | |
4 | http://en.wikipedia.org/wiki/Sharp_X68000 | |
5 | ||
6 | X68000 keyboard has ALPS linear switches. | |
7 | - DSETK0016CE01 green linear | |
8 | - DSETK0022CE02 yellow linear | |
9 | - DSETK0023CE03 yellow linear | |
10 | ||
11 | ||
12 | Hardware | |
13 | -------- | |
14 | Target MCU is ATMega32u4 but other USB capable AVR will also work. | |
15 | You can use PJRC Teensy as development board. | |
16 | http://www.pjrc.com/teensy/ | |
17 | ||
18 | Wiring: | |
19 | Mini-DIN Teensy | |
20 | ----------------------------------------------------- | |
21 | pin1 +5V VCC | |
22 | pin2 MOUSE - | |
23 | pin3 RXD PD2(RXD) | |
24 | pin4 TXD PD3(TXD) NOTE: Not supported yet. | |
25 | pin5 READY - | |
26 | pin6 REMOTE - | |
27 | pin7 GND GND | |
28 | ||
29 | ||
30 | Firmware | |
31 | -------- | |
32 | Build: | |
33 | $ cd x68k_usb | |
34 | $ make | |
35 | ||
36 | And load the binary to MCU with your favorite programmer. | |
37 | If you use Teensy you can load with PJRC Teensy Loader tool. | |
38 | http://www.pjrc.com/teensy/loader.html | |
39 | ||
40 | ||
41 | * * * * * * * * * * * * * * * * * * | |
42 | ||
43 | ||
44 | X68000 Keyboard Protocol | |
45 | ======================== | |
46 | http://kyoutan.jpn.org/uts/pc/pic/x68key/ | |
47 | ||
48 | ||
49 | Connector | |
50 | --------- | |
51 | Mini DIN 7pin(female connector on computer side) | |
52 | 7 6 5 | |
53 | o o o | |
54 | 4 o = o 3 | |
55 | o o | |
56 | 2 1 | |
57 | ||
58 | Mini-DIN | |
59 | ------------- | |
60 | pin1 +5V | |
61 | pin2 MOUSE | |
62 | pin3 RXD | |
63 | pin4 TXD | |
64 | pin5 READY | |
65 | pin6 REMOTE | |
66 | pin7 GND | |
67 | ||
68 | ||
69 | Signaling | |
70 | --------- | |
71 | - TXD,RXD | |
72 | Asynchronous, 2400baud, 1-startbit(L), 8-databit, 1-stopbit(H) | |
73 | ||
74 | - READY | |
75 | ready/not ready(1/0) | |
76 | ||
77 | ||
78 | Data from keyboard | |
79 | ------------------ | |
80 | bit 7 make/break flag(0/1) | |
81 | bit 6-0 following scan code | |
82 | ||
83 | ||
84 | Data from computer | |
85 | ------------------ | |
86 | - LED control ON/OFF(0/1) | |
87 | bit 7 1(fixed) | |
88 | bit 6 全角 | |
89 | bit 5 ひらがな | |
90 | bit 4 INS | |
91 | bit 3 CAPS | |
92 | bit 2 コード入力 | |
93 | bit 1 ローマ字 | |
94 | bit 0 かな | |
95 | ||
96 | - Repeat delay | |
97 | bit 7 0(fixed) | |
98 | bit 6 1(fixed) | |
99 | bit 5 1(fixed) | |
100 | bit 4 0(fixed) | |
101 | bit 3-0 delay | |
102 | REPEAT_DELAY = 200+delay*100 ms | |
103 | default: 500ms | |
104 | ||
105 | - Repeat time | |
106 | bit 7 0(fixed) | |
107 | bit 6 1(fixed) | |
108 | bit 5 1(fixed) | |
109 | bit 4 1(fixed) | |
110 | bit 3-0 time | |
111 | REPEAT_TIME = 30+time^2*5 ms | |
112 | default: 110ms | |
113 | ||
114 | ||
115 | Scan Codes | |
116 | ---------- | |
117 | ,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------. | |
118 | | 61| | 62| | 63| 64| 65| 66| 67| | 68| 69| 6A| 6B| 6C| | 5A| 5B| 5C| | 5D| 52| 53| 54| | |
119 | `---' `---' `-------------------' `-------------------' `-----------' `---------------' | |
120 | ,-----------------------------------------------------------. ,-----------. ,---------------. | |
121 | | 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| 0F| | 36| 5E| 37| | 3F| 40| 41| 42| | |
122 | |-----------------------------------------------------------| |------------ |---------------| | |
123 | | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| | | 38| 39| 3A| | 43| 44| 45| 46| | |
124 | |------------------------------------------------------. 1D | `---=====---' |---------------| | |
125 | | 71 | 1E| 1F| 20| 21| 2l| 23| 24| 25| 26| 27| 28| 29| | ___| 3C|___ | 47| 48| 49| 4A| | |
126 | |-----------------------------------------------------------| | 3B|---| 3D| |-----------|---| | |
127 | | 70 | 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34| 70 | `---| 3E|---' | 4B| 4C| 4D| | | |
128 | `-----------------------------------------------------------| .---=====---. |-----------| 4E| | |
129 | | 5F| 55 | 56 | 35 | 57 | 58 | 59 | 60| | 72 | 73 | | 4F| 50| 51| | | |
130 | `---------------------------------------------' `-----------' `---------------' | |
131 | ||
132 | ||
133 | ||
134 | LED Special Functions | |
135 | --------------------- | |
136 | http://homepage2.nifty.com/m_kamada/docs/unlistedx68k.htm#keyboard | |
137 | ||
138 | 1. Random Illumination | |
139 | Plug in with pressing F1, F2 and F3. | |
140 | ||
141 | 2. Sequential Illumination | |
142 | Plug in with pressing 記号入力(52), 登録(53) and HELP. | |
143 | ||
144 | 3. Scan code Display | |
145 | Plug in with pressing かな(5A), ローマ字(5B) and コード入力(5C). | |
146 | You can see its scan code on LEDs by pressing a key. | |
147 | +---------------------------------------------------+ | |
148 | |bit|6 |5 |4 |3 |2 |1 |0 | | |
149 | |---+----+--------+---+----+----------+--------+----| | |
150 | |LED|全角|ひらがな|INS|CAPS|コード入力|ローマ字|かな| | |
151 | +---------------------------------------------------+ |