クロック源とPLLとメインクロック、サブクロックの関係を図3にまとめました。クロックは左から右に流れます。クロック分配回路は、単なる配線なので説明は省きます。
ここで、図1に戻って、クロックの経路についてみてみましょう(図1再掲載)
左上にあるサブクロックのLSIやLSEは、時計用クロックを生成するので、PLLを通さずに直接周辺機能へつながります。その下にあるメインクロックのHSE、HSIは直接システムクロック(図中、SYSCLK)として使用できます。または、PLLで逓倍して使用することもできます。システムクロックは「クロックソース制御」回路で選択できます。サブクロックのMSIは48MHzの自励発振回路です。USB用のクロックとして使ったり、システムクロックとして使ったりできます。
HSE、HSI、MSIの下にPLLがあります。出力は3つで。SAI用と48MHz用と共通のクロックです。48MHzはUSBなどで使用します。48MHzのクロックに関しては、専用のHSIが設けられていて、これもUSBで使用可能です。
SAIは専用のPLLを持っていて、PLLSAI1とPLLSAI2が設けられています。また、外部から直接入力することも可能です。
右側の一番上のクロックラインは、LSIやLSEのラインで、ウォッチドッグタイマー、時計機能のRTC、LCDなど、32kHzレベルの周波数を必要とする周辺機能へつながります。その下に、システムクロックラインがあります。SYSCLKが分周されHCLKとなっています。このクロックは、CPUやメモリ、DMAなどにつながっています。HCLKはさらに分周されPCLK1またはPCLK2になり、タイマ、シリアル通信などの周辺機能用のクロックになっています。周辺機能用のクロックは、その他のクロックも選択可能になっています。
発振回路のトラブル例を紹介します。
断線や振動子の破壊なので、発振しない場合もありますが、案外多いのは発振回路のパラメータの選択ミスです。特に、水晶振動子を使った発振回路のパラメータを間違うと発振しません。常温で発振していても、高温や低温になると発振が異常になる場合があるので、パラメータの選択、設定には注意が必要です。また、水晶振動子は物理的衝撃に弱いので、取り扱いにも注意が必要です。
PLLはフィードバック構成(ループ状)になっている場合が多いので、自励発振回路として動作します。そのため、発振からのクロックが何らかの問題で途絶えても、クロックを出力する場合があります。特に気をつけたいのが、この時の周波数です。場合によっては、最初の設定値とほぼ同じ周波数のクロックを出力する場合があります。しかし周波数精度は悪くなります。大きく周波数が変化しないとユーザーは不良が発生したことに気が付きませんが、通信機能などでは、徐々にビットずれが発生し、最終的に通信エラーになります。
マイコンによっては、クロック源の不良を検知する機能(「Q&Aで学ぶマイコン講座(110):マイコンのクロックセキュリティシステムって何?」参照)が搭載されていますので、そのような機能を活用して、不良を早期に検出しましょう。
マイコンのクロックセキュリティシステムって何?
低速読み出しフラッシュメモリでも、CPUが高速動作できる工夫とは?
Arm Cortex-Mのメモリプロテクションユニット(MPU)って何?
A-Dコンバーターの4つのトラブル事例と対策
マイコンの低消費UART、普通のUARTと何が違う?
Quad SPIフラッシュメモリの使用上の注意Copyright © ITmedia, Inc. All Rights Reserved.
記事ランキング