MSP430G2553 - タイマ

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要

MSP430G2553マイコンには、3つのタイマモジュールが搭載されている。

  • Timer_A3
    16ビットのタイマ / カウンタ
    キャプチャ / 比較レジスタを3つ備えている。
    Timer_A3モジュールは、3つのキャプチャ/比較レジスタ (CCR0、CCR1、CCR2) を備えている。
  • Timer_A2
    16ビットのタイマ / カウンタ
    キャプチャ / 比較レジスタを2つ備えている。
  • Watchdog Timer+
    ウォッチドッグタイマとして機能する16ビットのタイマ
    インターバルタイマとしても使用可能である。


これらのタイマは、時間管理、イベントのスケジューリング、パルス幅変調 (PWM) の生成、外部信号のキャプチャ等、様々な用途に使用されている。

タイマの主な仕組みを以下に示す。

  • カウント動作
    タイマはクロック信号に同期してカウント値を増加または減少させる。
    クロックソースは、内部クロック (SMCLK、ACLK)、外部クロック (TACLK) から選択できる。

  • 動作モード
    タイマは、連続モード (カウンタが最大値に達すると0に戻る)、アップモード (カウンタが最大値に達すると停止)、アップ / ダウンモード (カウンタが最大値と0の間で増減を繰り返す) 等の動作モードを選択できる。

  • 割り込み
    タイマは、カウンタが特定の値に達した場合や、キャプチャ / 比較イベントが発生した場合にに割り込みを生成することができる。
    これにより、CPU負荷を最小限に抑えながらタイミングイベントを処理できる。

  • キャプチャ / 比較機能
    タイマのキャプチャ / 比較レジスタを使用すると、外部信号のエッジ (立ち上がりまたは立ち下がり) を検出したり、PWM信号を生成したりすることができる。

  • ウォッチドッグ機能
    ウォッチドッグタイマは、システムの異常動作を検出して、リセットを行うために使用される。
    定期的にウォッチドッグタイマをリセットしないと、システムがリセットされる。


MSP430G2553マイコンのタイマは、低消費電力動作とシンプルな設定が特徴である。
タイマの設定は、制御レジスタ (TACTLレジスタ、TACCTLxレジスタ) を通じて行う。

これらのレジスタを適切に設定することにより、目的に応じたタイマの動作を実現することができる。


Timer_A3モジュール

Timer_A3モジュールとは

MSP430G2553マイコンには、Timer_A3という16ビットのタイマ / カウンタモジュールが搭載されている。
このTimer_A3モジュールは、3つのキャプチャ / 比較レジスタ (CCR0、CCR1、CCR2) を備えており、それぞれがタイマA0、タイマA1、タイマA2として機能する。

複数の割り込みソース

  • TA0CCR0
    タイマA0のカウンタが、TA0CCR0レジスタの値に達した場合に発生する割り込み
  • TA0CCR1
    タイマA0のカウンタが、TA0CCR1レジスタの値に達した場合に発生する割り込み
  • TA0CCR2
    タイマA0のカウンタが、TA0CCR2レジスタの値に達した場合に発生する割り込み
  • TA0IFG
    タイマA0の上記以外の割り込みフラグが設定された場合に発生する割り込み


TA0IVレジスタの値と対応する割り込みソースを、以下に示す。

  • 0x00
    割り込みなし
  • 0x02
    TA0CCR1
  • 0x04
    TA0CCR2
  • 0x0A
    TA0IFG (カウンタオーバーフロー等)
  • 0x0E
    TA0IFG (カウンタクリア等)


PWM動作モードでは、TA0CCR0の値がPWM周期を決定、TA0CCR1の値がデューティ比を決定する。
TA0CCR1に関連する割り込みは、PWM周期ごとに発生する。

例えば、TA0IVレジスタの値が0x02になる場合は、PWM周期ごとにTA0CCR1に関連する割り込みが発生していることを示す。

この割り込みを利用して、PWMのデューティ比を動的に変更することもできる。


タイマA0

動作モード

  • アップモード
    カウンタが0からTACCR0レジスタに設定した値まで増加して、TACCR0レジスタに設定した値に達するとカウンタが0に戻る。
  • 連続モード
    カウンタが0からFFFFhまで増加して、FFFFhに達すると<ode>0に戻る。
  • アップ / ダウンモード
    カウンタが0からTACCR0レジスタに設定した値まで増加して、TACCR0レジスタに設定した値に達するとTACCR0レジスタの値から0まで減少する。


クロックソース

  • TACLK
    外部クロック信号を使用する。
  • ACLK
    補助クロック (32.768[kHz]) を使用する。
  • SMCLK
    サブメインクロック (最大16[MHz]) を使用する。
  • INCLK
    内部クロック (DCOCLK) を使用する。


クロック分周

1248分周が可能である。

割り込み

  • TACCR0と比較一致割り込み (CCIFG)
  • カウンタオーバーフロー割り込み (TAIFG)


出力モード

  • 比較モード
    TACCR0レジスタとの比較一致に基づいて出力信号の状態を変更する。

  • セットアップモード
    TACCR0レジスタとの比較一致でセット、カウンタの再スタートでリセットする。

  • トグルモード
    TACCR0レジスタとの比較一致で出力信号をトグルする。

  • リセットモード
    TACCR0レジスタとの比較一致でリセット、カウンタの再スタートでセットする。



タイマA1

タイマA1の設定

  • TACTL
    タイマAの制御レジスタ
  • TACCTL1
    キャプチャ / 比較制御レジスタ1
  • TACCR1
    キャプチャ / 比較レジスタ1


これらのレジスタを適切に設定することにより、目的に応じたタイマA1の動作を実現できる。
タイマA1は、PWM信号の生成、外部信号のエッジ検出とキャプチャ、一定間隔でのイベント処理等、様々な用途に使用できる。

特に、キャプチャモードを利用することにより、外部信号の周期やパルス幅を測定することができる。

動作モード

  • アップモード
    カウンタが0からTACCR1レジスタに設定した値まで増加して、TACCR1レジスタに設定した値に達するとカウンタが0に戻る。
  • 連続モード
    カウンタが0からFFFFhまで増加して、FFFFhに達すると0に戻る。
  • アップ / ダウンモード
    カウンタが0からTACCR1レジスタに設定した値まで増加して、TACCR1レジスタに設定した値に達するとTACCR1レジスタから0まで減少する。


クロックソース

  • TACLK
    外部クロック信号を使用
  • ACLK
    補助クロック (32.768[kHz]) を使用
  • SMCLK
    サブメインクロック (最大16[MHz]) を使用
  • INCLK
    内部クロック (DCOCLK) を使用


クロック分周

1248分周が可能である。

割り込み

  • TACCR1と比較一致割り込み (CCIFG)
  • キャプチャ割り込み (CCIFG)


出力モード

  • 比較モード
    TACCR1レジスタとの比較一致に基づいて出力信号の状態を変更する。
  • セットアップモード
    TACCR1との比較一致でセット、カウンタの再スタートでリセットする。
  • トグルモード
    TACCR1レジスタとの比較一致で出力信号をトグルする。
  • リセットモード
    TACCR1レジスタとの比較一致でリセット、カウンタの再スタートでセットする。


キャプチャモード

  • 立ち上がりエッジ
    入力信号の立ち上がりエッジでキャプチャする。
  • 立ち下がりエッジ
    入力信号の立ち下がりエッジでキャプチャする。
  • 両エッジ
    入力信号の両エッジでキャプチャする。