リセットとは?

 

リセット

リセットとは,マイコン内部のCPUやSFR(Special Function Register),その他のフリップフロップを初期化する処理です。
SFRとはマイコン内部のペリフェラルを制御するフリップフロップ群です。CPU内部にもレジスタというフリップフロップ群が存在します。
その他,順序回路でフリップフロップが使われています。これらフリップフロップによって各ペリフェラルやCPUが制御されています。
フリップフロップは一種の記憶装置でラッチ回路の構成をしています。ここでフリップフロップの近似回路であるラッチ回路の構成図を示します。

CPUやSFRにあるフリップフロップの近似回路

このラッチ回路の構成をみると,安定状態は出力端子が“H”のときと“L”のときの2つあることが
わかります。もし,万が一,ノイズなどでフリップフロップの値が変わり期待通りではなくなった場合,
各ペリフェラルやCPUは制御できていない状態すなわち暴走状態となります。

また,それだけではなく,電源起動時にも暴走状態になる可能性があります。
電源起動時においてラッチ回路の出力端子は“H”と“L”のどちらが出力されているでしょうか。
実は,電源起動時,ラッチ回路の出力は不定で,出力端子が“H”もしくは“L”のどちらになるか
わかりません。

このままでは電源起動と同時にマイコンやペリフェラルが暴走してしまいます。そこでこれら暴走を
防ぐため,電源起動時にCPUやSFRにリセットをかけます。ここで電源起動時にかけるリセットを
POR(パワーオンリセット)といい,パワーオンリセットなどリセットをかける要因をリセット要因といいます。
一般的なリセット要因として,パワーオンリセット,リセット入力端子リセット,ウォッチドッグタイマによる
リセットなどがあげられます。
また下図に示すリセット回路全体を見てみますと,それぞれのリセット要因のどれかがリセットが
かかれば必ずCPUやSFRがリセットされる回路構成をしています。

 

パワーオンリセット

パワーオンリセットは電源起動時に不定のCPUやSFRにリセット信号を出力する,
または電源遮断時にもリセット信号を出力するリセット要因です。当初パワーオンリセットは
電源起動時のみリセットをかける仕様のものがほとんどでしたが,電源低下や電源低下後の
電源再投入によりマイコンが暴走していました。
これを防ぐために,マイコンにはリセットICが必須でした。
昨今は電源遮断時にもリセットをかけるものが増えてきており,リセットICが不要なマイコンも
増えてきています。

リセット入力端子によるリセット

リセット入力端子リセットは外部端子によりリセットをかけるリセット要因です。
リセットボタンを持つ機器のリセットに接続されます。
そのほかパワーオンリセットによるリセットが十分でない場合に,リセットICを接続する端子です。
リセットをかける場合,リセット端子に“L”をある区間入力する必要があります。
逆にリセットを解除する場合,すなわち通常動作時は,リセット端子を“H”にする必要があります。
そのため,リセット端子にプルアップ抵抗が内蔵されている場合や,外部にプルアップ抵抗を
必要とする場合があります。

 

ウォッチドッグタイマによるリセット

ウォッチドッグタイマによるリセットは,ウォッチドッグタイマ内のカウンタのオーバーフローによる
リセットをかけるリセット要因です。
以前説明した通りウォッチドッグタイマ内のカウンタは,プログラムによって周期的に
初期化されていますが,そのカウンタがオーバーフローするということは,プログラムが
正しく動いていないことと想定されます。
つまりプログラムが暴走していると判断して,その場合に割込みやリセットをかけます。