「MSP430G2553 - PWM制御」の版間の差分

ナビゲーションに移動 検索に移動
80行目: 80行目:
<math>\mbox{ PWM 周 期 } = (\mbox{TA0CCR0} + 1) \times 8 = 20000 \times 8 = 160000</math><br>
<math>\mbox{ PWM 周 期 } = (\mbox{TA0CCR0} + 1) \times 8 = 20000 \times 8 = 160000</math><br>
<br>
<br>
<math>\mbox{ PWM 周 波 数 } = \frac{\mbox{ ク ロ ッ ク 周 波 数 }}{\mbox{ PWM 周 期 }} = \frac{1.1 \mbox{[MHz]}}{1000} = 1.1 \mbox{[kHz]}</math><br>
<math>\mbox{ PWM 周 波 数 } = \frac{\mbox{ ク ロ ッ ク 周 波 数 }}{\mbox{ PWM 周 期 }} = \frac{16 \mbox{[MHz]}}{160000} = 1 \mbox{[kHz]}</math><br>
<br>
<br>
<math>\mbox{ デ ュ ー テ ィ 比 } = \frac{\mbox{TA0CCR1}}{\big( \mbox{TA0CCR0} + 1 \big)} = \frac{100}{1000} = 0.1 = 10[%]</math><br>
<math>\mbox{ デ ュ ー テ ィ 比 } = \frac{\mbox{TA0CCR1}}{\big( \mbox{TA0CCR0} + 1 \big)} = \frac{16000}{160000} = 0.1 = 10 [%]</math><br>
<br>
<br>
このように、クロックが16[MHz]の場合は、分周器を使用してクロックを分周して、適切なTA0CCR0とTA0CCR1の値を設定することにより、目的のPWM周期とデューティ比を達成することができる。<br>
<br>
また、上記のサンプルコードでは、、タイマA0のクロックソースとしてSMCLK (Sub-Main Clock) を選択している。<br>
SMCLKは、DCOを分周して生成されるクロックであり、タイマや周辺機器のクロックとして使用されるクロックである。<br>
<syntaxhighlight lang="c">
TA0CTL = TASSEL_2 | MC_1 | ID_0;  // SMCLK (1MHz), アップモード, 分周なし
</syntaxhighlight>
<br>
ここで、TASSEL_2レジスタはクロックソース選択ビットであり、以下のように定義されている。<br>
* TASSEL_0
*: TAxCLK (外部クロック)
* TASSEL_1
*: ACLK (補助クロック、32.768[kHz])
* TASSEL_2
*: SMCLK (サブメインクロック、DCOを分周)
* TASSEL_3
*: INCLK (外部クロック)
<br>
一方、MCLK (Main Clock) は、CPUやその他の一部の周辺機器のクロックとして使用される。<br>
MCLKは、DCOを直接使用する、または、DCOを分周して生成される。<br>
<br>
デフォルトではDCOが1.1[MHz]に設定されており、SMCLKとMCLKはこの周波数で動作する。<br>
ただし、DCOの周波数を変更することにより、SMCLKとMCLKの周波数を変更することができる。<br>
<br><br>
<br><br>


案内メニュー