• 検索結果がありません。

動作種別

ドキュメント内 mega88A.pdf (ページ 94-97)

PIND 6 PIND 5 PIND 4 PIND 3 PIND 2 PIND 1

17. タイマ/カウンタ0とタイマ/カウンタ1の前置分周器

18.7. 動作種別

動作種別、換言するとタイマ/カウンタと比較出力ピンの動作は波形生成種別(WGM22~0)ビットと比較出力選択(COM2x1~0)ビットの組み 合わせによって定義されます。比較出力選択ビットは計数順序(動作)に影響を及ぼしませんが、一方波形生成種別ビットは影響を及 ぼします。COM2x1~0ビットは生成されるPWM出力が反転されるべきか、されないべきか(反転または非反転PWM)どちらかを制御し ます。非PWM動作に対するCOM2x1~0ビットは比較一致で出力が解除(0)、設定(1)、1/0交互のどれにされるべきかを制御します(93 頁の「比較一致出力部」をご覧ください)。

タイミング情報の詳細については97頁の「タイマ/カウンタ2のタイミング」を参照してください。

18.7.1. 標準動作

最も単純な動作種別が標準動作(WGM22~0=000)です。この動作種別での計数方向は常に上昇(+)で、カウンタ解除は実行されませ ん。カウンタは8ビット最大値(TOP=$FF)を通過すると単に範囲を超え、そして$00(BOTTOM)から再び始めます。通常動作でのタイマ/カウ ンタ溢れ(TOV2)フラグはTCNT2が$00になる時と同じタイマ/カウンタ クロック周期で設定(1)されます。この場合のTOV2フラグは設定(1)のみ で解除(0)されないことを除いて第9ビットのようになります。けれどもTOV2フラグを自動的に解除(0)するタイマ/カウンタ2溢れ割り込みと組 み合わせたタイマ/カウンタの分解能はソフトウェアによって増やせます。標準動作での考慮に特別な場合はなく、新しいカウンタ値は何時でも 書けます。

比較出力部は与えられた或る時間に割り込みを生成するのに使用できます。標準動作で波形を生成するのに比較出力を使用する のは、それが大変多くのCPU時間を占有するため推奨されません。

18.7.2. 比較一致タイマ/カウンタ解除(CTC)動作

比較一致タイマ/カウンタ解除(CTC)動作(WGM22~0=010)ではOCR2Aがカウンタの分解能を操作するのに使用されます。CTC動作ではカ ウンタ(TCNT2)値がOCR2Aと一致すると、カウンタは$00に解除されます。OCR2Aはカウンタに対するTOP値、従って分解能も定義します。

この動作種別はより大きい比較一致出力周波数の制御を許します。それは外部の出来事の計数操作も簡単にします。

CTC動作についてのタイミング図は図18-5.で示されます。カウンタ(TCNT2)値はTCNT2とOCR2A間で比較一致が起こるまで増加し、そ してその後にカウンタ(TCNT2)は解除($00)されます。

OCnx(交互) 周期 TCNTn

図18-5. CTC動作タイミング

1 2 3 4 5

OCFnx割り込み要求フラグ設定(TOP値割り込み) TOP

注: COMnx1~0=01

OCF2Aフラグを使用することにより、タイマ/カウンタ値がTOP値に達する時毎に割り込みが生成できます。割り込みが許可されるなら、割 り込み処理ルーチンはTOP値を更新するのに使用できます。けれども前置分周なしまたは低い前置分周値でカウンタが走行している時に BOTTOMと近い値にTOPを変更することは、CTC動作が2重緩衝機能を持たないために注意して行わなければなりません。OCR2A に書かれた新しい値がTCNT2の現在値よりも低い(小さい)場合、タイマ/カウンタは(その回の)比較一致を失います。その後のカウンタは比 較一致が起こるのに先立って、最大値($FF)へそして次に$00から始める計数をしなければならないでしょう。

CTC動作で波形出力を生成するため、OC2A出力は比較出力選択(COM2A1~0)ビットを交互動作(=01)に設定することによって各比 較一致での論理レベル交互切り替えに設定できます。OC2A値はそのピンに対するデータ方向が出力(DDR_OC2A=1)に設定されない 限りポート ピンで見えないでしょう。生成された波形はOCR2Aが0($00)に設定される時にfOC2A=fclk_I/O/2の最大周波数を得ます。

生成波形周波数は次式によって定義されます。

変数Nは前置分周数(1,8,32,64,128,256,1024)を表します。

標準動作と同じように、タイマ/カウンタ溢れ(TOV2)フラグはカウンタがMAXから$00へ計数するのと同じタイマ/カウンタ クロック周期で設定(1)され ます。

fOCnx = fclk_I/O 2×N×(1+OCRnx)

18.7.3. 高速PWM動作

高速パルス幅変調(PWM)動作(WGM22~0=011または111)は高周波数PWM波形生成選択を提供します。高速PWMはそれが単一傾 斜(鋸波)動作であることによって他のPWM動作と異なります。カウンタはBOTTOMからTOPまで計数し、その後にBOTTOMから再び始 めます。TOPはWGM22~0=011時に$FF、WGM22~0=111時にOCR2Aとして定義されます。非反転比較出力動作(COM2x1~0=10) での比較出力(OC2x)はTCNT2とOCR2x間の比較一致で解除(0)され、BOTTOMで設定(1)されます。反転出力動作(COM2x1~0

=11)の出力は比較一致で設定(1)され、BOTTOMで解除(0)されます。この単一傾斜動作のため、高速PWM動作の動作周波数は両 傾斜(三角波)動作を使用する位相基準PWM動作よりも2倍高くできます。この高い周波数は電力調節、整流、D/A変換に対して高 速PWM動作を都合よく適合させます。高い周波数は物理的に小さな外部部品(コイルやコンデンサ)を許し、従ってシステム総費用を削減し ます。

高速PWM動作でのタイマ/カウンタはタイマ/カウンタ値がTOP値と一致するまで増加されます。そしてタイマ/カウンタは(一致の)次のタイマ/カウンタ クロック周期で解除($00)されます。高速PWM動作のタイミング図は図18-6.で示されます。TCNT2値はタイミング図で単一傾斜動作(鋸波) を表す折れ線グラフとして示されます。この図は非反転と反転のPWM出力を含みます。赤細線はOCR2x値を示し、TCNT2値との交点 (接点)がTCNT2とOCR2x間の比較一致を示します(訳注:図補正に伴い本行若干変更)。比較割り込み要求フラグ(OCF2x)はOCR2x=

TOPを除いて比較一致が起こると設定(1)されます(訳注:共通性のため本行追加)。

OCnx(非反転) (COMnx1~0=10)

周期 TCNTn

図18-6. 高速PWM動作タイミング

1 2 3 4

OCRnx更新、TOVn割り込み要求フラグ設定 OCRnx

OCnx(反転) (COMnx1~0=11)

5 6 7

OCFnx割り込み要求フラグ設定

タイマ/カウンタ溢れ(TOV2)フラグはカウンタがTOPに到達する時毎に設定(1)されます。割り込みが許可されるなら、その割り込み処理ルーチ ンは比較値を更新するために使用できます。

高速PWM動作での比較部はOC2xピンでのPWM波形の生成を許します。COM2x1~0ビットを'10'に設定することは非反転PWM出力 を作成し、反転PWM出力はCOM2x1~0を'11'に設定することで生成できます。WGM22ビットが設定(1)なら、COM2A1~0ビットの'01'設 定は比較一致での交互反転をOC2Aピンに許します。この任意選択はOC2Bピンに対して利用できません(100頁の表18-3.と表18-6.を ご覧ください) (訳注:前2行修正追加)。実際のOC2x値はポート ピンに対するデータ方向(DDR_OC2x)が出力として設定される場合にだ け見えるでしょう。PWM波形はTCNT2とOCR2x間の比較一致でOC2x(内部)レジスタを設定(1)(または解除(0))と、カウンタが解除($00、

TOPからBOTTOMへ変更)されるタイマ/カウンタ クロック周期でOC2xレジスタを解除(0)または設定(1)することによって生成されます。

PWM出力周波数は次式によって計算できます。

変数Nは前置分周数(1,8,32,64,128,256,1024)を表します。

OCR2xの両端値は高速PWM動作でPWM波形出力を生成する時の特別な場合にあたります。OCR2xがBOTTOM($00)と等しく設定 されると、出力はTOP+1 タイマ/カクンタ クロック周期毎の狭いスパイク(パルス)になるでしょう。OCR2xがTOPに等しく設定されると、(COM2x1

~0ビットによって設定される出力極性に依存して)定常的なLowまたはHigh出力に終わるでしょう。

(訳補:WGM22~0=111の場合については、)高速PWM動作での(デューティ比50%)周波数の波形出力は比較一致毎に論理反転する OC2A設定(COM2A1~0=01)によって達成できます。生成された波形はOCR2Aが0($00)に設定される時にfOC2x=fclk_I/O/2の最大 周波数でしょう。この特性は高速PWM動作で比較出力部の2重緩衝機能が許可されることを除いて、CTC動作でのOC2A交互出力 (COM2A1~0=01)と同じです。

fOCnxPWM = fclk_I/O N×(1+TOP)

ATmega48A/48PA/88A/88PA/168A/168PA/328/328P [データシート] 96 18.7.4. 位相基準PWM動作

位相基準パルス幅変調(PWM)動作(WGM22~0=001または101)は高分解能で正しい位相のPWM波形生成選択を提供します。位相 基準PWM動作は両傾斜(三角波)動作に基きます。カウンタはBOTTOMからTOPへそして次にTOPからBOTTOMへを繰り返し計数し ます。TOPはWGM22~0=001時に$FF、WGM22~0=101時にOCR2Aとして定義されます。非反転比較出力動作(COM2x1~0= 10)で の比較出力(OC2x)は上昇計数中のTCNT2とOCR2xの比較一致で解除(0)され、下降計数中の比較一致で設定(1)されます。反転出 力動作(COM2x1~0=11)での動作は逆にされます。両傾斜(三角波)動作は単一傾斜(鋸波)動作よりも低い最大動作周波数です。け れども両傾斜(三角波)動作の対称特性のため、これらの動作種別はモータ制御の応用に好まれます。

位相基準PWM動作でのカウンタはカウンタ値がTOPと一致するまで増加されます。カウンタはTOPに達すると計数方向を替えます。この TCNT2値は1タイマ/カウンタ クロック周期間TOPと等しくなります。位相基準PWM動作のタイミング図は図18-7.で示されます。TCNT2値はタ イミング図で両傾斜動作(三角波)を表す折れ線グラフとして示されます。この図は非反転と反転のPWM出力を含みます。細い赤線は OCR2x値を示し、TCNT2値との交点(接点)がTCNT2とOCR2x間の比較一致を示します(訳注:図補正に伴い本行若干変更)。

OCnx(非反転) (COMnx1~0=10)

周期 TCNTn

図18-7. 位相基準PWM動作タイミング

2 1

OCFnx割り込み要求フラグ設定

OCRnx

OCnx(反転) (COMnx1~0=11)

3

TOVn割り込み要求フラグ設定

OCRnx更新

タイマ/カウンタ溢れ(TOV2)フラグはタイマ/カウンタがBOTTOMに到達する時毎に設定(1)されます。この割り込み要求フラグはカウンタがBOTT OM値に到達する毎に割り込みを発生するのに使用できます。

位相基準PWM動作での比較部はOC2xピンでのPWM波形の生成を許します。COM2x1~0ビットを'10'に設定することは非反転PWM 出力を作成し、反転PWM出力はCOM2x1~0ビットを'11'に設定することで生成できます。WGM02ビットが設定(1)なら、COM0A1~0ビッ トの'01'設定は比較一致での交互反転をOC0Aピンに許します。この任意選択はOC0Bピンに対して利用できません(100頁の表18-4.と 表18-7.をご覧ください) (訳注:前2行修正追加)。実際のOC2x値はそのポート ピンに対するデータ方向(DDR_OC2x)が出力として設定さ れる場合にだけ見えるでしょう。PWM波形はカウンタが増加する時のTCNT2とOCR2x間の比較一致でOC2x(内部)レジスタを設定(1)(ま たは解除(0))と、カウンタが減少する時のTCNT2とOCR2x間の比較一致でOC2xレジスタを解除(0)(または設定(1))によって生成されま す。位相基準PWMを使用する時の出力に対するPWM周波数は次式によって計算できます。

変数Nは前置分周数(1,8,32,64,128,256,1024)を表します。

OCR2xの両端値は位相基準PWM動作でPWM波形出力を生成する時の特別な場合にあたります。非反転PWM動作ではOCR2xが BOTTOM($00)に等しく設定されると出力は定常的なLow、TOPに等しく設定されると定常的なHighになるでしょう。反転PWMに対す る出力は逆の論理値になります。

図18-7.の第2周期のその出発点に於いて、例え比較一致がないとしても、OCnxにはHighからLowへの遷移があります。この遷移点 はBOTTOMを挟む対称を保証するためです。比較一致なしに遷移を生ずるのは2つの場合です。

図18-7.でのようにOCR2xはTOPからその値を変更します。OCR2x値がTOPのとき、OCnxピン値は下降計数での比較一致の結果

と同じです(訳補: L→H、直前がHのため、常にH)。BOTTOMを挟む対称を保証するため、(変更直後の)TOP(位置)でのOCnx値 は上昇計数での比較一致の結果(H→L)と一致しなければなりません。

タイマ/カウンタがOCR2x値よりも高い値から数え始め、そしてその理屈のために比較一致、それ故上昇途中で起こされるであろうOC nxの変更を逃します。(訳補: 従って上記同様、TOP位置で(直前がHならば)H→L遷移が生じます。)

fOCnxPCPWM = fclk_I/O 2×N×TOP

ドキュメント内 mega88A.pdf (ページ 94-97)