気になってはいましたが、とりあえず使えるキーボードがあったのでそれで使っていましたが
DE0バージョンを発見したため、これであればSignalTap IIが使えるので
これで原因を探ってみました。
どうも、原因を調べてみたところ、キーボードとの送受信のbit数が足りず、必要最低限のクロックだけ
送受信したらあとは無視するようです。(クロックを送るのはキーボード)
そうすると、たとえばCaps等LEDの切り替えコマンドを送信後、少し(タイムアウト時間より長く)
待ってからAckを送信するキーボードなら残りのクロックで受信回路モードに切り替わっても
タイムアウトが発生してAckを受ける時には最初から受信されるが、コマンド受信後即座に返信する
キーボードではコマンド送信の残りのクロックで受信モードに切り替わり、そのままAckを受けるので
コマンドのパリティやSTOPビットがAckの先頭についてしまうため正常にAckと認識されない
という問題のようです。
キーボードの仕様とおなじ11bit全て受信するまで送信モード・受信モードを続けるように
修正して手持ちの全てのキーボードで動作するようになることを確認しました。
eseps2.vhd.diff
で差分データをアップロードしますので同じ現象をもっている人は使ってみてください。
eseps2の修正版、試させていただきました。
今まで動作しなかったRealforceが動作するようになりました。
初期のPS/2版だったのでお蔵入りしてたんですよね、このキーボード。
ありがとうございました。
お役に立てて光栄です。
仮boot用のブートローダからSPI(AS)でEPCS4からロードし、圧縮展開している、ということまでは解析したのですが、なにせ該当部分のソースが無いのでそれ以上は
解析できていません。
もし良かったら教えてもらえませんか?
圧縮プログラムメールしますので、こちらに一度メールいただけますか?
よろしくお願いします。