MSP430G2553 - クロック
概要
MSP430マイコンには、様々なクロックソースとクロック信号があり、これらを適切に設定することにより、システムの動作を最適化することができる。
- クロックソース
- DCO (Digitally Controlled Oscillator)
- 内部の高速クロックソースである。
- VLO (Very Low Power Oscillator)
- 内部の低速・低消費電力クロックソースである。
- XTAL
- 外部の水晶発振器を接続するためのクロックソースである。
- LFXT1
- 外部の低周波数水晶発振器を接続するためのクロックソースである。
- DCO (Digitally Controlled Oscillator)
- クロック信号
- MCLK (Master Clock)
- CPUとデジタル回路のタイミングを制御するクロック信号である。
- SMCLK (Subsystem Master Clock)
- 周辺モジュールに供給されるクロック信号である。
- ACLK (Auxiliary Clock)
- 低速の周辺モジュールに供給されるクロック信号である。
- MCLK (Master Clock)
- クロック制御
- UCS (Unified Clock System) モジュールや、CS (Clock System) モジュールを使用してクロックを設定する。
- クロックソースの選択、クロック周波数の設定、クロック信号の有効化 / 無効化等を行う。
- クロック分周器
- クロックソースの周波数を分周して、必要なクロック周波数を生成する。
- MCLK、SMCLK、ACLKごとに独立した分周器がある。
- 低電力モード
- クロックを停止させることにより、消費電力を抑えることができる。
- 低電力モードには、MSP430マイコンの動作を停止するモードやクロック信号を選択的に停止するモードがある。
- クロックの切り替え
- 動的にクロックソースを切り替えることができる。
- 例えば、高速動作が必要な場合はDCOを使用して、低消費電力が必要な場合はVLOを使用する等の切り替えが可能である。
MSP430のクロックシステムは、アプリケーションの要件に合わせて柔軟に設定することができる。
適切なクロックソースとクロック周波数を選択して、低電力モードを活用することで、性能と消費電力のバランスを取ることができる。
また、動的なクロックの切り替えにより、状況に応じた最適な動作を実現することができる。
MCLK (Master Clock)
MSP430マイコン全般のメインクロックのことである。
メインクロックの動作とデジタル回路のタイミングを制御するためのものである。
クロックソースは、DCO、VLO、XTAL等から選択できる。
クロック周波数は、クロックソースの周波数をクロック分周器で分周することで設定する。
低電力モードでは、MCLKを停止させることでMSP430マイコンの主動作を停止して、消費電力を抑えることができる。
SMCLK (Subsystem Master Clock)
周辺モジュール用のクロックのことである。
タイマ、UART、SPI、I2C等の周辺モジュールに供給されるものである。
クロックソースは、DCO、VLO、XTAL等から選択できる。
クロック周波数は、クロックソースの周波数をクロック分周器で分周することで設定する。
低電力モードでは、SMCLKを停止させることにより、消費電力を抑えることができる。
MCLKとSMCLKの違い
- 用途
- MCLKはMSP430マイコン用、SMCLKは周辺モジュール用である。
- 動作
- SMCLKは、周辺モジュールの動作に影響する。
- MCLKは、CPUの動作に影響する。
- 低電力モード
- SMCLKを停止させても、MSP430マイコンは動作可能である。
- MCLKを停止させると、MSP430マイコンも停止する。
- 周波数
- MCLKとSMCLKは、同じクロックソースを使用できるが、分周率を変えることで異なる周波数で動作させることができる。
MCLKとSMCLKを適切に設定することにより、アプリケーションの要件に合わせたシステムクロックを実現できる。
また、低電力モードでは、これらのクロックを選択的に停止させることにより、消費電力を最適化できる。
ACLK (Auxiliary Clock)
ACLKとは
MSP430マイコンの低速の周辺モジュール用のクロック信号である。
低速の周辺モジュールに供給されるクロック信号であり、一般的に32[kHz]以下の周波数で動作する。
主に、タイマ、リアルタイムクロック (RTC)、ウォッチドッグタイマ (WDT) 等の低速モジュールに使用される。
ACLKは、MSP430マイコンの低消費電力化に重要な役割を果たす。
適切なクロックソースと周波数を選択することにより、低速の周辺モジュールを効率的に動作させることができる。
また、VLOを使用することで、さらに低消費電力化が可能になる。
クロックソース
ACLKのクロックソースは、以下の中から選択できる。
- VLO (Very Low Power Oscillator)
- 内部の低速・低消費電力クロックソースである。
- LFXT1 (Low Frequency Crystal Oscillator)
- 外部の低周波数水晶発振器を接続するためのクロックソースである。
クロックソースの選択は、UCBCSRレジスタまたはCSCTLxレジスタ (xはモジュールにより異なる) で行う。
- LFXT1の設定
- LFXT1S_0:LFXT1を使用 (デフォルト)
- LFXT1S_1
- 予約済み
- LFXT1S_2
- VLOを使用
- LFXT1S_3
- LFXT1のバイパスモード (外部クロックソースを直接使用)
クロック周波数
ACLKの周波数は、選択したクロックソースの周波数をそのまま使用する、または、分周器で分周した周波数になる。
分周率は、UCBCSRレジスタまたはCSCTLxレジスタで設定することができる。
低消費電力
ACLKは、低速の周辺モジュールに使用されるため、消費電力が低く抑えられる。
VLOをクロックソースとして使用することにより、さらに低消費電力化が可能となる。
使用例
- リアルタイムクロック (RTC)
- ACLKを使用して、低消費電力で正確な時間管理を行う。
- ウォッチドッグタイマ (WDT)
- ACLKを使用して、システムの異常動作を監視してリセットを行う。
- 低速のタイマ
- ACLKを使用して、長期間のタイミング制御を行う。
注意点
- ACLKを使用する場合、クロックソースの安定性に注意が必要である。
- 外部の水晶発振器を使用する場合は、適切な負荷容量と発振回路の設計が重要である。
サンプルコード
以下の例では、ACLKのクロックソースをVL0に選択している。
- まず、WDTを停止する。
これは、クロックの設定を変更する前に必要な処理である。 - BCSCTL3レジスタの
LFXT1S
ビットを設定して、ACLKのクロックソースを選択する。
以下の例では、LFXT1S_2
を設定することにより、ACLKのクロックソースをVLOに設定している。
※注意
クロックソースを切り替える際は、クロックが安定するまで待つ必要がある。
外部クロックソースを使用する場合は、適切な発振回路の設計が必要である。
#include <msp430.h>
int main(void)
{
// WDTを停止
WDTCTL = WDTPW | WDTHOLD;
// ACLKのクロックソースをVLOに設定
BCSCTL3 |= LFXT1S_2;
// その他の初期化処理
// ...略
while(1) {
// メインループ
// ...略
}
}