マイコンが起動するまで、なぜ時間がかかるの?:Q&Aで学ぶマイコン講座(70)(4/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「マイコンが起動するまで、なぜ時間がかかるの?」についてです。
チャージポンプ回路のチャージアップ
マイコンは、いくつかの電源を内蔵しています。代表的な電源はフラッシュメモリ用電源です。フラッシュメモリの構成や仕様はマイコンによって異なりますが、一般的に読出しや書込みを低電圧で行えないので、専用電源が用意されています。マイコンの電源が1.8Vなどの低電圧でも、その電源からチャージポンプ回路によって昇圧し、フラッシュメモリ用の電源として使います。
チャージポンプは、クロックに同期しながら、少しずつ電荷を内蔵コンデンサーにためていく回路です。そのため、チャージアップするまでに時間がかかります。
チャージアップの時間は、マイコンの電源電圧に大きく依存します。低電圧であれば、チャージアップに時間がかかります。PORやユーザーリセットが解除されても、チャージアップが完了しない場合がほとんどです。そのため、チャージアップが完了するまでマイコン内部のリセットは継続され、チャージアップ完了を待ちます。
チャージアップが完了して、フラッシュメモリが動作できる電圧を供給できるようになると、ユーザープログラムをフラッシュメモリから読み出せます。
この時間は、電源投入してからユーザープログラムを読み出すまでの最大のネックとなります。
《注意》
マイコンによっては、低電圧(例1.8V)でもユーザープログラムを読み出すことのできるフラッシュメモリを搭載している製品もあります。この場合、フラッシュメモリの内蔵電源のチャージポンプ回路のチャージアップ期間は不要となるため、クロックが生成されて、内部回路の初期化が終われば、ユーザープログラムをフラッシュメモリから読み出して、実行できます。
冒頭でも述べましたが、電源投入時、リセット解除後にプログラムが実行されるまでの内部動作は、マイコンによって異なります。さまざまな仕様のマイコンがあるので、マニュアルなどで各マイコンの仕様をよく確認してください。
製品特有の機能
製品特有の機能にも、リセット期間中に設定されるものがあります。例えば、STM32F429/439シリーズには、ブートピンがあります。同じST製のマイコンでも、汎用8ビットマイコン「STM8ファミリー」には、ブートピンはありません。
ブートピンはブートモードを選択する端子です。ブートモードはフラッシュメモリにプログラムを書き込む方法です。STM32F429/439シリーズは、起動時にブートピンの状態をチェックして、ブートモードを選択します(図6)
図6:ブートピンの扱い[クリックで拡大]
STM32F405/415、STM32F407/417、STM32F427/437 およびSTM32F429/439 MCUリファレンスマニュアル(RM0090)から抜粋
ユーザーは希望するブートモードに従って、ブートピンをハイレベルまたはローレベルにしておきます。電源が投入されて、クロックが生成されたら、クロックの4番目の立ち上りエッジでブートピンの状態を内部論理に取り込み、ブートモードを設定します。ブートモードが設定された後、ブートピンは汎用IOとして使用できます。
この一連の動作も、リセット期間に行われます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- スターターキットの活用方法
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。 今回は、初心者の方からよく質問される「スターターキットの活用方法」についてです。 - 割り込みにおけるレベルセンスとエッジセンスの違い
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「割り込みにおけるレベルセンスとエッジセンスの違い」についてです。 - BCD(2進化10進数)って何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「BCD(2進化10進数)って何?」についてです。 - CCR(Condition Code Register:条件コードレジスタ)の役割
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、超初級者の方からよく質問される「CCR(Condition Code Register: 条件コードレジスタ)の役割」についてです。 - シングルバンクとデュアルバンクの違い
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「シングルバンクとデュアルバンクの違い」についてです。 - HAL(ハードウェア抽象化レイヤー)って何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「HAL(ハードウェア抽象化レイヤー)って何?」についてです。