トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第117回]
●[HC139]の動作テスト(原因の追求)
前回の[HC139]の動作テストでおかしな異常がみつかりました。
ま、異常ですからおかしいのは当たり前ですけれど。
おかしいというのは、ちょっと理屈に合わないようなところがあったからです。
C〜Aの入力を101にすると、出力は「5」だけではなくて同時に「4」のLEDも点灯してしまいました。
ところが入力が100のときは、ふつうに「4」のLEDだけが点灯しているのです。
同様に入力が111のときには「7」だけではなくて「6」のLEDも点灯しましたが、入力が110のときにはふつうに「6」のLEDだけが点灯しました。
ついでに言いますと、入力が000、001、010、011のときにはそれぞれ「0」「1」「2」「3」のLEDだけが点灯しました。
この時点では原因が何なのか全くわかっていませんでしたが、どうやら入力Cと入力Aがともに1のときにこの異常がおきるらしいという見当がつきました。
ということになりますと、異常の原因(おそらく配線のショート)が存在するであろう場所の範囲がかなり狭まります。
[HC139]の回路図は[第114回]でお見せしました。
それを見ていただきますとC=1のときは回路図の右半分の回路であることがわかります。
Y4〜Y7の出力回路です。
この回路のどこかに異常があるに違い有りません。
そこで目星をつけたそのあたりの配線がショートしていないかどうか手当たり次第にテスターで当たってみたのですが、わかりませんでした。
その方法では配線ショートは見つけられませんでした。
ところが意外なところから解決の糸口がみつかりました。
こうなったら長期戦を覚悟して、じっくり構えて調べてみよう、という気になって、ND80Z3.5から切り離して、[HC139]単独の状態で、回路のここぞと思うあたりをオシロスコープで調べてみるつもりで、そのようにして[HC139]を電源ONにしました。
すると。
ND80Z3.5に接続していたときとは違う異常が発生しました。
写真はG1_とG2_だけをGNDに落として、C〜Aをオープンにしたときの様子です。
[HC139]の入力は1MΩで+5Vにプルアップしてありますから、入力をオープンにすると1が入力されたことになります。
このときは111が入力されているはずです。
ND80Z3.5と接続して行なったテストでは、111を入力すると「7」と「6」のLEDが点灯しました。
ところが今回は「7」は点灯しないで「6」だけが点灯しました。
それは二重におかしいではありませんか。
よく見ますと右端の入力Aを示すLEDが消灯しています。
ちなみに中央のLEDが入力B、その左下のLEDが入力Cです。
その左は入力G2_で左端は入力G1_です。
C〜Aは1のときに点灯しますが、G1_、G2_は0のときに点灯します。
さてはプルアップ抵抗に問題があるか?
そう思って回路を調べてみたのですがプルアップ抵抗はちゃんとついています。
ところがおかしなことがわかりました。
入力Aの電圧を測ってみましたら、+5Vではなくてほとんど0Vだったのです。
どうやらこのラインに問題があるらしいことがわかりました。
念のため入力Aに+5Vをつないでみましたら。
右端の入力AのLEDが点灯して、出力は「7」と「6」が点灯しました。
入力Aのラインのどこかにおかしなところがあるというのはほぼ決定的になりました。
ひょっとして、と思って入力AとGNDとの間の抵抗値を測ってみましたら200Ωでした。
それって2N7000のゲート抵抗では?
あらためて基板を調べてみて、やっと原因をみつけました。
R14とT16の間に問題がありました。
これではちょっとわかりづらいですね。
その部分を拡大しました。
R14とT16のゲート端子をつなぐ線がGND(縦に通る太い線)とショートしてしまっています。
みっともない作図ミスでした。
矢印の2箇所を切断しました。
そして基板裏で切断したラインをつなぎました。
あらためて電源を入れてみましたところ。
直りました!
入力C〜Aがオープン(111)の状態で「7」のLEDのみが点灯しました。
今度は入力BをGNDにつないで101を入力してみました。
正しく「5」のみが点灯しました。
入力を示すLEDはCとAが点灯して、Bは消灯しています。
なお、前回のND80Z3.5と接続してテストしたときの写真では入力LEDは全部点灯しています。
それは入力がND80Z3.5のアドレスバスに接続されていて、ND80Z3.5は短いプログラムを繰り返し実行しているため、アドレスバスに接続されている信号ラインは全点灯しているように見えるからです。
ここまでは出力LEDによって出力の状態を静的に目視しただけでしたが、次に動的な回路の応答性能を見るために、入力に4MHzのパルスを加えて、出力の波形を観測してみました。
4MHzでもちゃんと応答していることがわかります。
しかし。
よく見ますと50ns程度の遅れが出ているようです。
ううむ。
[HC139]の1回路を通しただけで50nsも遅延してしまうということになりますと。
この先、命令解読のための複雑な回路を通すことを考えますと最終段では200ns〜300nsくらいの遅れは覚悟しなければならないかも知れません。
せめて4MHzで動いてほしいと思っていたのですが…。
ひょっとすると2MHzでも苦しい、ということになってしまうかも知れません。
ましかし、最後まで望みは捨てないでがんばることにいたしましょう。
トランジスタでCPUをつくろう![第117回]
2015.8.26upload
前へ
次へ
ホームページトップへ戻る