SFCのコントローラーをハードオフでゲットしたついでに、いろいろ調べてみたというお話。
(まぁ、結構前だけど。)
汚れがひどいからという理由だろうけど、108円とお安かった。
こういう値段だと、「ちょっとばらしてみた」が出来て楽しいね。
昔から、何かというと「バラしてみる。」が大好き。
正式なお名前は「Nintendo(R) SUPER FAMICOM CONTROLLER」らしい。
モデル名は「SHVC-005」。
そういや、マジマジとコネクタとか観察したことがなかったな。
こんな形だったねぇ。
で、これ、どんな信号が流れてるんだろう?
と、ネット上の情報をいろいろ当たってみた結果。
信号線的にはこんな感じのアサインになっている模様。
このコネクタの先、コントローラ側はというと…。
ファミコンの直付けとは違い、ちゃんとコネクタ経由で接続されています。
テスター当てて導通を確認。
一応、こんな感じで繋がっていることを確認。
コネクタ側のDATA2とSELECTはN/Aなのね。
多分、通常のコントローラじゃないやつで使うんだろうな。
こんな基盤の子でした。
さてさて、信号線は複数のサイトで似たように書いてあったので、そのままなんだろうけど。
実際にはどんな信号が流れてるんだろう。と気になって。
ロジックアナライザーにつないでみましたよ。
設定も適当にのぞいてみる。Sample Rateは16MHzくらいで適当に。
結果としては、おおむねこんな感じ。
ボタンを何も押さない場合はこのような形で出てくる。
ここでどこかのボタンを押すと…
CLOCKに合わせてこんな感じでDATA1が変化。
大雑把にロジックアナライザーの結果を見てると、CLOCKで2回分にDATA1が動いているように見えるけれど、よくよく見てみるとCLOCKが立って、落ちたのちにDATA1が立ち、次のCLOCKが立って、落ちた後にDATA1が落ちてる。
結果として、後ろ側のCLOCKに合わせてDATA1が出てるという話。
なるほど。
で、CLOCKがHとなる回数は、1サイクルあたり16回。
それぞれがコントローラーのボタンと対応しているのね。
タイミング | 対応するボタン |
---|---|
1回目 | Bボタン |
2回目 | Yボタン |
3回目 | SELECTボタン |
4回目 | STARTボタン |
5回目 | 上ボタン |
6回目 | 下ボタン |
7回目 | 左ボタン |
8回目 | 右ボタン |
9回目 | Aボタン |
10回目 | Xボタン |
11回目 | Lボタン |
12回目 | Rボタン |
で、最後のCLOCK 4回分は必ずDATA1は”L”となってる。
多分、この部分で1サイクルを見ているのでしょう。
なるほどね。結構、簡単な構造してるんだなぁ。
これならArduinoの入力デバイスとかに簡単に使えそうな感じだね。