トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第329回]
●トランジスタの逆接続
前回からの続きです。
前回書きましたようにTR126回路でA=0、E=0のときに出力LEDが薄く点灯してしまいます。
最初は出力トランジスタ2SA1015(T1)からの漏れ電流かと思ったのですが、なんとその電流は2SC1815(T2)のベースからコレクタを経由して出力されていました。
この問題はもう何回もぶつかっていい加減頭に入っていたつもりだったのですが、すぐに忘れてしまいます。
ほんとに歳は取りたくないものです。
回路図をながめていましたら、A=0、E=0のときに出力トランジスタの2SC1815(T2)が逆接続状態になっていることに気が付きました。
TR126の回路図で説明します。
入力Eが0のときはT3とT4がOFFになります。
すると出力回路のT1とT2はVccとGNDから切り離されてVccからもGNDからも浮いた状態になります。
当然出力はハイインピーダンスになると思ったのですが。
バイポーラトランジスタのちょいと困った特性のことをうっかり忘れてしまっていました。
入力Aが0の場合にはT5がONになります。
E=1のときはT3とT4がともにONになるので出力段のT1、T2は普通の動作になりT2がONになって出力が0になります。
しかしE=0のときは上の回路図のように出力回路とGNDの間が抵抗などでつながっていると、そこに→の向きに電流が流れてしまいます。
通常の接続のようにT2のエミッタが(T4を介して)GNDに接続されている場合にはT2は普通のトランジスタの動作になってベースからエミッタにベース電流が流れると同時にコレクタからエミッタに増幅された電流が流れます。
ところがそれとは逆にコレクタがGND側に、エミッタがVcc側に接続されている場合でもトランジスタとして働いてしまいます。
それがトランジスタの逆接続です。
その場合には通常の接続とは逆にエミッタからコレクタに電流が流れます。
もっとも普通の接続に比べて増幅率はかなり低下します。
問題は今回の場合のようにエミッタがオープンの場合です。
そこをうっかりしておりました。
その場合でもベース電圧がコレクタ電圧よりも高いとベースからコレクタに逆電流が流れてしまいます(エミッタがオープンなのでエミッタからコレクタに電流は流れませんが)。
以上はT2(2SC1815)についての説明ですが、T1(2SA1015)についても全く同じことがいえます。
2SA1015の場合にはコレクタがVcc側に、エミッタがGND側に接続されていてベース電圧がコレクタ側よりも低いとコレクタからベースに向かってベース電流が流れてコレクタからエミッタに逆電流が流れます。
エミッタがオープンの場合にはコレクタエミッタ間には電流は流れませんが、コレクタベース間には電流が流れます。
このこと(トランジスタの逆接続)については[第200回]で詳しく説明していますのでそちらもお読みください。
TR126回路のようにその状態がどうしても避けられない場合に、それを回避するには[第201回]で書きましたようにコレクタエミッタのラインにダイオードを挿入します。
[第201回]ではエミッタから流入する逆電流を阻止するためにエミッタ側にダイオードを入れましたが、今回はエミッタが開放状態のときにベースコレクタ間に流れる逆電流を防ぐことになりますから、コレクタ側にダイオードを挿入します。
そのように考えて変更した回路図です。
TR126回路基板に手を加えてダイオードを追加しました。
とりあえずの動作テストですから左端の1回路だけ変更しました。
変更後の回路でE=0、A=0のときに出力XをGNDにショートさせてそのときの電流を測ってみました。
漏れ電流はなくなりました。
逆にXをVcc(4.6V)にショートさせました。
この場合にはわずかに電流が流れます(0.13mA)。
22KΩを通して赤色LEDに電流が流れるためです(赤色LEDが点灯しています)。
そのことを計算で確かめてみます。
赤色ダイオードのアノードの電圧は前回測定しました。
1.648Vです。
X出力をVcc(4.6V)に接続しましたから、そのときに抵抗R15(22KΩ)の両端の電圧差は
4.6−1.648=2.952V
です。
抵抗R15(22KΩ)に流れる電流(=赤色LEDに流れる電流)は
2.952/22=0.134mA
です。
実測値と一致しました。
以上のことからダイオードを追加したことでE=0、A=0のときに逆電流が流れなくなったことが確かめられました。
しかしよいことだけではありません。
ダイオードを追加したことで出力がONのときのH電圧がVccよりダイオード1個分低くなり、L電圧はGNDよりダイオード1個分高くなります。
E=1、A=0のときにXとVccとの間の電流を測りました。
T2がONになっています。
そのままだとショートしてしまいますから間に1KΩの抵抗を入れて測定しました。
普通のロジック回路なら4.6mA流れるはずですがダイオードがあるために電流がそれよりも少なくなります。
Xの電圧を測りました。
ダイオードのために0.7〜0.8V浮き上がってしまいます。
1KΩ抵抗の両端の電圧差は
4.6−0.786=3.914V
です。
計算上は1KΩを挿入したときに流れる電流は約3.9mAです。
実測値は3.8mAほどですからほぼ計算と一致しています。
E=1、A=1のときにXとGNDとの間の電流を測りました。
T1がONになっています。
そのままだとショートしてしまいますから間に1KΩの抵抗を入れて測定しました。
普通のロジック回路なら4.6mA流れるはずですがダイオードがあるために電流がそれよりも少なくなります。
Xの電圧を測りました。
ダイオードのために0.7〜0.8V低くなってしまいます。
1KΩの両端の電圧差は3.768Vです。
計算上は1KΩを挿入したときに流れる電流は約3.8mAです。
実測値は3.7mAほどですからほぼ計算と一致しています。
ということで出力電圧はHのときはVccよりも0.7〜0.8V低くなり、Lのときは0.7〜0.8Vになりますが、逆電流を防ぐためにはやむをえないことでしょう。
トランジスタでCPUをつくろう![第329回]
2021.3.23upload
前へ
次へ
ホームページトップへ戻る