P2B/WS
(PS/2マウスをPC98バスマウスデータに変換するアダプター)
このプロダクツは製品化される事になりました。
http://www.miyagen.com/usr-cgi/p2b/
以下、古いコンテンツです。試作品の製作記として残しておきます。
概要
PC98で使用されるバス接続マウスの新規入手は難しくなってきてます。そこでAT互換機に採用されているPS/2マウスをバスマウスデータ変換して、PC98のバスマウス端子に接続してやれば、市場に溢れている豊富なPS/2マウスが使用することが可能となり、一気に選択肢が広がります。スクロールホイールも同時に使えることができれば、さらに便利でしょう。最近入手が困難になりましたがシリアル接続のホイールマウスもあったのですけども、レスポンスに問題があって評判は悪かったです。
そこで、マウスの位置情報(X,Y)、ボタンL,Rをバスマウス端子に出力するアダプターを製作することにしました。さらにホイール情報をシリアルデータとしてレスポンス低下を防いでいます。
製作
ケースは秋月電子の C-00033 D-subコネクタ用ケース(シェル)→プラスチック25ピン用 を使用することにします。かなり窮屈ですが、回路を押し込むことができました。ただし、PS/2メスコネクタは内蔵できません。 MiniDIN9pinコネクタと同じように延長ケーブル形式としました。
このケースに合うようにユニバーサル基板を加工しないといけませんが、ここが唯一手間取った部品でしょうか。IC,コンデンサ、トランジスタとこのケースに干渉しないように配置決めをします。ケース内側のネジ穴付近は基板を挟み込むすき間を確保するために少々削り取りました。
ユニバーサル基板とD-SUB25Pコネクタは、2列のコネクタピンの隙間にユニバーサル基板を挟み込ませるように取り付けます。但し、コネクタピン間ピッチとユニバーサル基板のピッチと完全に一致しません。少しずつずれてしまいます。この辺りは実際に合わせてみて下さい。当方の場合はコネクタピン間でショートが心配されるような箇所はプリント箔を切断しました。コネクタと基板を固定するために半田付けは6ピン程としました。

回路
| 回路図 2003/04/10 bugfixed P2B/WS製品版とはコネクタ周りが異なります。 |
![]() |
今回、データコンバータにはATMEL社 AVR AT90S1200 というワンチップマイコンを採用しました。PICマイコンが有名ですが、このチップは自分には馴染んで使いやすかったです。また、IOポートが15あり、今回の規格には丁度良いIOポート数でした。RS232CインターフェイスはよくMAX232とかのレベルコンバータを採用されることが多いですが、何とか省略できないものかと、回路を工夫した結果、AVRと付加回路でチャージポンプ回路を構成し問題クリアしました。RS232Cは±5V(変換ロスがあり実際はもう少し低い)で駆動させております。オシロスコープで確認すると波形は汚いけど…まあ、良いことにしましょう。プログラムメモリエリアは目一杯使いました。
ケーススペースの問題でICソケットも実装できない状態でしたのでAT90S1200は基板直着けとし、ISPプログラムを利用しMiniDIN9Pよりプログラミングする方法としました。
プログラム
ソースプログラムは、余りにも汚いので公開は勘弁して下さい。HEXファイルのみ公開します。 P2BWS124.HEX
Corega製CPU切替器対応版ファームウェアを公開します。従来マウスも同じように動作します。不具合があればご一報願います。P2BWS127.HEX
無断の営利目的利用は固く禁じます。個人的なご利用に限ります。個々の責任の上ご使用下さい。
当方はご使用による如何なる動作結果に対して責任は負いません。 著作権はm!yaが有します。
P2B/WSからはPnPコードを返しますので、デバイスは自動認識されます。手動の場合、標準シリアルマウスドライバをインストールしてみて下さい。
シリアルポートへのホイールデータ情報は、純粋にホイールデータだけを送ることができません。カーソル位置情報、ボタン情報が4バイトのセットとして送られます。カーソル情報は常に0を返せば良いのですが、ボタン情報だけはそうはいきません。バスマウスに送っているボタン情報と常に同期していないと動作に不具合が見られます。(Windows2000では問題ないそうです) 本コンバータではシリアル側データ送出タイミングにバス側データを同期してボタン情報をPCに送りだしています。これによる遅延は判らないと思います。これは、かなり良い方法でした。違和感無くマウス操作ができます。
