トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第310回]
●出力ショート電流対策
いままで書いてきましたようにバイポーラトランジスタ版ロジック回路組立キットでは入力オープンの状態では出力ショート電流が流れます。
かなり大きい電流で基板全体ではTR00などでは約20mAほども流れてしまいます。
前回テストしたTR86ではさらに大きくて33mAも流れてしまいます。
入力回路につけた10KΩのプルアップ抵抗のせいで入力電圧が中間電位になってしまい、そのために出力トランジスタの2SA1015と2SC1815が両方ともONになってしまうことがその原因です(詳しくは[第296回]、[第300回]を参照願います)。
以前作りましたMOSFETのロジック回路では入力をOPENにすることはできません。
MOSFETは電圧駆動のため入力をOPENにすると入力がハイインピーダンスになって中間電位付近でふらつくとPチャンネルとNチャンネルのFETが両方ともONになってしまうため大きな出力ショート電流が流れて最悪の場合素子破壊につながります。
しかしバイポーラトランジスタは電流駆動なので入力OPENでも入力電流(ベース電流)が流れなければMOSFETのような問題は起きません。
その意味ではプルアップ抵抗は必要ありません(確かにノイズ対策としてつけておくほうがよいとも言えるのですが)。
それではなぜプルアップ抵抗をつけているのかと言いますと、その理由は[第295回]に書きましたように入力がない場合は入力=Hと考えて、そのときでも入力回路のLEDを点灯させるためです。
プルアップ抵抗がないと入力回路のLEDは点灯しません。
トランジスタロジック回路にも電流は流れませんから出力回路の赤色LEDも点灯しません。
ロジック回路としてはそれはちょっと都合が悪いわけです。
プルアップ抵抗は必要でした。
詳しくは[第325回]で説明していますのでそちらをお読みください。
プルアップ抵抗をつけることで入力回路のLEDを点灯させるとともにロジック回路の2SC1815もONにするという一石二鳥のアイデアのはずでした。
当初はよい考えを思いついたものと思っていたのですが、まさかそのために入力が中間電位になって2SC1815だけではなくて2SA1015までもがONになってしまうとは思ってもみませんでした。
要は2SA1015がONになってしまうのが原因ですから、入力電圧がVccに近くなれば問題は解決するはずです。
なぜ入力電圧が中間電位になってしまうかといいますとVcc側に10KΩのプルアップ抵抗があって、GND側には22KΩ+青色LEDがあるからです。
プルアップ抵抗を小さくすればよいのですけれど、そうすると入力がLレベルのときにそれだけ大きな電流が流れてしまいます。
それはできれば避けたいところです。
となると逆に22KΩの側を大きくするしかありません。
(後になってからわかってくることですが、ここから迷走がはじまりました)
しかし。
22KΩでもLEDに流れる電流は数十μAのオーダーです。
それ以上抵抗を大きくしたらLEDが点灯しなくなるのではないか?
ここは試してみるしかありません。
Vcc=4.5Vで抵抗を100KΩにしてみました(下の回路図)。
なんとわずか20μAしか流れていません。
やや暗いのですけれど、それでも点灯していることはわかります。
これならLEDの側の抵抗値を大きくできそうです。
それではどのくらいの大きさにすればよいか、今度は抵抗の大きさとそのときに2SA1015のエミッタコレクタ間に流れる電流を測ってみました。
TR04基板を利用して直接2SA1015のコレクタ電流を測れるようにしました。
下がその回路図です。
まずは現在の回路と同じR4=22KΩで測定してみました。
2SA1015のコレクタ電流は2.48mAです。
これが現在のロジック回路基板のショート電流に相当します。
1個の2SA1015に流れるショート電流ですからTR00の場合にはその8個分、2.48×8=19.84mAのショート電流が流れるという計算になります。
トランジスタのhFEにはばらつきがあると思いますからいつも計算通りになるとは言えませんがTR00の実測値に近い数字かと思います。
測定のために組んだTR04基板の部分を拡大しました。
いちいちR4の抵抗を取り替えて測定するのも手間ですから抵抗値ごとに回路を実装しました。
左側がR4=22KΩの回路で右側はR4=51KΩの回路です。
今度は右側のR4=51KΩの回路で測定しました。
半減とまではいかないまでもかなりショート電流が減少しました。
それでもまだ1トランジスタ回路あたり1mA以上流れています。
このくらいの抵抗値にしたらてっきり流れなくなるのではないかと期待したのですが…。
ものは試しです。
それではということでもう1回路、R4=100KΩの回路を追加して作って測定してみました。
一番右側の回路です。
左側の2回路に比べると青色LEDの明るさがやや落ちるようですが見えないほどではありません。
電流は0.93mAです。
やっと1mAを切りましたがまだ流れていますねえ。
青色LEDの側の抵抗を22KΩ→51KΩ→100KΩと大きくした割には2SA1015のコレクタ電流(=ショート電流)の減り方が今一つなのがちょっと疑問です。
それはそうとして、せっかく測定用の回路を組んだことですから、ほかの数値についても測定してみました。
確認しておきたいのは入力Aの電圧です。
プルアップ抵抗とLEDの電流制限抵抗との分圧比が変わってきますからA点の電圧も変わってくるはずです。
まずはR4=22KΩのときの入力Aの電圧です。
3.647Vです。
これは以前に測った値とほぼ同じです。
次はR4=51KΩの回路の入力Aの電圧です。
3.811Vです。
あれ?
余り高くありません。
もっと高い電圧になると思ったのですけれど…。
最後にR4=100KΩの回路の入力Aの電圧を測りました。
あれえ?
ほとんど変わりませんね?
なぜだぁ?
さらにあれこれテストをしたり確認したりしているうちにやっと気が付きました。
おばかでありました。
落としてはならないもうひとつのファクタがあったのでした。
次回に続きます。
トランジスタでCPUをつくろう![第310回]
2021.3.3upload
前へ
次へ
ホームページトップへ戻る