ブレッドボードZ80マイコンにシリアルLSI 8251をつなぐ

Z80

ことしのGWあたりから作って実験していたブレッドボードZ80マイコンですが、Gran’s氏のマイコン回路を参考に作ったのでシリアルチップが68系のMC6850です。
SBC8080で8251を使っていたので、やっぱりZ80に80系のシリアルをつなげてみたくなりました。

ブレッドボードZ80マイコン 再配線

8255Aをつないだりして実験していた関係もあり、ジャングル配線になって なにやら不安定っぽかったブレッドボードZ80マイコンですが、秋月電子から通販で買ったブレッドボードx3構成に作り直してみました。

GWごろに作ったときより、だいぶ短いケーブルでつなぐことができた気がします…^^);;
ワイヤストリッパーも手に入れたので配線スピードがだいぶ上がりました。

シリアルLSIを8251へ

やっぱりZ80なので80系のシリアルチップで動かしてみたい!ということで、SBC8080の部品を買う時に買ってあった8251をつないでみます。

回路はほぼSBC8080のサブ基板といっしょです。

  • データバスをD0-D7を接続しました。
  • チップ選択信号 CSはいつもの74HC138でA13〜15をデコード。
  • 読み/書き(RDWR)は8255AのときといっしょでZ80のI/O要求(IORQ)信号と74HC32でORをとります。
  • 8251の送受信クロックはSBC8080の回路といっしょです。(SBC6800のPIC12F1822でも良かったかも)
  • Z80の主クロックは7.23728MHzでしたが、8251がμPD8251AFCのため最大周波数は5MHzでしたので、4.9152MHzの水晶振動子へ差し替えました。
  • RxRDY端子によるZ80への割り込みは負論理へ変換するため74HC04のNOT回路を通しました。

SBC8080用 機械語モニタで動作確認

SBC8080のデータパックに入っている機械語モニタのHEXファイル “MON80SA.HEX” をEEPROMへ焼いて起動してみました。

起動すると、機械語モニターの初期メッセージと共に入力待ちになります。
起動は成功ですが入力をうけつけてくれませんでした。

Z80の割り込みモード設定が必要

Z80マイコンはシンプル構成で、割り込みコントローラはついてません。

Z80は割り込みモードを3種類持っているみたいで 割り込みモード0は8080互換で割り込みコントローラ接続が前提の模様。
割り込みモード1にすると割り込み時に0038hが呼ばれてソフトコントロールできるとのこと。
幸い機械語モニタの割り込みルーチンは0038hから記述されているのでZ80を割り込みモード1にすると良さげです。

問題は機械語モニタのソースは8080ASMで書かれているため、Z80で拡張された割り込みモード設定はアセンブリできません。
そこでZ80の “IM 1″(割り込みモード1へ設定)のコードを 16進数で定義する作戦としました。
変更箇所は以下の初期化部分です。(画像ですいません…)

この変更で無事 受信割り込みが動くようになりモニターが使えるようになりました!!

コメント