X68000 STM32F4でUSB・PS/2キーボードとUSBマウスを使う


UART TXが使えるようになったので、今度はUART RXを使ってみます。
X68000では本体側からキーボードへの制御信号が出ており、これを使うことでキーボードコネクタからもマウスを操作できます。
また、キーボードのLED信号も来ているため、キーボード変換機経由でも全角キーなどのLEDを実装することができます。

それでは、いつものようにSTM32F401を使って製作します。
USART1をキーボード、USART2をマウスに割り当てたのですが、STM32F401xCはSTM32F103と違いピンが全て5Vトレラントということが判りました。
レトロパソコン向けの周辺機器を製作している者としては、これは便利ですね。
もうF103イラネーって感じです。

TOWNSで既に製作済みなので、USBキーボードはキーコードを入れ替えるだけであっさり動きました。
ついでに、PS/2キーボードも使えるようにハイブリッドにします。
これもTOWNSでやっているので簡単でした。

次はUARTのRX(本体側信号の受信)です。
X68000本体からのマウスContorl信号を受信後、USBマウス信号を返してみます。
難しいかな、と思ったのですがあっさり動きました。
といっても、マウス信号の順序がマウスポートの時と違っていたので調整に苦労しましたが。

これでUSBマウスも動きます。
ただ残念ながら、STM32 USB OTGライブラリではUSB HUBに対応していませんでした。
同時にUSBキーボードとUSBマウスは使えないようです。

とりあえず、
 キーボード⇒PS/2
 マウス⇒USB
の組み合わせで使うことにしました。

最後にLEDです。
仕様ではXFキーでLEDの明るさを変えることができるそうです。
X68000の純正キーボードを持っていないので、よく分かりませんが...。

明るさの調整にはPWMを使ってみました。
PWMはATmega8などにもあったのですが、なかなか使う機会がなかったのでこれを機に勉強してみます。

全角、かな、CAPS、INS、ひら、コード入力、ローマ字にPWMのチャネルを割り当て、LEDの明るさ指定に合わせてDuty比を変更します。
せっかくなので、STM32で流行っているLEDを明るくしたり暗くしたりして点滅させてみます。
...が、まるでアニメやゲームに出てくるでっかい脳みそみたいになって、何だか気持ち悪くなりました。
好き嫌いもあるので、スイッチで点滅の有無を切り替えられるようにします。

起動時にXFキーを押して試行してみたのですが、変換機経由のせいなのかLEDの明るさ調整はうまく機能しませんでした。
まあ、おまけみたいな機能なのでLEDが点灯さえすればいいでしょう。

ということで完成です。
プライベートが忙しくて時間がないのに、結構工数を取られてしまいました。
筐体を加工中にあっちこっちベキバキ割れたこともあり、今回は(も)あまりいい出来ではありません。
また、うっかりPS/2コネクタにPS/2マウスを刺してしまう恐れもあります。
紫色のPS/2コネクタを発注しましたので、そのうち作り直そうと思います。
しかも、初代用とACE用の2つ...(時間がいくらあっても足りない)。














戻る