マイコンが起動するまで、なぜ時間がかかるの?:Q&Aで学ぶマイコン講座(70)(2/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「マイコンが起動するまで、なぜ時間がかかるの?」についてです。
電源投入時のリセットによる一連の動作
マイコンに電源を投入すると同時に、POR回路が動作してリセットがかかります。またはユーザーリセットでリセットをかけます。PORの場合、一定時間が経過すると自動的にリセットが解除され、マイコンの動作が始まります。ユーザーリセットの場合、ユーザーが設定したリセット期間が終了するとリセットが解除されます。しかし、リセット解除後すぐにプログラムコードが実行されるわけではありません。マイコン内部の初期化が終わって、プログラムコードをフラッシュメモリから読み出す準備ができてから、実際の動作は始まります。
STM32F429シリーズでは、この期間を「過渡期間(TRSTTEMPO)」と呼んでいます。
「過渡期間(TRSTTEMPO)」はマイコンによって異なりますが、データシートに記載されており、STM32F429シリーズの場合0.5ミリ秒から3.0ミリ秒です(図2)
図2:電源投入からプログラムが読み出されるまでの時間(過渡期間)[クリックで拡大]
STM32F427xx STM32F429xxのデータシート内、Table 22. reset and power control block characteristicsから抜粋
電源投入直後にマイコンの内部で行われている動作を時系列でリストアップすると次のようになります。
- 発振回路の起動&クロックの生成
- クロックに同期して、内部論理回路のレジスタ、フラグなどを初期化
クロックに同期して、オプションバイトの値を内部回路に設定 - クロックに同期して、内蔵電源用のチャージポンプ回路をチャージアップ
以下、各項目について解説します。
発振回路の起動
マイコンはクロックがないと、動作できません。そこで、まず行われるのはクロック生成です。
最近のマイコンは、内蔵発振回路で生成したクロックで起動します。電源が投入されてから発振回路が安定したクロックを生成するまでの時間は、数マイクロ秒です。STM32F429/439シリーズでは、遅くとも4マイクロ秒ほどでクロックが生成されます(図3)
注意
起動時のクロックに、外部の振動子で生成されたクロックを使うマイコンもあります。この場合、外部に接続された振動子の発振起動時間(発振安定時間とも呼ぶ)に依存します。発振起動時間は振動子の特性であるため、詳細については振動子メーカーに問い合わせてください。一般的にセラミック振動子の場合は数マイクロ秒から数十マイクロ秒で、水晶振動子の場合は数十ミリ秒から数百ミリ秒です。
Copyright © ITmedia, Inc. All Rights Reserved.