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

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

43.6 PWM ジェネレータ

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

デューティサイクルとは、PWM出力がアクティブ状態にある時間の長さを設定するもの です。各デューティ サイクル レジスタには、16ビットのデューティ サイクル値を指定で きます。PWM制御(PWMCONx<0>)レジスタの即時更新有効化(IUE)ビットをセットした 場合、デューティサイクル値は任意の時点で更新できます。IUE ビットが「0」の場合、

アクティブなレジスタが次のPWMサイクルの開始時に更新されます。

マスター デューティ サイクル(MDC)レジスタを使用すると、複数のPWMジェネレータ で1つのデューティ サイクル レジスタを共用できます。マスター タイム ベース モードで は、MDCレジスタが重要な役割を果たします。

また、各PWMジェネレータにはプライマリデューティサイクル(PDCx)レジスタとセカ ンダリ デューティ サイクル(SDCx)レジスタがあり、各PWMに2種類の異なったデュー ティ サイクルを供給します。

43.6.2.1 マスターデューティサイクル(MDC)

マスターデューティサイクルは、マスタータイムベースジェネレータによって制御され ます。PWM制御(PWMCONx<8>)レジスタのマスター デューティ サイクル レジスタ選択

(MDCS)ビットを使用すると、PWMxHおよびPWMxL出力の両デューティ サイクルとも

PWMマスターデューティサイクル(MDC)レジスタで制御するか、各をPWMプライマ リデューティサイクル(PDCx)とPWMセカンダリデューティサイクル(SDCx)レジスタ で制御するかを選択できます。

MDCレジスタを使用して1つのデューティ サイクル レジスタを複数のPWMジェネレー タで共用する場合は、複数のデューティサイクルレジスタを更新する場合に比べて CPU のオーバーヘッドを軽減できます。

43.6.2.2 プライマリ デューティ サイクル(PDCx)

PWM制御(PWMCONx<9>)レジスタの独立タイムベースモード(ITB)ビットを「1」に セットすると、プライマリデューティサイクルは独立タイムベースによって制御されま す。PDCxレジスタが、プライマリPWM出力(PWMxH)信号のデューティ サイクル値を 供給する入力レジスタとなります。

/* 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;

DS70323B_JP -ページ43-34 © 2009 Microchip Technology Inc.

43-7: プライマリ デューティ サイクルの比較

43.6.2.3 セカンダリデューティサイクル(SDCx)

PWMCONxレジスタのITBビットを「1」にセットすると、セカンダリデューティサイ

クルは独立タイム ベースによって制御されます。SDCxレジスタが、セカンダリPWM出

力(PWMxL)信号のデューティ サイクル値を供給する入力レジスタとなります。

43-8: セカンダリ デューティ サイクルの比較

PDCx Register PMTMR or PTMRx

Compare Logic PWMx signal

0 15

15

MUX

MDC Register MDCS select

0 1

Clk

15

0

0

<=

: 独立出力モードでは、PDCxPWMxHにのみ影響します。

SDCx Register STMRx

Compare Logic PWMx signal

15 0

15

MUX

MDC Register MDCS select

0 1

Clk

15

0

0

<=

: 独立出力モードでは、SDCxPWMxLにのみ影響します。

© 2009 Microchip Technology Inc. DS70323B_JP -ページ43-35

高速 PWM

43

デューティ サイクルは、式43-4から求められます。

式 43-4: MDC、PDCx、SDCxの計算

マスター、独立プライマリ、独立セカンダリの各デューティ サイクルを使用する場合、式 43-4に基づくレジスタの値がMDC、PDCx、SDCxレジスタにそれぞれ格納されます。

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

PWMクロックでプリスケーラ比を最大に設定した場合、PWMのデューティ サイクルお よび周期のビット分解能はLSB当たり1.04 nsです。PWMデューティサイクルのビット分 解能は、式43-5によって求められます。

式 43-5: ビット分解能の計算

表43-1に、PWMクロック周波数を最大とした場合の、PWM周波数に対するデューティ サ イクルビット分解能を示します。

クロック周波数が最大の場合、クロック周期は1.04 nsとなります。PWMクロックのプリ スケーラをそれ以外に設定した場合、PWMの分解能は低くなります。

ここで: Desired PWM =

PWM Frequency 1

7.37 MHz 1.04 ns * PWM Input Clock Prescaler REFCLK Desired Duty Cycle

MDC, PDCx, SDCx = *

1: デューティ サイクル値が最小値 (0x0008) より小さい場合、信号のデューティ サイクルは0となります。0x0008は、PWMジェネレータから出力パルスを生 成できる最小デューティサイクル値です。

2: デューティサイクル値が(周期値 - 0x0008)より大きい場合、デューティサイ

クルは100%となります。

3: デューティ サイクル値が周期値以上の場合、信号のデューティ サイクルは100

%となります。

43-1: PWMの周波数とデューティ サイクル分解能

PWM Duty Cycle Resolution PWM Frequency

16 bits 14.6 kHz

15 bits 29.3 kHz

14 bits 58.6 kHz

13 bits 117.2 kHz

12 bits 234.4 kHz

11 bits 468.9 kHz

10 bits 937.9 kHz

9 bits 1.87 MHz

8 bits 3.75 MHz

Bit Resolution = log2

7.37 MHz REFCLK

* PWM Period

1.04 ns * PWM Input Clock Prescaler

DS70323B_JP -ページ43-36 © 2009 Microchip Technology Inc.

例 43-11: PWMデューティ サイクルの選択

例 43-12: PWMデューティ サイクルの初期化

43.6.3 デッド タイムの生成

デッドタイムとは、相補PWM信号が一定時間オフになるまでPWM出力がオンにならな いようにする、プログラマブルな時間周期のことです。デッド タイム レジスタ(DTRx)ま たは代替デッド タイム(ALTDTRx)レジスタで設定します。

高速PWMモジュールには、4つのデッドタイム制御ユニットがあります。各デッドタイ ム制御ユニットには、固有のデッドタイム値があります。

デッド タイムは、PWMのいずれかのペアが相補出力モードで動作している場合に生成で きます。パワー トランジスタは瞬時にスイッチできないため、多くのパワー変換回路では デッドタイムが必要です。相補ペアの片方のPWM 出力のターンオフイベントからもう 一方の PWM出力のターンオンイベント、または他のトランジスタのターンオンイベン トまでの間に、一定の時間を置くことによって、貫通電流を回避する必要があります。

高速 PWMモジュールでは、正のデッド タイムと負のデッド タイムを設定できます。正 のデッドタイムは、PWM出力のオーバーラップを回避します。正のデッドタイムの生成 は、すべての出力モードで可能です。正のデッドタイム回路は、PWM信号のリーディン グ エッジをブランキング(ゲーティング)する役割を果たします。負のデッド タイムは、

PWMxHとPWMxL信号を強制的にオーバーラップさせます。負のデッド タイムが機能す

るのは、片方のPWM出力がオンになると、その時点で現在オンになっているPWM出力 をデッドタイムの長さだけ更にオンのままに ( オーバーラップ ) させる場合です。コン バータ方式によっては、一定限度の量の貫通電流が必要となる場合があります。

負のデッド タイムを指定できるのは、相補 PWM 信号に対してのみです。負のデッド タ イムは、ユーザー、電流制限、フォルトによるオーバーライドには適用されません。この モードを実装するには、PWM出力をPHASExレジスタの位相シフト値だけシフトするこ とによって、PWM出力が他方のPWM出力チャネルのPWM信号とオーバーラップする ようにします。

デッドタイムロジックはゲートの役割を果たし、アサートされたPWM 信号またはオー バーライド値を出力に伝達します。デッドタイムロジック自体がPWM 出力をアサート することはありません。

/* Select either Master Duty cycle or Independent Duty cycle */

PWMCON1bits.MDCS = 0; // PDC1 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

© 2009 Microchip Technology Inc. DS70323B_JP -ページ43-37

高速 PWM

43

43-9: デュアル デッド タイムの波形

デッド タイムの機能は、PWMジェネレータごとに無効化できます。デッド タイムの機能 は、PWM制御(PWMCONx<7:6>)レジスタのデッドタイム制御(DTC<1:0>)ビットで制御 します。

43.6.4 デッド タイム ジェネレータ

高速PWMモジュールの相補出力の各ペアには、デッド タイムを挿入するための12ビッ トのダウン カウンタがあります。各デッド タイム ユニットには、デューティ サイクル比 較出力に接続された立ち上がり/立ち下がりエッジ検知器があります。エッジの立ち上が りまたは立ち下がりが検出されると、対応するデッドタイムタイマによって一定の遅延 時間が挿入されるのを待ってから、相補出力の片方の信号が遷移します。

デッド タイム ロジックは、PWM 信号の立ち上がりおよび立ち下がりエッジを監視しま す。デッド タイム カウンタは、対応するPWM 信号が非アクティブになるとリセットさ れ、PWM信号がアクティブになるとカウントを開始します。PWM出力信号のソースとし て選択した信号は、すべてデッド タイム ロジックによって処理されます。

デッドタイムは、式43-6に示す式によって求められます。

式 43-6: デッド タイムの計算

デッドタイム制御モードには、次の3種類があります。

• 正のデッド タイム

正のデッドタイムモードでは、PWMxHとPWMxLの両方の出力がオフとなる時間の 長さを定義します。このモードは、アプリケーション設計において、あるパワー トラ ンジスタを一定時間オフにしてから別のトランジスタをオンにする場合に有用です。

これは「Break before Make」スイッチに相当します。正のデッドタイムモードを指定

した場合、PWMxH出力のデッドタイムはDTRxレジスタで設定し、PWMxL出力の デッド タイムはALTDTRxレジスタで設定します。

• 負のデッドタイム

負のデッド タイム モードでは、PWMxHとPWMxLの両方の出力がオンとなる時間の 長さを定義します。このモードは、パワー トランジスタのスイッチング時に電流の流 れる経路が必要となる電流給電トポロジに有用です。これは「Make before Break」ス イッチに相当します。負のデッドタイムモードを指定した場合、PWMxL出力の負の デッドタイムは DTRx レジスタで設定し、PWMxH 出力の負のデッドタイムは

ALTDTRxレジスタで指定します。

• デッドタイムなし

デッド タイム ロジックは、PWMジェネレータごとに無効化できます。デッド タイム の機能は、PWMCONxレジスタのDTC<2:0>ビットで制御します。

PWMxH PWMxL

PWMxL

PWMxL PWMxH

PWMxH No dead time

Positive dead time

Negative dead time

DTRx ALTDTRx

DTRx =

7.37 MHz 1.04 ns * PWM Input Clock Prescaler REFCLK Desired Dead Time

*

関連したドキュメント