トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第121回]
●[HC373]の動作テストでトラブルが発生
前回からの続きです。
[HC373]基板のビット7回路のみにトランジスタを実装し完成させてテストしたところ、正常に動作することが確認できました。
次にビット6にもトランジスタを実装してテストをしました。
”1”を書き込んだところまでは順調だったのですが、”0”を書き込んだところ、ND80Z3.5が暴走してしまいました。
[HC373]のテストはND80Z3.5の拡張バスに[HC139]を接続して、さらにその外に[HC373]を接続して行なっています。
[HC373]の回路図は前回もお見せしましたが、もう一度お見せします。
点線で囲んだところは1ビット分の回路です。
回路図ではDinとDoutは離れていますが実際の回路ではつながっていて、ND80Z3.5に接続したときには、Din、DoutはND80Z3.5のデータバスに直接つながります。
前回も説明しましたが、丸で囲んだAのトランジスタはCS_とOE_がアクティブになったときだけにONになります。
それ以外のときは丸AのトランジスタはOFFですから丸Aのドレイン(丸Bのソース)のラインはハイインピーダンスになるはずなのですが、実際にオシロで見てみるとしっかりデータラインの波形が出力されてしまっています。
前回このくだりを書いた時点では、私はてっきりこの現象はMOSFETのミラー容量のせいだと思っていました。
MOSFETのミラー容量については[第52回]で書きました。
丸Bの2N7000のミラー容量のために、ソース同士を接続したラインを伝って隣のビットに干渉したと考えました。
本日になって、その考えが間違っていたことに気付きました。
よくよく考えてみれば、最初”1”を書き込んだときにはなんともなくて、”0”を書き込んだら、ND80Z3.5に影響が及んだ(おそらくデータバスのビット同士に何らかの干渉が生じた)、というその理由はミラー容量では説明できません。
ま、しかし、原因はさておいて、これは何とかしなければこのままでは使い物になりません。
ともかくソース同士がつながっているので、その縁を切ってみよう、といささかあてずっぽうだったのですが、丸Bの2N7000のソースにダイオードを追加してみました。
基板は出来上がってしまっていますので、窮余の一策です。
原因についての考えは間違っていたのですが、たまたま対策は当たっていました。
ビット7とビット6の丸Bの2N7000を上の写真のものに取り替えたところ、ND80Z3.5は正常に動作するようになりました。
もう”0”を書き込んでもND80Z3.5が暴走したりはしなくなりました。
そこで残りのビットもトランジスタを実装しました。
この写真では”FF”を書き込んでいますが、”00”を書き込んだときもND80Z3.5は暴走したりせず、LEDは全部消灯しました。
やった!
これにて一件落着。
めでたし、めでたし。
のはずだったのでありますが…。
次回に続きます。
トランジスタでCPUをつくろう![第121回]
2015.9.1upload
前へ
次へ
ホームページトップへ戻る