スーパーファミコン コントローラーの無線化プロジェクト:仕様確認(できるかはこれから)

スーパーファミコンをジャンクで購入してきて、コンデンサを置換し修理。非常に古かったので色を塗りなおしたものを愛用。

そんなに遊ぶ訳ではないが、インテリア?として飾ってきた。たまに遊ぶ時に、コントローラーの線が短い・・・・。今時、無線化でしたいという欲求を満たそうというプロジェクトをやろうと一念発起。 

なのでこの時点ではスーパーファミコンのコントローラーの無線化が実現できている訳ではないので、それを期待して見にきてくれた人は、ごめんなさい。これからです。

中古で購入してきたコントローラーの線を真ん中で切断。無線化が目的なので、躊躇なく切断

切断したケーブルにコネクタを圧着してつける。

ブレッドボードを使って信号をデジアナで確認する事を行った。

上からCLK, P/S, DATを表示していて、引いて観測すると16.6msec毎にP/SがLOWからHIHGに。60Hz間隔で、コントローターのボタンの状態を見に行っていることがわかる。
この一回を拡大すると以下のようになっていた。


P/SがまずLOWからHIHGになり12usec経過してLOW。その後、6usec経過してHIGHだったCLKがLOWになり以後16回H→Lを繰り返す。
上の場合は、赤い線はDATで、CLKがH→Lになるタイミングで前から、
BYSELECTSTARTAXLRHHH

となっているとのこと。
この場合、3回目にH→LになるときにDATがLOWになっているので、SELECTが押されている。

この場合は、CLKがH→Lになる5回目のタイミングと、10回目のタイミングでDATがHIGHからLOWになるので”上”と”X”が同時に押されている場合という事になる。
(実際に、上とXを押した状態でP/Sの立ち上がえりで、キャプチャーしているので正解。

パラレル→シリアルの仕組みというのは理解できた。
厄介なのは、結局1秒に60回つまり、コントローターのボタンがどう押されているかを読み取りに行っている訳だが、その割には、クロック間隔は6usecと結構短い。

無線で6usec以内に伝送を終えようとすると結構な速度が必要。一方で状態を読み取るのは
1秒に60回,16msecと結構間隔は長い。なので遅延は1回分ぐらいは致し方ないといったところ。
無線化のロードマップその1、動作を確認するは終了。




コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

Attiny85 FuseRest