ことしのGWあたりから作って実験していたブレッドボードZ80マイコンですが、Gran’s氏のマイコン回路を参考に作ったのでシリアルチップが68系のMC6850です。
SBC8080で8251を使っていたので、やっぱりZ80に80系のシリアルをつなげてみたくなりました。
ブレッドボードZ80マイコン 再配線
8255Aをつないだりして実験していた関係もあり、ジャングル配線になって なにやら不安定っぽかったブレッドボードZ80マイコンですが、秋月電子から通販で買ったブレッドボードx3構成に作り直してみました。
GWごろ作ったZ80 ブレッドボードマイコンですが、配線がジャングルだったので、作り直してみました。結局配線はジャングルだけどちょっとだけ整理できたかも…
ブレットボードは秋月電子で買ったちょっとだけ ましなやつに変更したので線が抜けづらいです。あと、ワイヤストリッパー最強。 pic.twitter.com/sUEBTOBPsY— KUNI-NET元シソペ (@kuninet) July 6, 2018
GWごろに作ったときより、だいぶ短いケーブルでつなぐことができた気がします…^^);;
ワイヤストリッパーも手に入れたので配線スピードがだいぶ上がりました。
シリアルLSIを8251へ
やっぱりZ80なので80系のシリアルチップで動かしてみたい!ということで、SBC8080の部品を買う時に買ってあった8251をつないでみます。
回路はほぼSBC8080のサブ基板といっしょです。
- データバスをD0-D7を接続しました。
- チップ選択信号 CSはいつもの74HC138でA13〜15をデコード。
- 読み/書き(RD、WR)は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進数で定義する作戦としました。
変更箇所は以下の初期化部分です。(画像ですいません…)
この変更で無事 受信割り込みが動くようになりモニターが使えるようになりました!!
コメント