アフィリエイト広告
アフィリエイト広告

ダイオード・トランジスタを使った論理回路

ダイオードとトランジスタを使った論理回路です。

ダイオードとトランジスタで構成される方式の論理回路を DTL (Diode-transistor logic)、トランジスタで構成される方式の論理回路を TTL (Transistor-transistor logic) と呼びます。
いまじゃほとんど利用することもないです。いやいや、ちょっとそれっぽい回路がほしいときに、仕組みを知っていると重宝したりするんですって。

DTL – NAND 回路

図1. DTL – NAND 回路

DTLな NAND回路です。

点線枠で囲った部分が NANDゲート。電源は 5V、入出力も 5Vです。
左側は、テスト用の入力回路。Arduinoなんかの出力でもいいです。右側は出力確認の LED。お好みでどうぞ。

出力電流はせいぜい ±2mA。ベース抵抗 15KΩを小さくして電流増やす方法もあるけど、入力側の電流も大きくなるのでご注意ください。コレクタ抵抗 1KΩを取っ払って、オープンコレクタにするってのもアリ。プッシュプルとかにするぐらいなら、IC使ったほうがいいんじゃないでしょうか。

トランジスタのベース側のダイオードはレベルシフト用で、1個は入れておかないと、入力が不安定になります。2個直列に入れると入力レベルが 1.2Vに上がりますので、本当は 2個入れるのがおススメ。

DTL – NOR 回路

図2. DTL – NOR 回路

NANDと双璧をなす NOR回路です。

入力が 2Vのとき、ベース電流は 0.3mA弱。シンクなら 10mAほど流せる計算になるけど、無理しないほうが吉。ベース抵抗は、5V入れたときのことも考えておきましょう。

DTL – AND 回路

図3. DTL – AND 回路

NAND回路の入力端子を 1個だけにすれば NOT回路になります。それを NANDにつなげただけの AND回路。

NANDの出力側に、もう 1個トランジスタをつけるとか、エミッタから出力するとか、ってのもアリですが、いつものように、同じ設計の回路をつくるほうが楽、という俺の思想によります。

DTL – OR 回路

図4. DTL – OR 回路

ANDと同様に、NORに NOTをつなげて OR回路。

NORの入力を 1個にした NOTを使う手もあります。そのほうがスマートかも。
もちろん、NOT 2個と NANDの組み合わせもアリです。

DTL – XOR 回路

図5 は、ついでにつくってみたXOR (排他的論理和) 回路です。NAND 4個の構成です。

図5. DTL – XOR 回路
図6. ダイオードを使った XOR 回路

でもねぇ、ダイオードブリッジを応用した図6 のような XOR回路があったりする。こっちのほうが断然簡単です。

入力が HIGH と LOW になると、HIGH がエミッタに、LOW がベースにつながってトランジスタがオン、出力が HIGH になる。入力が HIGH-HIGH または LOW-LOW のときはオフで、出力は LOW になる、という仕組みです。

トランジスタに 2N3906 使ってますが、いつもの PNP 2SA1015 でいいです。NPN 2SC1815 で同じようにつくれば、XNORになる、かも。

TTL – NAND 回路

図7. TTL – NAND 回路

TTLといっても、基本は DTLと変わりないです。ダイオードをトランジスタに置き換えたって感じ。

左の押しボタンとトランジスタは、テスト用の入力回路です。押しボタンを押すと HIGH が入力されます。

入力が LOW のとき、入力トランジスタのベースからエミッタへ電流が流れてオン。次段のトランジスタはオフです。入力が HIGH になると入力トランジスタは逆トランジスタになり、ベースからコレクタへ電流が流れます。A、Bともに HIGH のとき次段がオン、出力が LOW になります。

出力トランジスタを前段のエミッタにつなげて、入力レベルを 1.4Vほどにあげています。DTLのときと同様に、コレクタ抵抗を取っ払ってオープンコレクタにするのもアリです。

入力トランジスタを 1個にすれば、NOT回路になります。回路は省略。

TTL – NOR 回路

図8. TTL – NOR 回路

TTL – NAND回路と同様ですが、次段トランジスタを並列につなぐことで OR回路にしています。
基本的な動作は NAND回路と同じです。

TTL – シュミットトリガインバータ回路

図9. シュミットトリガインバータ回路

シュミットトリガは論理回路に含まれるのか、ちょっと疑問もありますが、よく使うのでつくっておきましょう。

入力はアナログ信号だったりするので、テスト用にボリュームをつけてます。

入力が LOW のとき、1段目トランジスタはオフ。2段目がオンになって出力は HIGH。このとき、エミッタ電圧 VE は、ベース電流を無視して、

VE = 5 x 1 / (1 + 2.2) = 1.56 [V]

になっています。
入力電圧 (ベース電圧) が上昇して 2.26Vを超えると、1段目がオン、2段目がオフになって出力は LOW になる。同時に、エミッタ電圧が

VE = 5 x 1 / (1 + 33) = 0.15 [V]

に落ちます。入力電圧が下降して 0.85Vを下回ると、1段目がオフ、2段目がオン、出力が HIGH になる。
ということで、入力電圧の上昇時は 2.26V、下降時は 0.85Vで動作するヒステリシスを持ちます。

後記

冒頭にも書いたけど、いまじゃこんな回路使わんじゃろ?なんて思うなかれ。

たとえば、2つの出力を簡単に ORしたい、なんてときに利用されるのがワイヤードOR なんだけど、プッシュプルな出力だったらどうする? それぞれにダイオード入れて OR回路を組めば終わる。前にやったリングカウンタ回路 (過去記事) を 8ビットにしようとすると、7入力NOR が必要になるんだけど、どうする? ダイオード 7個並べりゃすむ。
もちろん高速な回路ではむずかしいけれど、俺がつくってる論理回路ていどなら、利用できるシーンはいくらでもあるんです。

タイトルとURLをコピーしました