Dreamcast シリアルポートの不明な端子について
The original article, written by jj1odm, is available at http://jj1odm.sizious.com/
外部ボーレート端子発見の経緯について質問を受ける事があったのでここに書いておきます。
これまでドリームキャストのシリアルポート端子には 3つの不明な端子 がありました。
私は不明な端子のうち 8番ピンは GND、9番ピンは負論理のリセット出力信号であるという事に早くから気がついていました。
8番ピンは基板のパターンを見れば明白、9番ピンはオシロで見た時にリセット信号だと確認できました。
なぜそれがリセット信号だと思ったかというと SCI インターフェースに多重化された機能をコントロールする為にリセット信号がシリアルポートに必要だという事を知っていたからです。 (組込み系で SH4 を使っている人ならご存知ですね。)
多重化された機能の詳細は SH4 のドキュメントを見てもらうとして、とにかくリセット期間中は SCI インターフェースの各端子をフローティングにする必要があるという事です。 なぜなら CPU や周辺の動作モード(クロックに関係する)の設定用にプルアップ・プルダウン抵抗が SCI インターフェースの各端子に接続されていてリセット期間中にこの設定を CPU が取り込むためです。
(確認はしてませんが対戦ケーブルの箱の中にはリセット期間中にシリアルポートの信号をフローティングにするための回路が入っているはずです。 ちなみに私はこの手の対戦ケーブルを持っていなかった為 ドリームキャスト本体から直に 線を引き出して使っています。)
問題の2番ピン ですが、これは確信が持てませんでしたが SCI インターフェースの ブロックダイヤグラム で唯一行き先の無い端子が SCK2 だったのでひょっとしたらという検討はついていました。 但しその時点ではまだ確認するまでにはいたりませんでした。
それからしばらくしてある掲示板でシリアルポートの 2番ピンに関してモデムの DCD 信号らしいという話を聞きそのページを見に行ったところ、 なんと 「2pはCPU(SH-4)のA16:SCK2(SCIクロック2)と繋がっており」 と書いてあるではありませんか!
(残念ながらそのページに書いてあるモデムの DCD 信号というのは間違いです。でも外部ボーレートを確認するきっかけになった事を感謝します。 ちなみにモデムとの通信は ATコマンドで行なっていれば最悪 RX と TX 信号だけで行なえます。 実際に私も外部モデムに繋いでみましたが 2番ピンの状態に関係無くドリームパスポート3でインターネットに接続できました。)
もしこれが本当に SH4 の SCK2 と繋がっているなら 外部ボーレート での動作が可能という事になります。
早速シリアルポートの 2番ピンに 1.8432MHz (115200bps * 16 = 1.8432MHz) のクロックを接続、SCI を外部ボーレート用に初期化してエコーバックするだけの簡単なテストプログラムを作り外部ボーレートの実験をしてみました。
結果は予想通り外部ボーレートで通信が出来ました。
本当に外部ボーレートで動作しているのか確認する為、動作中にクロックの配線を切ると見事に通信不能になりました。
これが外部ボーレート端子発見の経緯です。
余談ですが外部ボーレートの件を海外のあるフォーラムで公開したところ henzenmann さん (ドイツの方) が 追試され DC-tool に外部ボーレートオプションを追加したパッチを作りメーリングリストに投稿したそうです。(dcload serial 1.0.4 から外部ボーレートに対応しています)
ちなみに SCI ポートに多重化されたもう一つの機能は汎用の入出力ポートです。
USBN9603 SPI 接続 や dcpprip で応用しています。
ネオジオポケットドリームキャスト接続ケーブルを入手、小さいプラスチックケースに 10pin コネクタを付けた汎用ケーブルを作成。 これで DC に尻尾を作らなくて済みます。