現在地

F8 I/Oボード(その4: 8251の搭載)


テーマ:

カテゴリー:

汎用ロジックによるI/Oポートが動いたので、次は本命の8251を接続してみます。


回路はシンプルです。

SN74LS138NはAB2AB7をデコードして8251のCSを作成しています。

8251はその2のボードで作ったIOR/IOWをそのままRD/WRとして使えます。ちょっと変わっているのはコネクタのピンが足りなくなってRESETが接続されておらずプルアッププルダウン(2021年9月7日 修正)されていることでしょうか。リセットはソフトウェアで行ないます。

クロックもコネクタの問題で来ていないのでお馴染みSG-8002DCで2.458MHzを作って8251のCLKとして供給します。

シリアルの送受信クロックは上記CLKをSN74LS393Nで16分周して作ります。

もしピン数が足りてCPUのPHI(2MHz)が使えれば、CLKにはそのまま使用して送受信クロックは13分周すればちょうど9600bpsになります。


裏側はこんな感じ。コネクタから8251へまっすぐ繋ぐだけというのがわかると思います。

今回これだけの基板で3つもチョンボをしていました。

  1. 74LS393を16ピンと勘違いしてソケットを付けてしまったこと。四隅をハンダ付けした時点で気付いたので交換。
  2. GNDのPTFE線の配線忘れ2箇所、8251搭載前の電圧チェックで発覚。
  3. 8251のRESETを負論理と勘違いしてプルアップ、手動でレジスタ叩いているところで挙動がおかしいのでデータシート読み直していて発見。

ハードウェアができたら次はソフトウェアです。

まずは既存の(SUB8080基板上の)8251を使ってUniversal Monitorを動かし、I/Oコマンドを使い手動で新しい8251を初期化してみます。ここで上記3.の問題を見つけました。そのまま1文字出力・1文字入力ができることを確認します。

ここまで動いたらUniversal Monitor用のコンソールドライバを書いてしまいます。メモリマップの場合はレジスタアクセスのためにDC0レジスタが必要でその退避など考える必要がありましたが、I/Oマップならポートアドレスは直接指定なので短くシンプルになります。これは一発で動作しました。

これで一応の完成ですがまだ少し気になる点があるので次回はそこを取り上げてみたいと思います。

参考文献・関連図書: 
8251Aデータシート, Intel.

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。