MSX2 三菱 ML-G30 STM32F4でUSBキーボードを使う


これまた長年の宿題となっている、MSX2 三菱 ML-G30のキーボードコンバーターに再挑戦します。
念願のPC-8801mkII/SR/TR/FRが達成できたので、今度はうまくいくかもしれません。
ただ最大の難関はキーボードコネクタ。
さすがにケズリーノやコスリーノだと心許ないので、何とかコネクタを手に入れたいところです。

正月に寝っ転がって何気にスマホで"26ピン"を検索したところ、「もしかしてコレじゃね?」みたいなコネクタを見つけました。
しかし既に絶版、生産中止品のためどこも扱っておらず、探しに探してやっと Chip1Stop さんのところに在庫がありました。
これでコネクタの問題は解決です。



次はケーブルです。
ピン数が多いので25ピンのパラレルケーブル(プリンタケーブル)をカットして使います。
キーボードコネクタは26ピンなので1ピン足りませんが、4ピンがGNDなので十分足ります。
ただコネクタが小さいので、コネクタの半田付けに3時間以上かかってしまいましたが。









次はプログラムです。
無用な試行錯誤を避けるため、まずはアドレスピンの信号をオシロで見てみます。
おー、これぞTTLって感じの波形ですね。





立下りはスコーンと下がるので負極性ならTTL⇒CMOSでも問題ないことが分かります。
一方、立ち上がりはダラダラと上がるので正極性はTTL⇒CMOSだとまずいことが分かりますね。
とりあえず、アドレス、データ共に負極性なのでそのままマイコンにつなげられます。
アドレスはエンコードされていないので11ピンありますが、STM32は割り込みは16本使えるので問題ありません。



結線したらグルーですぐに固めます。
黒が売り切れだったため、今回も白を使いました。
見た目は悪いのですが、こうしないと作業中に配線が切れて私もブチ切れてしまいます。



それでは動作確認です。
...やはり動きません。
何が悪いかなー、と思ってデータをセットしてからfor文で少しウェイトを入れてみたところ文字が入りました。
MSXは遅いので、キーデータを食うまでに時間がかかるようです。

ただ、各アドレス毎の文字がうまく入りません。
どうやらウェイトを入れたことにより、ウェイト中に次のアドレスに進んでしまったようです。
ウェイトをギリギリまで減らして何とか全キー入力することができました。

最後にCAPSとかなのLEDを接続して完成です!



長かった...
ML-G30を手に入れてから何年経ったっけ?
なんとかペイが流行りだして、かえってレジ時間が長くなったことに文句言ってたからそんなに前でもないか。

これでセパレート型MSX/MSX2キーボードなしの個体を入手しても死ぬことはありませんね。



[追記]
コネクタむき出しだと不安なので、D-SUb 15pinのシェルケースを加工して流用しました。





戻る