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

PWM 周期

ドキュメント内 dsPIC33E FRM - Section #. Title (ページ 71-76)

レジスタ 14- 24: LEBDLYx: リーディング エッジ ブランキング遅延レジスタ

14.4 アーキテクチャの概要

14.7.1 PWM 周期

PWM

周期値は、PWMパルスのスイッチング周波数を定義します。PWM周期値は、プライマ リマスタ タイムベース周期レジスタ

(PTPER)

を使って制御するか、あるいはプライマリおよ びセカンダリ

PWM

出力で別々のタイムベース周期レジスタ

(PHASEx

SPHASEx)

を使って 制御できます

(

一部のデバイスのみ

)。

高速

PWM

モジュールが独立タイムベース モードで動作する場合、PWM周期値は下記の

2

つ の方法で制御できます。

完全独立出力モード以外では、PHASExレジスタが

PWM

出力信号

(PWMxH

PWMxL)

PWM

周期を制御します。

完全独立出力モードでは、PHASExレジスタが

PWMxH

出力信号の

PWM

周期値を制御し、

SPHASEx

レジスタが

PWMxL

出力信号の

PWM

周期値を制御します。

各種

PWM

モードとそれらの機能の詳細は、14.6「PWMの動作モード」を参照してください。

高速

PWM

モジュールがマスタ タイムベース モードで動作する場合、PTPER レジスタは、

PMTMR

タイマのカウント周期を指定する

16

ビット値を保持します。高速

PWM

モジュールが

独立タイムベース モードで動作する場合、PHASEx および

SPHASEx

レジスタは、それぞれ

PTMRx

および

STMRx

タイマのカウント周期を指定する

16

ビット値を保持します。ユーザ ア

プリケーションは、タイマ周期をいつでも更新できます。エッジアライン

PWM

モード

(CAM

ビット

(PWMCONx<2>)

を「0」に設定

)

における

PWM

タイムベース周期

(PTPER)

は式14-1 を使って計算できます。

14-1:

エッジアライン モードでの

PERIOD、PHASEx、SPHASEx

レジスタ値の計算

式14-1に基づき、マスタ タイムベース (PTPERレジスタ

)

または独立タイムベース

(PHASEx

および

SPHASEx

レジスタ

)

で動作する時にレジスタに格納する値の計算例を例14-38に示し

ます。

14-38:

エッジアライン モードでの

PWM

タイムベース周期値の計算

Note:

ここに記載したレジスタと機能は、一部のデバイスで利用できない場合がありま

す。詳細は各デバイス データシート内の「高速

PWM」を参照してください。

PTPER, PHASEx, SPHASEx =

FPWM * PWM Input Clock Prescaler FOSC

FPWM = 目標

PWM

周波数

FOSC = オシレータ出力

(60MIPS

において

120 MHz)

PWM Input Clock Prescaler = PCLKDIV<2:0>ビット

(PTCON2<2:0>)

で定義した値

PTPER 120MHz 20kHz×1 --- 6000

= =

PWM

入力クロック プリスケーラ = 1:1 システム オシレータ周波数

(F

OSC

) = 120 MHz

目標

PWM

スイッチング周波数 = 20 kHz

センターアライン モード

(CAM = 1 かつ ITB = 1)

における

PWM

タイムベース周期

(PHASEx

または

SPHASEx)

は、式14-2を使って計算できます。センターアライン モードでは独立タイ

ムベース

(ITB = 1)

が必要であるため、PTPERレジスタを周期として使いません。

14-2:

センターアライン モードでの

PHASEx/SPHASEx

レジスタ値の計算

式14-2に基づき、独立タイムベースで動作する場合に

PHASEx/SPHASEx

レジスタに格納す る値を計算した例を例14-39に示します。

14-39:

センターアライン モードでの

PWM

タイムベース周期の計算例

達成可能な

PWM

周期の最高分解能は、エッジアライン モードの場合

T

OSC、センターアライ ン モードの場合TOSC

* 2です。 PWMクロックのタイプはPCLKDIV<2:0>ビット(PTCON2<2:0>)

で指定します。タイマ

/

カウンタの有効化

/

無効化は

PTEN

ビット

(PTCON<15>)

のセット

/

ク リアにより設定します。PTENビットを使って

PMTMR

タイマをクリアする事もできます。

EIPU

ビット

(PTCON<10>)

をセットした場合、アクティブなマスタ周期レジスタ

(

内部のシャ ドーレジスタ

)

PWM

サイクルの終了を待たずに即時更新されます。

EIPU

ビットは

PMTMR

マスタ タイムベースに影響します。

14-40:

クロック プリスケーラの選択

14-41: PWM

タイムベース周期の選択

14-42: PWM

タイムベース周期の初期化

PHASEx, SPHASEx FOSC

FPWMPWM Input Clock Prescaler⋅2

---=

PHASEx, SPHASEx 120 MHz 20 kHz⋅ ⋅1 2 --- = 3000

=

PWM

周波数

(F

PWM

) = 20 kHz

PWM

入力クロック プリスケーラ = 1:1 システム オシレータ周波数

(F

OSC

) = 120 MHz

/* Select PWM time base input clock prescaler */

/* Choose divide ratio of 1:2 */

PTCON2bits.PCLKDIV = 1;

/* Select Time Base Period Control */

/* Choose one of these options */

PWMCON1bits.ITB = 0;/* PTPER provides the PWM time period value */

PWMCON1bits.ITB = 1;/* PHASEx/SPHASEx provides the PWM time period value */

/* Choose PWM time period based on FRC input clock */

/* PWM frequency is 100 kHz */

/* Choose one of the following options */

PTPER = 4808;

PHASEx = 4808;

SPHASEx = 4808;

高速 PWM 14

14.7.2 PWM デューティサイクル制御

デューティサイクルによって、PWM 出力がアクティブ状態を維持する時間の長さが決まりま す。各デューティサイクル レジスタでは、16ビットのデューティサイクル値を定義できます。

IUE

ビットをセットした場合、デューティサイクル値は

PWM

サイクルに同期せずに即時更新 されます。

IUE

ビットを「0」にクリアした場合、アクティブなレジスタは次の

PWM

サイクル の開始時に更新されます。

マスタ デューティサイクル レジスタ

(MDC)

により、複数の

PWM

ジェネレータが

1

つのデュー ティサイクル レジスタを共有できるようになります。MDC レジスタはマスタ タイムベース モードで重要な役割を持ちます。

また、各

PWM

ジェネレータはプライマリ デューティサイクル レジスタ

(PDCx)

とセカンダリ デューティサイクル レジスタ

(SDCx)

を備え、これらを使って各

PWM

出力に別々のデューティ サイクルを設定できます

(

: 一部のデバイスは SDCx

レジスタを備えません

)。

14.7.2.1

マスタ デューティサイクル

(MDC)

マスタ タイムベース ジェネレータはマスタ デューティサイクルを制御します。MDCSビット

(PWMCONx<8>)

は、PWMxHおよび

PWMxL

出力を、両方とも

PWM

マスタ デューティサイ クル レジスタ

(MDC)

で制御するのか、それとも

PWM

プライマリ デューティサイクル

(PDCx)

レジスタと

PWM

セカンダリ デューティサイクル

(SDCx)

レジスタを使って別々に制御するの かを指定します。

MDC

レジスタを使うと、複数の

PWM

ジェネレータで

1

つのデューティサイクル レジスタを 共有する事ができます。これにより、複数のデューティサイクル レジスタを更新する場合に比 べて

CPU

のオーバーヘッドを軽減できます。

14.7.2.2

プライマリ デューティサイクル

(PDCx)

ITB

ビット

(PWMCONx<9>)

を「1」にセットした場合、独立タイムベースはプライマリ デュー ティサイクルを制御します。

PDCx

レジスタは、プライマリ

PWM

出力

(PWMxH)

信号のデュー ティサイクル値を設定する入力レジスタです。

14-39:

プライマリ デューティサイクルのコンペア動作

PDCx Register PMTMR

Compare Logic PWMx Signal

0 15

15

MUX

MDC Register MDCS Select

0 1

CLK

15

0

0

<=

Note:独立出力モードの場合、PDCxPWMxHのみに影響します。

14.7.2.3

セカンダリ デューティサイクル

(SDCx)

ITB

ビットを「1」にセットした場合、PWMCONxレジスタ内の独立タイムベースがセカンダ リ デューティサイクル レジスタ

( SDC x)

を制御します。SDCxレジスタは、セカンダリ

PWM

出力

(PWMxL)

信号のデューティサイクル値を設定する入力レジスタです。

14-40:

セカンダリ デューティサイクルのコンペア

デューティサイクルは式14-3を使って計算できます。

14-3: MDC、PDCx、SDCx

の計算

MDC、 PDCx、 SDCx

レジスタに書き込むマスタ デューティサイクル、プライマリ デューティ

サイクル、セカンダリ デューティサイクルの値は、式14-3に基づいて計算します。

Note:

一部のデバイスは

SDCx

レジスタを備えていません。詳細は各デバイス データ

シート内の「高速

PWM」を参照してください。

Note 1:

デューティサイクル値が周期値以上である場合、信号のデューティサイクルは

100%です。

2:

デッドタイム補償を無効にしている場合、条件

[PDCx > ((ALTDTRx/2) -1)]

を満た さないと、PWMxHは

HIGH

を出力し続けます。

3:

条件

[PDCx > (ALTDTRx + DTRx - 1]

を満たさないと、下記のいずれかまたは両方 の結果が生じる可能性があります。

a) デッドタイムが生じない b) PWMxH

HIGH

を出力し続ける

SDCx Register STMRx

Compare Logic PWMx Signal

15 0

15

MUX

MDC Register MDCS Select

0 1

Clk

15

0

0

<=

Note:独立出力モードの場合、SDCxPWMxLのみに影響します。

MDC, PDCx, and SDCx FOSC

FPWMPWM Input Clock Prescaler

---⋅Desired Duty Cycle

=

FPWM

= PWM

周波数

FOSC

= システム オシレータ出力

PWM Input Clock Prescaler

= PCLKDIV<2:0>

ビット

(PTCON<2:0>)

で定義した値 Desired Duty Cycle = 0

1

の値

高速 PWM 14

14.7.2.4

デューティサイクル分解能

PWM

デューティサイクルのビット分解能は、式14-4(エッジアライン モードの場合

)

と式14-5

( センターライン モードの場合 )

を使って計算できます。

14-4:

エッジアライン モードのビット分解能の計算

14-5:

センターアライン モードのビット分解能の計算

14-43: PWM

デューティサイクルの選択

14-44: PWM

デューティサイクルの初期化

Bit Resolution 2 FOSC

FPWMPWM Input Clock Prescaler

---= log

Bit Resolution 2 FOSC

FPWMPWM Input Clock Prescaler⋅2

---= log

PWMCON1bits.MDCS = 0; /* PDCx/SDCx provides duty cycle value */

PWMCON1bits.MDCS = 1; /* MDC provides duty cycle value */

/* Initialize PWM Duty Cycle Value */

PDC1 = 2404;/* Independent Primary Duty Cycle is 50% of the period */

SDC1 = 2404;/* Independent Secondary Duty Cycle is 50% of the period */

MDC = 2404;/* Master Duty Cycle is 50% of the period */

ドキュメント内 dsPIC33E FRM - Section #. Title (ページ 71-76)

関連したドキュメント