2016.10.1
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
CRTインターフェースボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第26回]


●ああ、リフレッシュ

前回はND8080のためにMEMWをもとに遅延回路をつくったものをまたもとに戻してしまって、結局スイッチを使ったシンプルな回路に落ち着きました。
それで済ませてしまおうと一度は思ったのですけれど、やっぱりなんとかできないものかと。

実は前回の回路にはまだ穴があったのです。
ええ。
それはわかっていたのですけれど、これはもうしょうがないかと一度は諦めてしまおうと思いました。

前回の回路でND80Z3.5を接続すると、下のような波形になりました。

上側(CH1)がビデオRAMのpin27(WR)で、下側(CH2)は74HC245のpin19です。
そのpin19へはMREQから作ったセレクト信号が入っているのですが。
WRと連動している真ん中の波形のほかに左右にも余計な波形が出ています。
最初はなんじゃこりゃ、と思ったのですが、やがて思い当たりました。
ダイナミックRAMのためのリフレッシュでした。

Z80ではダイナミックRAMのリフレッシュを簡単に行なえるように、命令の内部処理期間を利用してアドレスの下位7ビットを変化させます。
そのときにRFSHとMREQをアクティブにします。
上の余計な波形はそのリフレッシュだったのですが、MREQからこのリフレッシュを取り除くためにはRFSHをインバートしてMREQをゲートしなければなりません。
RFSHなんてバスコネクタには出してありません。

うむむ。
どうしよう。
実際にND80Z3.5を接続して表示画面の様子を見ても、リフレッシュの影響は出ていないように思えましたので。
ちょっと気持ち悪いけれど、ここは仕方がないということで手を打ちましょう。
ということで、前回の回路になったのでしたが。
やっぱりこういう仕舞い方はどうにも気持ち悪いのですよね。
本当は自分自身が全然納得しておりません。

どうにも諦めきれないものですから、お風呂に入りながら、もう一度考えておりましたら。
なんだ。
簡単じゃないか。

Z80ではせっかくのMREQを使いたいということで自縄自縛に陥っておりました。
前回の検証によって、MEMWだけからアドレス、データの切換え信号を作っても問題が無いことがわかってND8080ではそのようにしたのですから、ND80Z3.5でも同じようにすればよかったのでした。
下が最終回路です。

74HC32を使えばすっきりまとまるのですが、残念ながら空きがある74HC32は基板の反対側にあるのでそこまで配線を引き回すよりは、たまたま近くで空いていた74HC04と74HC10を使ったほうがよいと判断したため上の回路になりました。

上の回路にした結果、74HC245のpin19の入力波形から余計な波形が消えました。


時間軸を拡大しました。

下側(CH2)の立ち上がりは少し遅延しているように見えます。

もう少し拡大してみました。

10ns程度の遅延ですけれど、ここは0nsでもよいとされるところですから、これで問題はありませんでしょう。

念のためにもう一度ND8080を接続してみました。


こちらも時間軸を拡大してみました。

CPUクロックが異なるためビデオRAMへのWR信号のパルス幅は異なりますが、どちらも立ち上がりの様子は同じです。

これにて。
やっと一件落着です。

で。
ND80ZVはどうする?
MYCPU80は?

CRTインターフェースボードの製作[第26回]
2016.10.1upload

前へ
次へ
ホームページトップへ戻る