2012年10月21日

RS232Cボードを動かす(2)

  結局、BASIC では、サブCPUの割り込みを使う方法以外は使えないので、プログラムを組んでみました。

  一応、今回作成したボードでは 38400bps、正規ボードでも 19200bps までデータ転送できるはずです。

rs232c.zip


  プログラムは手抜き箇所があります。送受信時は、指定したバイト数になるまで制御が返ってきません。


○使い方

  mk2以降で、MODE5、PAGE4 にして下さい。本来はmk2でなくてもいいのですが、大量のデータの受信テストにするためにmk2を使っています。

  Windows 側は、何らかのターミナルプログラムを使って下さい。
  私は、MORIYAさんの所で紹介されていた、acknowrich を使っています。

http://www.vector.co.jp/soft/win95/prog/se089304.html
http://p6ers.net/mm/pc-6001/dev/joy2rs232c/

  リバースケーブルでWindowsパソコンと繋いだら、acknowrich を立ち上げて下さい。その後、P6側でプログラムをRUNさせます。

  すると、acknowrich の下のステータスバーの「CTS」「DSR」が点いているはずです。点いていない場合はリバースケーブルがおかしいか、RS-232Cボードがおかしいと思われます。

  また、Windows側 にRS-232Cポートがなくて、USB-RS232C変換コネクタを使っている場合は、変換コネクタが悪い可能性があるので注意が必要です(USB-RS232C変換はいろいろとトラブルが多いようです...)。



・パラメータ設定

  立ち上げたら、まずP6側で p を押して、パラメータを設定します。

  設定できるパラメータは次の通りです。

 ・ストップビット 1bit / 1.5bit / 2bit
 ・パリティ    なし / 奇数 / 偶数
 ・データ長    5bit / 6bit / 7bit / 8bit
 ・ボーレート倍率 通常 / 4倍

  それぞれ [ ] で囲まれた文字を押して下さい。

  BASIC のデフォルトは、ストップビット 1bit、パリティなし、データ長 8bit、ボーレート倍率 通常、です。


  とりあえず、デフォルトの通りに各パラメータを設定して、さらに RS-232Cボード上のジャンパを4800bps にして下さい。

  また、acknowrich の通信設定もこれに合わせるようにして下さい。

  さらに、acknowrich のフロー制御の設定も行って下さい。設定−デバイス設定で出てくるウインドウの、通信パラメータタブにある、フロー制御の項目で設定します。

  CTS、DSR、RTS、DTR、にチェックを入れて下さい。



・データ送信

  P6側 で s を押して、データを送信します。

  s を押すと、開始アドレス、送信サイズを聞いてきます。入力はhex です。

  例えば、開始アドレス=0、送信サイズ=10 とすると、ROM領域のアドレス0x0000〜0x000F までが、acknowrich のコンソールに表示されます。
  バイナリデータなので、acknowrich のメニューから、編集−BINARYモードを選んでバイナリにしておくと、画面に16進で表示されます。

  また、ファイルの転送も可能です。acknowrich のメニューから、編集−ファイル転送を選び、新しく出てきたウインドウの「受信」を選びます。すると、受信したファイルがどこに格納するかを聞いてきますので、適当に答えます。

  次に、P6側で s を押して、開始アドレス、送信サイズを入れると、ファイルが転送されます。
  例えば、開始アドレス=0、送信サイズ=8000 とすると、mk2のROMデータが転送されます。

  手持ちのROMファイルと比較してみて下さい。一致しない場合は、どこかがおかしいと思われます。


・データ受信

  P6側 で r を押して、データを送信します。

  s を押すと、開始アドレス、送信サイズを聞いてきます。入力はhex です。入力が終わると、ページ4が表示されます。

  その後に、Windows側の acknowrich のメニューから、編集−ファイル転送を選び、新しく出てきたウインドウの「送信」を選びます。すると、送信するファイルを聞いてきますので、適当に答えます。

  開始アドレス=0、送信サイズ=4000 とすると、ページ4の画面にデータが表示されますので、Windows側で画面データを作って、P6に簡単に表示させるができます。



  パラメータ設定にある「ボーレート倍率」ですが、これは、8251の分周比を変更するオプションです。正規のRS-232Cボードでは、このパラメータが 1/64 で使うようになっています。

  例えば4800bpsの場合、RS-232Cのボード上で、P6から入力される8MHz クロックを26分周して、8251に入力しています。

8251 はさらにそのクロックを1/64 して、送受信クロック(4800Hz)を作っています。

  で、この 1/64 の分周比が、1/16 にする事も可能です。この設定をすると、送受信クロックが4倍になるため、転送速度も4倍になります。


  ですので、「ボーレート倍率」を4倍に設定した場合は、単純にボーレートが4倍になります。ジャンパで4800bps にした場合は、19200bps 、9600bps の場合は、38400bps でデータを転送できます。


  ちなみに、私の環境では、問題なく38400bps の送信、受信が出来ました。1画面分が数秒の速度です。




posted by えすび at 18:54| Comment(2) | SW:ツール | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
相変わらず仕事が速い…。
2012年の P6 ニュース TOP10 の内半分以上はえすびさん物件なのではなかろうか。

31250bps がいけるなら RS232C->MIDI も実現できそうなんでしょうか。
あれは外部同期だったかな。
外の機器と繋がるようになると、野望としては何とかネットと絡めたいところですね。
ホストからtwitterのテキストを送り込んで表示程度は他のマシンでもやってたような覚えがありますが。
Posted by bookworm at 2012年10月21日 20:49

twitterぐらいなら出来そうな気がしますが、個人的にはあまりやる気ないです(^^;

ここの辺りは自由研究ということで。
Posted by えすび at 2012年10月22日 09:15
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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


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