最近のマイコンは、内蔵抵抗と内蔵コンデンサーを使った内蔵発振回路(以下、RC発振回路)で起動し、その後必要があれば外付け振動子に切り替わる方式が主流です。RC発振回路は起動時間が短いですが、周波数精度が水晶振動子やセラミック振動子に比べると劣ります。そこで、RC発振回路でマイコンを起動し、その後外付け振動子に切り替えます。正確な時間が必要のないアプリケーションでは、RC発振回路を使い続けても問題ないですが、タイマーなどを使用して正確な時間が必要な場合は、外部振動子が必要です。
外部振動子の短所として、起動時間が長いという点が挙げられます。特に水晶振動子は、起動して周波数が安定するまでに時間がかかります。そこで、発振が起動したことを検知する回路を設けて、確実に、かつ迅速に外部振動子に切り替える回路が必要になります。
起動時の発振検出には、カウンターを使う方法が最も簡単です。発振回路からの発振信号を、インバーターを使ったバッファーで受けます。発振波形が成長して、バッファーの入力閾値を越える振幅に成長すると、バッファーは矩形波を出力します。発振波形が閾値ギリギリで不安定な状態では、バッファーの出力も不安定です。そこで、バッファーから出力が出始めてから安定するまで待たなければなりません。その為に、カウンターを設けて、バッファーから出力されるクロックを一定数までカウントしてからフラグを立てるようにします。カウンターが動作するということは、マイコン内部の論理回路も動作でき、安定して発振していると判断できます。
カウンターは最初、不安定なクロックでいくつかカウントしますが、最終的には安定したクロックでカウントしてオーバーフローします。オーバーフローの発生で発振波形が安定したとみなします。STM32ファミリーの場合は、この時点でRDYフラグが立ちます。これなら、確実に発振安定を検知できます。発振検知が終了するとカウンターは停止して、無駄な電力を消費しないようにします。
カウント数は、各製品で異なります。公開されている場合もありますし、公開されていない場合もあります。
Arm Cortex-Mのメモリプロテクションユニット(MPU)って何?
A-Dコンバーターの4つのトラブル事例と対策
マイコンの低消費UART、普通のUARTと何が違う?
Quad SPIフラッシュメモリの使用上の注意
マイコンの低消費電力モードの使い分け
マイコンのAXIプロトコルって何?Copyright © ITmedia, Inc. All Rights Reserved.
記事ランキング