2013年01月11日

ジョイスティック端子のレベルシフト回路(3)

  ジョイスティックの5V化の回路が動かない件ですが、一応解決しました。


JOYSTICK_5V

  これが回路図例になります。

  74LS244、245 は、相当品で構いませんし、ピンアサインも適当に入れ替えてもらって構いません。
  3.3V−5V変換は、双方向以外はもっと簡単な回路で実現できるかと思いますが、とりあえず今の回路を生かしたままという事にしました。

  変更点は以下の通りです。

・1、2、3、4ピンの入力専用ピンは、5V-TTLの入力バッファを追加した。
・8ピンの出力専用ピンは、5V-TTLの出力バッファを追加した。
・6、7の入出力ピンは、双方向バッファを追加した。制御信号は、FPGAからの出力を使用する。




  不具合の原因は、一部のジョイスティックで、結構変な(?)回路になっている事でした。
  このため、8ピンの"L"出力が、それなりなドライブ能力が必要になっていたようです。
  また、逆にジョイスティック側のドライブ能力が足らないために、正常動作しないものもありました(XE-1 PRO)。



  一番素直な回路は、TONWS-PAD のような回路になります。

TOWNSPAD



  9ピンが GND として使って、各方向キー、ボタンは、その9ピンと結線しています。


  変な回路の典型的は、純正スティックのPC-6052 です。

PC-6052


  8ピンが "L" になっている事が前提で、各方向キー、ボタンをその8ピンと結線しています。
  このため、8ピンに"L" を出力しないと、各方向キー、ボタンのデータを受け取れません(ベタ"H"になる)。


  8ピンに"L"を出力しないと、入力が反映されないという仕様のような気がしますが、SEGA のジョイパッドに合わせたのかも知れません。



SC3000PAD

  古いですが、SC-3000(マスターシステム)のジョイパッドです。
  これは、9ピンの方のボタン入力を取ると、PC-6052 と同じです。



MEGA_PAD

  同じパターンで、後継機のメガドライブのパッドです。
  これは、7ピンが出力で、複数ボタンの選択のために使われています。



  電波新聞社のXE-1シリーズで、XE-1 ST、XE-1 ST2 は、SC-3000、メガドライブをサポートしているようです。

XE-1_ST

  これは、XE-1 ST の回路図です。
  8ピンは、SC-3000、メガドライブはGNDになっていて、他の機種は"L"出力しているはず、という回路になっています。



posted by えすび at 21:44| Comment(7) | FPGA化:ジョイスティックポート | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんにちは。
ジョイスティックのピン配置ですが、元になったATARI2600(VCS)のものはPC-6052と等価です。
http://old.pinouts.ru/Inputs/JoystickAtari2600_pinout.shtml
ただしVCSではパドルもつながりますが、そちらでは7番ピンが+5Vみたいですね。
P6の9番ピンがGNDになっているのは5番ピンの+5Vと対になっていて、この2つのピンは他のデータ入出力用のピンとは独立しているという考え方みたいです。
なのでどちらかというとTOWNSのほうが異端です。ベーマガの90年8月号「なにわ通信」に、TOWNSではXE-1APのデジタルモードがゲームソフトによっては動作しないということが書かれていて、変換ケーブルの作り方が図解されています。
Posted by タイニーP at 2013年01月12日 18:58
こんばんわ〜。

なーるほど。ATARIは8pinがGNDなんですね。ATARI仕様を謳うジョイスティックは、8pinをコモンピンにするべきなのか。


ただ、ハード側から見ると、9pin につなぐのではなく、9pinにつなぐのが正解だと思います。

信号ピンは信号ピン同士繋ぐという考え方もありますが、単純にその入力を"L"にするか"H"にするかなので、8pinにつなぐのは本来はおかしいと思います。

8pinに繋ぐ場合は、ジョイスティック内部で、バッファを入れてから分岐すべきかな。


XE-1 AP はわからないんですが、XE-1 ST は、8pinコモンで、XE-1 ST2とXE-1 PRO は、9pinコモンでした。

XE-1 APのTOWNSでの問題は、同根のような気がします。

Posted by えすび at 2013年01月12日 19:26
ふむふむ……
自分はハードウェアに(ソフトもですがw)詳しいわけではないので変なことを言ってたらすみません。

なお、MSX(MSX2)の仕様としてもジョイスティックの入力は8番ピンを0にして読むということになっているようです。(BIOSを使うことが推奨されていますが)
http://ngs.no.coocan.jp/doc/wiki.cgi/TechHan?page=5%BE%CF+%C8%C6%CD%D1%C6%FE%BD%D0%CE%CF%A5%A4%A5%F3%A5%BF%A1%BC%A5%D5%A5%A7%A5%A4%A5%B9
Posted by タイニーP at 2013年01月12日 23:41
いえいえ。
どちらが正解かというと、実はちゃんと動作すれば両方正解ですので。

MSX は8pinを"L"にするのが仕様なようですが、P6も同じように8pinを"L"にする必要がありますね。

じゃないと、PC-6052のような純正スティックに対応できませんので。
Posted by えすび at 2013年01月13日 08:05
 PC-6001mkIISR のマニュアルを確認したら、8pinがコモン信号と書いていました。

 ですので、NEC的には8pinと接続すべし、のようですね。
Posted by えすび at 2013年01月13日 18:10
どうやら8pinは、普段HIGHにしておき読取り動作時にLOWにする物のようです。
でも誰一人として守ってない模様ですが(苦笑)。
一部の多ボタンパッドなんかは8pinのL/Hでボタンのセットを切替えますね。
(メガドライブの6Bパッドはもっと複雑な仕組みらしいですが)
ちなみにスーパーカセットビジョンでは、4方向2トリガの計6入力を、
MSX仕様のような信号線6本+コモン1本で入力するのでは無く、
信号線3本+コモンっぽい線2本で入力する変態仕様です(汗)。
コモンっぽい線のどちらをLOWにするかで出力される内容が切り替わる仕組みです。
Posted by XEXYZA_7773 at 2013年01月17日 00:43
 スーパーカセットビジョンは、さすがに持ってないのでよく分かりませんが...

 P6の場合、出力1本+入力6本、か、出力3本+入力4本、にする事が可能です。

 スーパーカセットビジョンも制御できますね(^^;
Posted by えすび at 2013年01月17日 07:17
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。