コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

事の始まりは 1chip MSX 発売日までさかのぼる。
1chip MSX が発送となり直に到着するという状況の時に、それが届いたときの懸念が一つ存在していた。今現在 MSX で使用できるジョイスティックを所有していないということである。
メガドライブのパッドが使えなくもないけれども、あのへんもいい加減骨董品だし酷使するわけにもいかない状況。それゆえに何とかしたい。
今現在、ジョイスティックを買おうと思ったらまともなのは PS2 向けのアイテムぐらいしかなかったりする。
そこで考えた、PSパッドを MSX(兼ATARI仕様) に変換するコンバータを作れば良いのではないだろうかと。コネクタとプロトコルに関してはいわゆる藤田資料があるので、それを参照してシリアル通信するものを作れば良いわけだ。

さて、どうやって作成するか。
マイコンで作るのが王道だし実際に作例も見つかるが、今回は敢えて PLD で作成することにする。まあ、1chop MSX のロジックに組み込めるようにといった意味合いも込めてなのだけれども、実際に組み込むことはしないと思う。
ちなみにシリアル通信クロックが 250kHz なので下手なマイコンだと結構かつかつかもしれない。


CPLD実験基板上にコネクタを接続して、ロジックを作成したのが 1chip MSX の到着日。CPLD が 2個のっているのは、パッド間通信のステートマシンだけで XC9572 が埋まったので、クロック分周と 16ms トリガーをもう1個の XC9536 に移したから。
で、まあ、これが見事に動かなかったわけです。

流石にこの動作を追いかけるのにはロジアナが必要だ、というのがロジアナの製作を開始した経緯となる。

んで、ロジアナもできたのでデバッグ再開。
改めて調べてみて動いていないことを確認(苦笑)。
VHDL のシミュレーション上では期待通りの動作をしているのだけれども、CPLD に焼き込むと動作しないという状況。まあ、チップの上で動かないということはタイミングか初期値の問題かねえ。
いろいろ追ってみると、シリアライザーが DONE を返していないか読み落としているかしている模様。その周辺を読み返してみると大分怪しげなコードになっているのは確かだったり。
まあ、初めて設計したステートマシンロジックなので一発で動作するとは思っていませんでしたが。

pspad2msx_bad070407.zip
動かない物だけれども、VHDL ソースコード。

おまけ。PSパッド用コネクタを手に入れる方法。


PS パッドを PC に繋ぐための USB ジョイスティックコンバータを買ってくる。こいつのコネクタをもいで使うのです。


このコンバータ自体が通信プロトコルを観察する絶好の材料なのです。


ドライバー等を無理矢理ねじ込んでコネクタのプラスチック部分を外してしまう。


こんなふうに端子とコネクタを分離。後は端子を一本一本外していく。
その後、端子をコネクタに挿し直して、パッドコネクタの取り外し完了。

CPLD だとロジックが少なすぎて、チェックがやりにくいので FPGA 実験ボードの方に河岸を変えて調べていく予定。

—–

Leave a Reply