Renesas Synergy™

FAQ 1006825 : マイコンの電源投入からの動き

[はじめに]
マイコンを使用する場合に、起動した後の動きは比較的よく理解されていますが、そこまでの動きはあまり知られていません。ここでは、起動前の動きを中心に説明します。

[電源投入後]
マイコンに電源が投入されても直ぐに動作が可能にはなりません。電源が投入され、徐々に電圧が上昇していきますが、およそ1V程度(この電圧は製造プロセスにより異なります)までは半導体として動作しません(下図のの領域)。そこから内部のトランジスタが動作できるようになります。 この状態では、最初はあくまでいくつかのトランジスタがバラバラに動作可能なだけです(下図のの領域)。一般に、F/Fを含む論理回路は初期化されるまではその状態が不定となります(FAQの「クロックとリセット」も参照下さい)。この状態では端子の状態は不定となり、端子に異常な信号が出ることがあります。また、リセットも受け付けられません。さらに電源電圧が上昇していき、デバイス全体の回路が動作可能になると、リセットが受け付けられるようになります(下図のの領域)。



複数の電源をもったマイコンでは、電源の投入順序によっては、リセットが受け付けられる前にポートが動作を開始し、端子に予想外の信号が出ることがあります。

[リセット期間]
POCや外部からのリセット信号により、マイコンが初期化されます。これにより、内部のF/F類は初期化され、レジスタ類は初期化され、入出力ポートは入力ポートになります。また、78K0や78K0Sのマイコンではメイン・システム・クロックの発振は停止します。通常は、この期間に電源電圧をマイコンの動作可能電圧以上にあげる必要があります。

[リセット解除]
さらに電源電圧が上昇してデバイスとしての動作可能領域(上図のの領域)となります。ここで、リセットが解除されても直ぐにマイコンがプログラムを実行できる訳ではありません。動作に必要な内部の電源供給を開始すると言った処理が行なわれます。また、フラッシュの書き込みモードで起動するか、通常動作モードで起動するかの判定も行われます。
通常動作モードで起動すると、オプション・バイトが読み出され、オプション・バイトで指定した設定が有効になります。
これら一連の処理が完了して、クロックの発振が安定すると、マイコンは0番地のリセット・ベクタを読み込み、そのアドレスに分岐することでプログラムの実行を開始します。
78K0や78K0Sでは、リセット解除からプログラムの実行開始までの時間は使用するマイコンやクロックによって異なります。



[プログラムの起動]
リセット・ベクタで示されたアドレスからプログラムの実行を開始した後はフラッシュ・メモリに書き込まれたプログラムに従って処理をおこないます。アセンブラでプログラムを記述している場合には、リセット・ベクタはプログラムの先頭のアドレスを指定するように指定する必要があります。プログラムがスタートすると、通常は、作業領域として使用するメモリやレジスタ及び内蔵周辺機能の初期化を行ないます(内蔵周辺機能の初期化についてはFAQの「初期化処理」も参照して下さい)。
C言語でプログラムする場合には、リセット・ベクタスタートアップ・ルーチンのアドレスが設定され、これらの初期化処理はスタートアップ・ルーチンで処理します。内蔵周辺機能の使い方は個々のアプリケーションで異なるので、内蔵周辺機能の初期化はhdwinit関数として作成しておきます。スタートアップ・ルーチンは変数の初期化等を行なった後、main関数を呼び出す前にhdwinit関数を実行するようになっています。



hdwinit関数の処理内容についてはFAQの「最初に実行する内容について[78K共通]」も参照下さい。

適用製品

RL78 ファミリ
78K ファミリ
他にご質問がございましたら、リクエストを送信してください