RTSN, KD4, MPXは本体側からの出力信号です。KD[3:0]は本体⇔キーボードの双方向の信号です。
1周期は約1.2usくらいです。厳密ではなく変動します。
RTSN=Hのときは、本体側がKD[3:0]をドライブし、キーマトリクスのRowを出力します。RTSNの立ち上がり時にはKD[4:0]はまだ確定していません。
RTSN=Lのときは、キーボード側がKD[3:0]をドライブし、キーマトリクスのデータを出力します。MPX=Hのときは上位4ビット、MPX=Lのときは下位4ビットを出力します。
KD4=Hのときは、キーマトリクスのRowで指定した列のキーデータを出力します。KD4=Lのときは、キーマトリクスの全RowのキーデータをANDした結果を出力します。
ソフトウェアからI/OポートE8hを変更すると、RTSN=Hの期間中にKD[4:0]が変化し、続くRTSN=Lの期間も短くなるという謎の挙動を見せます。これではキーボード側は正しいデータを返せませんが、このときに返したデータはどうも捨てられるようなので、気にしなくてよいようです。
USB-Aのキーボードは、USB OTGケーブルを介してPicoのUSB micro-B端子に接続します。PicoのTP2, TP3にUSBの信号が来ていますので、USB-Aコネクタを追加して接続するのもよいでしょう。(USB-A, micro-Bを同時に接続しないように注意)
MZ-2500に接続するケーブルに関する注意点はNUCLEO版と同じです。
■回路図
■ファームウェア
v0.1 とりあえず動いたバージョン Download
■ファームウェア書き込み方法
STM32F401RE-NUCLEOボードを使ったUSBキーボードアダプタを作ってみました。追加する部品は、コネクタ類の他には 74HC257 が1個だけです。
MZ-2500 (2511/2521/2531) のキーボードコネクタはMini-DIN 8ピンコネクタですが、コネクタを挿す本体側の穴が狭いため、注意が必要です。組み立て式のMini-DIN 8ピンコネクタの場合は外側にかぶせるカバーを装着してしまうと入りません。既存のMini-DIN 8ピンコネクタケーブルを利用する場合は、モールドが細めのものでないと入りません。また、フレームGNDが信号線のGNDとして使われているため、全結線かつシールド有りのケーブルでないと使えません。条件を満たして入手しやすいものにはサンワサプライのKPU-MAC5Nがありますが、結構お高めです。
キーボードアダプタ動作時はMZからの電源供給で動くため、STM32F401RE-NUCLEOボード上のジャンパJP5を E5V 側に切り替えます。
日本語109キーボードに対応しています。キーはだいたい同じ名前のキーに適当に割り当てています。特殊なものは以下の表のように割り当てています。
日本語109キーボードのキー | MZ-2500キーボードのキー |
---|---|
全角/半角 | ESC |
CapsLock | LOCK |
F11 | HELP |
F12 | BREAK |
PrintScreen | COPY |
Pause | BREAK |
Home | CLR HOME |
Del | INST DEL |
Page Down | テンキーの , |
Windows | アルゴキー |
Menu | アルゴキー |
ひらがな/カタカナ | カナ |
Alt | GRAPH |
限られたキーボードでしか動作確認できていないので、動かないキーボードもあるかもしれません。USB Hub付きのキーボードや、内部的にHubを通して接続されているキーボードなどは動作しません。
動作確認済み | 動作せず |
---|---|
サンワサプライ SKB-SL08W サンワサプライ SKB-L1UBK ELECOM TK-FCM062 ELECOM TK-FCM077PBK DELL SK-8185 Lenovo SK-8825 Lenovo LXH-EKB-10YA |
FILCO FKB108M/JB Tai-Hao F21-WE45 Lenovo SK-8805 (※USB Hub付きキーボード) Lenovo KUF0452 (※内部USB Hub接続) |
■回路図
■ファームウェア
v0.3 一部のキーボードで [む] キーの入力ができなかったバグを修正 Download
v0.2 [F1]〜[F8]を押すとキー入力ができなくなるバグを修正
v0.1 とりあえず動いたバージョン
■ファームウェア書き込み方法