標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第56回]

●リセット回路

今まではCPUの内部の回路について説明をしてきましたが、今回はちょっと周辺に目を向けてみたいと思います。
そこで、今回はリセット回路について、説明をします。

リセット回路はCPU回路には無くてはならない大切な回路です。
リセット信号の入力によってプログラムカウンタやタイミングクロックのカウンタがリセットされ、CPUはゼロからスタートすることができます。

そのように重要な信号なのですが、一般的には、CPUのリセット端子はただのクリア端子に過ぎません。
この「つくるCPU」回路でも、ただのクリア端子にしても良かったのですが、どうせすごい数のICを使ってしまうのですから、通常ならCPUの外に作るリセット回路を、CPU回路に含めて作ってしまいました。

●RESETの回路図です



入力端子RESETINから負論理(L)のパルスが入力されると、タイミングには一切関係無く、必要な回路にクリア信号が送られます。
結構クリアしなければならない回路があります。
それは、ごく普通の回路ですから、特に問題はないと思います。
問題は、なんだか抵抗とコンデンサとダイオードが寄せ集まったおかしな回路があることです。
これは、なんでしょう?

●パワーオンリセット回路

普通のリセット回路は、押しボタンスイッチなどがつながっていて、スイッチを押すと、リセットされます。
それに対して、図のNANDゲート(74HC00)の前にある回路は、パワーオンリセット回路といいます。
電源をONしたときにだけ働く、いうならば、自動リセット回路です。

なぜ、このような回路が必要なのでしょうか?

一般に電源は、電源ONの時に0VからVcc(5V)まで瞬間的に立ち上がるのではなくて、ある時間をかけて(勾配をもって)立ち上がります。
最近の電源は技術の進歩で、一気に立ち上がるものも多くみられますが、以前は数msec〜数十msecかかって規定の電圧になるものが多くありました。
丁寧に扱えば結構長持ちするもので、私の使っている5V3Aの電源などは、いくつかありますが、どれもこれももう10年以上も前のものばかりです。
当然、最近のものに比べると、立ち上がりはゆるやかです。

そのような電源の場合、電源が投入されてから、規定電圧(5V)になるまでに、たとえば10msecかかったとすると、電圧が少しずつ上がっていく、その途中の1Vとか2Vとかというあたりでは、回路はまともに動作しません。
もちろんリセットされるわけではありませんから、あちこちの回路が、いわばでたらめの状態で、動作を開始することになります。
それでは困りますから、電源電圧が規定電圧に達して、さらにCPUの周辺の回路もきちんと準備が整うまでの間、強制的にリセットをかけておくのが、パワーオンリセット回路なのです。

回路図を見るとコンデンサ(2.2μ)と抵抗(10kΩ)で、充電回路になっています。
電源がONになると10KΩを通して、コンデンサがゆっくり充電されていきます。もちろんその速さは電源が立ち上がるよりもゆっくりしています。

抵抗とコンデンサの接合点の電圧が少しずつ上がっていくと、その電圧は別の10KΩの抵抗を介して、74HCU04ゲートに伝わります。
今回は74HCU04を使いましたが、水晶発振のために使って余っていた残りのゲートを利用しただけで、ここは74HCU04でなければならないわけではありません。74HC04でも全く問題はありません。

抵抗とコンデンサの接合点の電圧は、インバータ(74HCU04)を2段通して、NANDゲート(74HC00)のpin9に入力されます。
コンデンサが充電されて、インバータのスレッショルド電圧(約2V〜2.5V)を超えるまでは、NANDゲートのpin9の入力電圧もLレベルです。

NANDゲート(74HC00)の入力が片方だけでもLのときは、出力(pin8)はHになります。
CPU回路へのクリア信号は、NANDゲートの出力(pin8)をインバートしたものですから、pin8がHのとき、CPUの各回路へのクリア信号はLになります。
クリア信号は負論理(Lアクティブ)ですから、それぞれの回路がクリアされることになります。

10kΩを通じて入力された電圧がインバータのスレッショルド電圧を超えると出力が反転し、次段のインバータでもう一度反転して、NANDゲートのpin9に入力されます。
RESETIN端子からの入力はありませんから、NANDゲートの片方(pin10)はHです。
コンデンサが充電されて、インバータの入力がHになると、インバータ2段の出力につながっているNANDゲートの残る片方の入力(pin9)もHになりますから、NANDゲートの出力(pin8)はLになって、CPU回路のクリアが解除されることになります。

インバータ2段と、その入力と出力についている抵抗とで構成された回路は、シュミット回路です。
抵抗を通じてコンデンサを充電する回路は、電圧の上昇勾配がゆるやかです。
入力電圧が、スレッショルド近辺をあまりゆっくりした傾きで上昇したり下降したりすると、入力端子オープンに近い状態(スレッショルド電圧付近でふらふらする状態)になって、過電流が流れたり、出力にノイズ状の高い周波数波が出たりすることになって危険です。
インバータと抵抗で構成したシュミット回路によって、入力電圧がゆっくりとスレッショルド付近を上昇しても、スレッショルド電圧を超えた途端に出力が反転して、安定した動作の出力になります。

インバータの入力とコンデンサとの間に直列に入っている10kΩの抵抗は、100kΩの抵抗とともにシュミット回路のヒステリシス特性を与えると同時に、コンデンサの充放電の突入電流からゲートの入力端子を守る保護抵抗の役目も果たしています。

コンデンサとVccとの間に、抵抗と並列に入れられたダイオードは、電源がOFFになったときに、速やかにコンデンサを放電させるためのものです。

●パワーオンリセットの波形です

コンデンサの充電電圧とリセット信号出力の波形です。

上(CH1)の波形は74HCU04の入力(pin1)信号で、下(CH2)の波形はRESET(OUT)の出力信号です。
電源がONになってインバータの入力電圧が上昇し始めてから、20msec程度の間、CPU回路へのクリア信号がアクティブになっていることがわかります。
上の入力電圧が2Vを超えたあたりで、下の出力が反転しています。

電源電圧(Vcc)とリセット信号出力の波形です。

上(CH1)は電源電圧(Vcc)の波形です。約5msecかかって+5Vになっています。
それに対して下(CH2)のリセット(CPU回路へのクリア)信号は十分な期間、アクティブになっています。

参考までに、NANDゲートのもうひとつの入力(pin10)と、リセット出力の波形もお見せします。

上がRESETINに入力した信号で、下はRESET(OUT)の出力信号です。
こちらの回路は出力を遅延するようなコンデンサはついていませんから、RESETIN入力がLになると同時にCPU回路がリセットされます。
2008.9.3upload

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