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

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


[第238回]



●シュミットトリガ回路

「トランジスタ技術」5月号の付録基板にはシュミットトリガ回路基板(74HC14の1ゲート相当)が含まれています。
しかし私が今準備中の新トランジスタロジック組立キットでは74HC14相当の回路基板キットは考えていません。
シュミットトリガ回路は通常は外部接点入力のチャタリング防止かまたは上昇下降の勾配がゆるやかな信号入力に使われます。
CPUのロジック回路では本来は不要なものです。

そう思って「トランジスタ技術」5月号の特集記事をよく読んでみましたら、I/O回路で外部入力のところで使っているようです。
おそらくは外部にスイッチをつなぐなどする場合を想定してのことと思います。
なにしろ「トランジスタ技術」の特集ですからトランジスタ回路としてのあれこれを解説するのもひとつの目的かと推察します。
同誌のトランジスタ版シュミットトリガ回路はトランジスタ6石で構成しています。
5ページに渡って説明してありますが、ちょっと理解するのはむつかしいかなあという感じです。
私としてはちょっと読む気にはなりません。
感覚的には多分こういうことだろうなあと理解したつもりです。
本音を言いますと、こんな面倒な回路はいやでございます。

そういうことなので、私としてはトランジスタ版シュミットトリガ回路はやりません、というつもりだったのですけれど。
当記事の読者様といたしましては、ひょっとすると、やっぱりそれもやってほしいなあ、とお思いかもしれません。
そこで思い直して当記事としてもトランジスタ版シュミットトリガ回路について書くことにいたしました。

と言いましても「トランジスタ技術」誌とは切り口が違います。
私としてはトランジスタでCPUを作ることが最終的な目的でありまして(「トランジスタ技術」5月号のコンセプトもそうだと読み取れるのでありますが)、なにがなんでも74HCシリーズの完全トランジスタ化にこだわる、なんてことは毛頭考えてはおりません。
そこのところはもう少しゆるーく、も少し自由に考えております。
ですので一旦トランジスタ回路から離れて考えてみることにします(そのうち戻ってきます)。

74HCシリーズで回路を構成する場合、シュミットトリガ回路が必要なところには74HC14を使うのが一般的でありましょう。
74HC14は1個のICのなかに6ゲート入っています。
もしもシュミットトリガ回路が1回路しか必要でないとしたら、これはいかにも勿体無い使い方になります。
そんなときにもしも回路内に74HC04が2ゲート余っていたならば。
そんなときには私なら74HC14を使う代わりにその74HC04を使うことを考えます。
下はND80Z3.5のCPU周りの回路図です。

図中左の真ん中あたりにあるIC7(74HCU04)が74HC04を使ったシュミットトリガ回路です(ここでは74HCU04を使っていますがどちらでも同じです)。
この回路はずっと昔のいつのころからか使い始めて今でも使っている回路です。
こんな回路を自分で発明したわけはないので、多分なにかの記事を参考にしたのだろうと思います(おそらくは「トランジスタ技術」)。
それで確認のためにgoogle様で「74HC04 シュミットトリガ」で検索してみたのですが全然出てきません。
みんな74HC14です。
でしょうねえ。
さらに検索したらやっとヒットしました。
あれま。
当プログ風記事のなかで以前にこの私めが書いたものじゃありませんか。

うむむ。
今やこういう回路を使っているのは私だけか。
ちょっと心配になってきました。
本当にこの回路で大丈夫か?
ずっと長い間当然のように使ってきましたので、そんなことなどまともに考えたことはありませんでした。
ということであらためて回路の動作を検証してみました。

下は上の回路からシュミットトリガ回路のみを取り出したものです。

C12のコンデンサがありませんが、原理的には不要なものなので省いてあります。
実際の回路ではHC04が速過ぎてこのような回路でも誤動作することがあるためにつけています。
R2で出力から入力にゆるいフィードバックをかけています。
R1の抵抗値はR2との抵抗比で決定します。
ここではR1:R2=1:10にしています。

さてそれでは回路の動作の説明です。
A点が入力でC点が出力です。
B点は前段のインバータ(HC04)の入力ポイントです。
最初に入力がHレベル(+5V)であるところからスタートすることにします。
このときはA=B=C=5Vです。

そこから入力電圧がゆっくり下がってきてB点がインバータ(HC04)のスレッショルド電圧まで下がってきたときを考えます。
74HC04のスレッショルド電圧は1/2VDD=2.5Vです。

さてこのときのA点の電圧はいくらでしょう?というのが問題です。
中学校の理科で習う抵抗分圧の問題です。
これは簡単でしょう。
AB間の電圧:BC間の電圧=1:10
ですからAB間の電圧は0.25Vになります。
問題の答えです。
A点の電圧は2.5V−0.25V=2.25Vです。

ということはA点がはじめに+5Vであったとき、そこから電圧値が徐々に低下して74HC04のスレッショルド電圧の2.5VになってもB点はまだそれより少し高い電圧なので出力は変化しません。
A点が2.25Vよりも低くなったときに初めてC点が0Vになります。
するとこの瞬間に回路に劇的な変化が起きます。

A点は2.25Vよりも少し低い値になったという設定ですが計算の都合で2.25Vにします。
C点は5Vから0Vに変化します。
するとA点とC点の中間点BはR1とR2の抵抗分圧によっていきなりなんと2.05Vまで低下してしまいます。
いきなりスイッチが入ってしまったような状態です。
こうなるとこの状態からC点がふたたび+5VになるためにはB点の電圧が2.05Vから2.5Vを越えるところまで上昇する必要があります。
そうなるにはA点は現在の2.25V以下からかなり高い電圧まで戻らなければなりません。
言い換えれば入力がスレッショルド電圧付近で少しぐらいふらついても一旦入力がスレッショルド電圧をまたぐと、それによって出力が変化したときにはその出力は安定した状態を保つことが期待できます。
その期待を確実にするために今度は逆の場合について考えてみます。

上の状態から考えてもよいのですが、わかりやすくするために今度は入力が0Vからゆっくり+5Vに向かって上昇している場合について考えてみます。

スタート時点の電圧はA=B=C=0Vです。
そこから入力電圧がゆっくり上がってきてB点がインバータ(HC04)のスレッショルド電圧まで上がってきたときを考えます。
74HC04のスレッショルド電圧は上で書きました。
1/2VDD=2.5Vです。

さてこのときのA点の電圧はいくらでしょう?というのが問題です。
さきほどと同じ考え方で解ける問題です。
AB間の電圧:BC間の電圧=1:10でした。
AB間の電圧はさきほどと同じで0.25Vになります。
問題の答えです。
今度はA点の電圧は2.5V+0.25V=2.75Vになります。

ということはA点がはじめに0Vであったとき、そこから電圧値が徐々に上昇して74HC04のスレッショルド電圧の2.5VになってもB点はまだそれより少し低い電圧なので出力は変化しません。
A点が2.75Vよりも高くなったときに初めてC点が5Vになります。
するとこの瞬間にまたしても回路に劇的な変化が起きます。

A点は2.75Vよりも少し高い値になったという設定ですが計算の都合で2.75Vにします。
C点は0Vから5Vに変化します。
するとA点とC点の中間点BはR1とR2の抵抗分圧によっていきなりなんと2.95Vまで上昇してしまいます。
こうなるとこの状態からC点がふたたび0Vに戻るためにはB点の電圧が2.95Vから2.5V以下になるところまで下降する必要があります。
そうなるにはA点は現在の2.75V以上のところからかなり低い電圧まで戻らなければなりません。

以上をまとめます。
入力が2.5Vよりも高い電圧から下降する場合には入力が2.25V以下まで下がらなければ出力は変化しません。
逆に入力が2.5Vよりも低い電圧から上昇する場合には入力が2.75V以上まで上がらなければ出力は変化しません。
つまりこの回路は入力が下降する場合と上昇する場合とで異なるしきい値をもつ回路であるといえます。
ということで上の回路はしっかりとシュミットトリガの働きをしていることが確かめられました。
さらに言いますと、上で説明しましたようにそのしきい値を求める計算は中学校の理科で習う程度の計算です。
抵抗比を選べば暗算でもできてしまいます。

さて。
74HC04をトランジスタ化した回路は前回のTR04です。
それでは上の回路をTR04で置き換えた場合にもシュミットトリガとして働いてくれるでしょうか?

次回に続きます。

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

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