現在地

F8 I/Oボード(その3: 汎用ロジックによるポート)


テーマ:

カテゴリー:

8251の前にまずは単純なポートを試してみることにします。


テスト用のボード、ブレッドボードで十分な気がしますがどうも好きになれないので作ってしまいました。

機能は単純です。

IORに対しては下部ジャンパで設定した値をSN74HC541N経由でデータバスに送り込みます。アドレスをデコードしていないのでアドレスは任意です。

IOWに対してはアドレスの下位4ビットとデータの上位4ビットをSN74ALS574NでラッチしてLEDを点灯します。当初データのみの予定でしたがアドレスも見られたほうが便利だろうと変更しました。

これでIN/OUT命令実行時の動作と波形を見てみます。ロジックプローブの信号の対応は以下のとおりです。

  1. D0D3AB0AB3
  2. D4D7DB4DB7
  3. D8PHI
  4. D9WRITE
  5. D10ALE
  6. D11IOR
  7. D12IOW


これはIN 80H命令を実行したところです。

一つ目のD9WRITE)と同時にD10ALE)が出ています。これがROMC=3のタイミングと思われます。この立ち上がりでD0D3にアドレスがラッチされています。

次のD9D11IOR)が出ます。ジャンパは0CFHを設定していたのでD4D7が"LLHH"にドライブされます。D11の立ち上がりとともにドライブは切れるはずですがバスの浮遊容量のおかげかそのままホールドされています。

本来WRITEの立ち下りから50nsのホールド時間が必要なのを満たせていませんが、これで助かっているようです。次のPHIの立ち上がりまでIORを伸ばすのが良さそうです。

右端でD4D7が変化しているのは次のサイクル(ROMC=0)になってF3853がCPUREADを出してメモリがドライブしたためと思われます。


次はA=0AAHでOUT 80H命令を実行したところです。

ALEは一緒です。

D12IOW)に対してデータのセットアップ・ホールドは十分すぎるほどありますから、こちらはタイミングが問題になることはまずないでしょう。

これらの実験の中でUniversal Monitorのバグも一つ見つかっています。

I, Oコマンドを使っているのですが、当初OUTでラッチされる値が常に00Hになっていました。配線を疑ったりタイミングを確認しなおしたりしてもおかしなところはありません。もしやと思ってソフトのほうチェックしたらスクラッチパッドのアドレス間違えていていつも00Hを出していました。

次回は本命の8251を接続する予定です。

(続く)

参考文献・関連図書: 
F3850データシート, Fairchild.

コメントを追加

Plain text

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