ちょっと Tea Time!? USB->PS/2変換コネクタの憂鬱(キーボード編) 2025.9.4
ことはじめ
すこし前に作成したCPM80,CPM68KはPCをターミナル(TeraTerm)として動かしていますが、
モニタ―とキーボードも専用のものを作ろうと考えています。いわゆるオールインのMZ80化です(古いなあ〜。
モニターは800x480ドットの7インチWVGAをつかって80x24のキャラクタ表示をさせます。
キーボードは小型のPS/2出力のものをつかって、RS232信号に変換させる予定です。
モニターについては、すでに部品の調達も終わっているので、次はキーボードです。
PS/2出力の小型のキーボードがみつからなかったので、小型のメカニカルキーの
USBキーボードを購入です。
メカニカルタイプのUSB-Cのキーボードを購入です。61キーで日本語キーボードと少し配列が異なります。
ついでに、USB->PS/2変換コネクタも購入です。この変換コネクタですが、AMAZONで
購入です。この手の変換コネクタの評価をみていると、動かないレビューが沢山あるので、
少々高いですが、1個500円のものを購入です。
USB->PS/2のコネクタも購入です。意外と高かった!
実はこのコネクタには、間違った思い込みがあることがわかりました。
コネクタの内部にはUSBの信号をPS/2の信号に変換するICがはいっているはず
という思い込みです。
どんなICが入っているのか興味があったのですが、恐らくバラした人がいるに違いないと
ネットを検索したらでてきました。その結果は、唖然です。
この手のコネクタは、単純な物理変換コネクタというだけです。
すなわちICなんか入ってなくて、単にUSBとPS/2コネクタを結線しているだけです。
引用:ABCDEFG・大人の分解遊戯・USB-PS/2変換コネクタの分解
USBとPS/2では通信プロトコルがまったく違いますが、どうやら信号線がUSBなのか
PS/2なのかをマウスあるいはキーボード側で識別して、送受信で通信プロトコルを
切り替えるようです。
であれば、変換コネクタで動くものがあったり、動かないものがあったりというのも
納得です。すなわちUSBとPS/2の両方の通信プロトコルにマウスやキーボードなどが
対応していなかったというだけのことです。それを変換コネクタの不具合と思い込んでしまって
評価(レビュー)がなされていたのでしょう。
もっとも、物理結線が不十分な粗悪品をつかまされた人もいるでしょうが。
ちなみに、USBとPS/2との結線の違いは、USBがD+、D-信号線はプルダウンされているのに対して
PS/2はオープンコレクタ出力でプルアップがされているので、初期の信号線の信号レベルをみれば
容易に判別できるでしょう。
ということは、変換コネクタを買ってからわかりました。
やはり物理変換コネクタでした
500円もの大枚をはたいて購入した変換コネクタでしたが、入出力のピンの導通を測定してみたら、
見事にテスターから「ピー」という音がします。やはり、購入したものは単なる物理変換コネクタでした。
キーボードはPS/2に対応していない
変換コネクタについては物理変換コネクタであることがわかりましたが、次の期待はキーボードが
PS/2に対応しているかどうかです。そこで、PS./2入力可能なマイコンとして、久しぶりにIchigoJamに接続です。
モニターを接続するのは面倒だったので、キーボードの信号がでているかどうかでチェックです。
まずは、PS/2出力のキーボードを接続して、信号が送られてくることを確認です。
次に、今回購入したUSBキーボードに変換コネクタを接続してIchigoJamに接続です。
IchigoJamに接続して、キーボードから信号がくるかどうかを調べましたが、無反応でした。
キーボードがPS/2に未対応のようです。
無反応!!!!
動かないようです。どうやら、このキーボードはPS/2には対応していないようです。
こうなったら直接配線だあ〜!
実は、こういったことも想定してメカニカルキーボードを選択していました。
最悪の場合はキー接点から直接配線して、PICかなにかでRS232信号に変換です。
ということでキーボードを分解して、中身をみてみましょう!
どこから開ければいいのかな?
まずは固定ネジの場所を探します。
どうやら、ネジはキートップに隠れているようでした。
ゴム足を取ってみましたが、ネジが見えません。
キートップをはずすと固定のネジがありました。
都合6箇所のネジで固定されていました。その部分のキートップを外します。
結構部品がいっぱい!
キーボードの裏側をみてみると、部品が結構沢山ついています。
というのも、このキーボードはイルミネーション機能もあって、LEDが各キー毎に配置されていて、
それらが妖艶に光ます。そんな機能は、いらないのだけどなあ〜。
結構部品がいっぱいついています。
基板をみていて面白いのは、ゼロΩのジャンパー抵抗が多数使われています。
両面基板をつかったほうが、コスト的には有利なんじゃ?と思ったりしましたが、
抵抗を実装してでも、片面基板をつかったほうが安いということなのかなあ〜?。
あと、部品点数を減らすためにDUAL DIODEが使われているようです。
これはキーのセンシングのときに必要です。
部品の配置例です。ゼロΩの表面実装抵抗がジャンパー代わりに使われています。
配線はややこしそうだけど、意外と単純だった
最初に基板をみたときに、複雑だなあ〜とおもいました。
もう、全部の部品を外して一から配線してやろうか!
とも思いましたが、そこは一旦落ち着いて基板をよく眺めることに。
すると、下記のような構成になっていることがわかりました。
配線の概略です。実際はもっと多くの配線があります。
押されたキーのセンシングは、COMMON DRIVEを1つづつLOWレベルにして、KEY SENSINGをチェック。
LEDの点灯は、COMMON DRIVEをHIGHにして、LED CONTROLをLOWレベルにします。
このようにすれば、クロス部分のスイッチあるいはLEDのチェックと点灯がそれぞれできます。
コモンドライブが全部で14本、キーセンスが5本、LED制御が5本なので、キーボードとの配線は全部で24本となります。
そのため出力線などを含めると40PinのPICが必要になりそうです。
マトリックス状況を確認
キーセンスとLED制御の行については、キーボードの行に対応しています。
問題は列の構成がどうなっているかなので、調べてみました。
配線を追いかけるのではなく、テスターの導通チェックで調べると簡単でした。
全体のキーの配置です。61キーで日本語キーボードとは、配置もすこし異なります。
マトリックスの列の部分はこんな感じになっていました。裏面側で調べて、反転させて表示させました。
こちらは、裏面側で調べた結果です。
各種情報もわかったことなので、改造にかかりましょう!
PICを取りつけよう!
新しい制御マイコンとしてPICを取りつけます。その前に、不要な部品をとりはずしです。
USBコネクタや既存のICは不要なので取り外してしまいます。
USBコネクタは外部への信号への取り出しに使おうかと思いましたが、細かい作業になるかもしれないので、
思い切って取り外しました。それと、コネクタって意外と長いので邪魔になったりします。
コネクタとICをとりはずす準備です。半田が飛び散ってもよいように養生です。
USB-Cコネクタと制御ICの取り外しが完了しました。
PICはキーボード内に収納するため、そのためのスペースを確保です。
ケース内のプラスチックの一部を削除です。この場所にPICを収めます。
PICが入るスペースを確保です。
PICを両面テープで固定して、配線です。
PICのピン配置の備忘録です。
キーセンス | PIC-GPIO | コモンドライブ | PIC_GPIO | ||
A0(最上位行:数字など) | PIN_A0 | C0 最左列(ESC) | PIN_B5 | ||
A1 | PIN_A1 | C1 (1) | PIN_B4 | ||
A2 | PIN_A2 | C2 (2) | PIN_B3 | ||
A3 | PIN_A3 | C3 (3) | PIN_B2 | ||
A4(最下位行:スペースなど) | PIN_A4 | C4 (4) | PIN_B1 | ||
C5 (5) | PIN_B0 | ||||
LED制御(390Ω抵抗経由) | C6 (6) | PIN_D7 | |||
B0(最上位行:数字など) | PIN_D1 | C7 (7) | PIN_D6 | ||
B1 | PIN_D0 | C8 (8) | PIN_D5 | ||
B2 | PIN_C3 | C9 (9) | PIN_D4 | ||
B3 | PIN_C2 | C10 (0) | PIN_C5 | ||
B4(最下位行:スペースなど) | PIN_C1 | C11(-) | PIN_C4 | ||
C12(+) | PIN_D3 | ||||
UART-TX(YELLOW) | PIN_C6 | C13(BS) | PIN_D2 | ||
UART-RX(GREEN) | PIN_C7 |
ソフトを組みましょう! 2025.9.5
いまでこそWINやALTキーなどがあるけれど、CPM80の時代ではなかったはず。
これらのキーってどう活用したらいいのだろう?
とりあえずは、押されたキーに対応するコードを送出するようにするだけだけど、
内部制御につかうキータッチを整理です。
(1)SHIFT + CAPSLOCK
これは定番です。英文字の大文字、小文字の切替です。
CAPSLOCKがかかったときは、当該のLEDが点灯するようにしましょう。
CAPSLOCK時の点灯です。
(2)FNキー
右下にFNキーがありますが、これは矢印キーを有効にするトグルスイッチにしましょう。
WORDMASTERでつかうことを前提とすると
↑ : CTRL-E
→ : CTRL-D
↓ : CTRL-X
← : CTRL-S
というコードを送出します。
矢印キーも使えるようにしました。
とりあえず完成
ソフトはそれほどややこしくないのですが、それでも400行程度になりました。
プログラムソース(PIC18F47Q43 CCS-C)
動作テストのためにUSB-RS232変換アダプタを取り付けて
PCに文字を表示させます。
まずはキーボードの準備ができました。
あとは、本体側の改造だなあ〜。
(おしまい)