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

トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆


[第162回]



●ハイインピーダンスではありませんでした

前回、前々回で説明しましたデータラッチ回路に思い違いをしていたところがありました。
D入力回路に入れたインバータが3ステート型インバータです、と書きましたがそこのところが違っておりました。
CKがLの期間はWRV、WRGがOFFになるので(ただしWRGはVcc)、インバータ出力はハイインピーダンスになる、と考えたのですが、うっかりしていてトランジスタが逆接続の状態になることを見逃していました。

バイポーラトランジスタは逆接続の状態でも電流が流れてしまいます。
図で説明しますとこうなります。

図の左側の回路が通常の接続です。
それとは逆にエミッタにVccを、そしてコレクタにGNDを接続すると右側の逆接続回路になります。
この状態でもしっかり電流が流れます。
ただしhFEはうんと小さくなり、耐圧も低くなりますから、あえてこういう接続にするメリットはありません。
ところが今回は気が付かないままに逆接続の状態になってしまいました。

下は[第160回]でお見せした回路図です。

CKがLの期間にWRVとWRGがOFFになります。
ただしWRGはVccになりますが、このことについては後ほど書きます(実はそのことについて書こうとして、上記のことに気が付きました)。
まずはWRVとWRGがOFFだとして、そのときのことを考えます。
D入力がHで、図のB点がLならば、このときT6は逆接続の状態になって、ベースからコレクタに電流が流れます。
その電流はベース抵抗51KΩを通して流れるのでわずかですが、負荷が接続されていれば流れるのでハイインピーダンスではありません。
そのときWRGがVccに接続されているとエミッタからコレクタにも逆電流が流れます。
上の回路ではベース電流が小さくて、さらに逆接続時のhFEは数倍程度と言われているので、大きいものではありませんが、それでも負荷があれば流れるのでハイインピーダンスとは言えません。
D入力がLでB点がHならば、T5が逆接続になり、コレクタからベースに電流が流れます。
この場合の電流値もわずかですが、負荷が接続されていれば流れるのでハイインピーダンスではありません。

以上のようにCKがLのときでも出力はハイインピーダンスではありませんが、D=HでB=LまたはD=LでB=Hのときは、それ以前にラッチ出力がH、またはLになっている状態なので、ラッチ出力に影響はありません。
D=HでB=HまたはD=LでB=Lのときはベースとコレクタが同電位なので逆接続にはなりません。

たまたま今回の回路ではエミッタを電源から切り離しても逆接続の状態のときには電流が流れるので、出力はハイインピーダンスにはなりませんが、上に書きましたように、回路の動作に影響がないのは幸いでした。
以後同様の回路を考えるときには、逆接続になっても回路に影響が出ないかどうかということにも気を配ることにいたしましょう。
こうやって記事を書くのは実にしんどい作業なのですが、今回のように見落としていたり気が付かなかった重要な点に気付くきっかけになることがよくあります。
備忘録を兼ねるという気持ちもあって書いておりますけれど、それ以上の価値があるのも事実です。
やっぱりしんどくてもがんばって書くべきであると痛感いたしました。

それで。
WRGにVccが接続された状態になるということについてですが。
上に書きましたようにその場合に流れる電流値がわずかであれば、逆接続の状態でも素子に悪い影響はありません。
高い電圧を加えることはできませんが+5V程度の電圧ならば許容範囲内です。
しかしそうだとしても、できればC1815のエミッタに+5Vをかけるのは避けたいところです。
トランジスタを追加すればWRGをオープンにすることもできるのですが、トランジスタを少しでも少なくしたいという気持ちで、このような回路を選択しました。
ここにはA1015が必要なはず、と考えてのことなのですが、本当に必要なのか、はっきりと確かめたわけではありません。
やっぱり頭の中で考えただけではなくて、できるだけ実際に回路を組んで確かめてみるべきです。

上側が現行の回路です。
下側の回路ではCKの入力段のA1015を外しました。
こうすればCK=LのときでもWRGにVccはかかりません。
そのようにして、カメレオンロジアナで確認してみました。
するとやっぱり思った通り、おかしなことが起きました。

900nsを過ぎたところでPROBE00(CK、4MHz)がLになっています。
そのときはまだPROBE01(D入力、1MHz)はHなので、PROBE02(Q出力)はその後1000nsを過ぎたところでCKが立ち上がるまでH出力を維持するはずなのですが、すぐにLになってしまっています。
参考までに、下は前回お見せしたWRGにVccがかかる状態の回路でのカメレオンロジアナの画像です。

こちらでは500nsを過ぎるところまでQ出力はHを維持しています。

そういうことなのです。
CK入力回路の初段に置いたA1015は次段のA1015が速やかにOFFになるように、そのスピードアップのために必要なのです。
初段のA1015がないとCKがLになってもすぐには次段のA1015の出力がOFFにならず、その結果としてD入力回路の出力が遮断されるのが遅れて、D=Lの情報がRSフリップフロップに伝わってしまいます。
そういうわけで、CK入力部のA1015を外すわけにはいきません。
そのためCK=LのときにはWRGにVccがかかってしまいます。
どうしてもそれを避けるということになると、1つの方法としてはD入力部のT6のエミッタに下向きにダイオードを追加するという回避策もあります。
ま、しかし、上の方に書きましたように、特に悪影響はないようですので、ここはとりあえずは上に再掲した回路図のままでいくことにします。

トランジスタでCPUをつくろう![第162回]
2019.9.22upload

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