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

プッシュプル PWM モード

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

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

14.4 アーキテクチャの概要

14.6.1 プッシュプル PWM モード

プッシュプル モードは、PWM出力を

PWMxH

ピンと

PWMxL

ピンに交互に出力します。プッ シュプル モードの標準的なアプリケーション例を14.16「アプリケーション情報」に記載して います。

各プッシュプル

PWM

モードの

PWM

出力と設定用サンプルコードを図14-7~図14-14および 例14-6~例14-13に示します。

14-7:

プッシュプル

PWM

モード – 独立デューティサイクル

/

独立位相、固定プライマリ周期、エッジアライン

Note:

以降の各図とサンプルコードに記載されている機能とレジスタは、一部のデバイ

スでは利用できません。詳細は各デバイス データシート内の「高速

PWM」を参

照してください。

PTPER

PHASE1 = 0 PHASE2 PHASE3

PDC1

PHASEx PWMxHPWMxLの位相

PDCx PWMxHPWMxLのデューティサイクル PTPER PWMxHPWMxLの周期

DTRx PWMxH立ち上がりエッジのデッドタイム

ALTDTRx PWMxL立ち上がりエッジのデッドタイム PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

Start of PWM Cycle

PDC1 PDC2

PDC2 PDC3

PDC3 Complete

PWM1L Cycle

DTR1

ALTDTR1

ALTDTR2

DTR2

ALTDTR3

DTR3

高速 PWM 14

14-6:

プッシュプル

PWM

モード – 独立デューティサイクル

/

独立位相、固定プライマリ周期、エッジアライン

14-8:

プッシュプル

PWM

モード – 独立デューティサイクル

/

独立位相、固定セカンダリ周期、エッジアライン

/* Set PWM Period on Primary Time Base */

PTPER = 1000;

/* Set Phase Shift */

PHASE1 = 0;

PHASE2 = 100;

PHASE3 = 200;

/* Set Duty Cycles */

PDC1 = 150;

PDC2 = 200;

PDC3 = 400;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Push-Pull */

IOCON1 = IOCON2 = IOCON3 = 0xC800;

/* Set Primary Time Base, Edge-Aligned Mode and Independent Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0000;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

PHASEx PWMxHPWMxLの位相

PDCx PWMxHPWMxLのデューティサイクル STPER PWMxHPWMxLの周期

DTRx PWMxH立ち上がりエッジのデッドタイム ALTDTRx PWMxL立ち上がりエッジのデッドタイム

STPER

PHASE1 = 0 PHASE2 PHASE3

PDC1 PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

Start of PWM Cycle

PDC1 PDC2

PDC2 PDC3

PDC3 Complete

PWM1L Cycle

DTR1

ALTDTR1

ALTDTR2

DTR2

ALTDTR3

DTR3

14-7:

プッシュプル

PWM

モード – 独立デューティサイクル

/

独立位相、固定セカンダリ周期、エッジアライン

14-9:

プッシュプル

PWM

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

/

独立位相、固定プライマリ周期、エッジアライン

/* Set PWM Period on Secondary Time Base */

STPER = 1000;

/* Set Phase Shift */

PHASE1 = 0;

PHASE2 = 100;

PHASE3 = 200;

/* Set Duty Cycles */

PDC1 = 150;

PDC2 = 200;

PDC3 = 400;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Push-Pull */

IOCON1 = IOCON2 = IOCON3 = 0xC800;

/* Set Secondary Time Base, Edge-Aligned Mode and Independent Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0008;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

PHASEx PWMxHPWMxLの位相

MDC PWMxHPWMxLのデューティサイクル PTPER PWMxHPWMxLの周期

DTRx PWMxH立ち上がりエッジのデッドタイム ALTDTRx PWMxL立ち上がりエッジのデッドタイム

PTPER

PHASE1 = 0 PHASE2 PHASE3

MDC PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

Start of PWM Cycle

MDC MDC

MDC MDC

MDC Complete

PWM1L Cycle

DTR1

ALTDTR1

ALTDTR2

DTR2

ALTDTR3

DTR3

高速 PWM 14

14-8:

プッシュプル

PWM

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

/

独立位相、固定プライマリ周期、エッジアライン

14-10:

プッシュプル

PWM

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

/

独立位相、固定セカンダリ周期、エッジアライン

/* Set PWM Period on Primary Time Base*/

PTPER = 1000;

/* Set Phase Shift */

PHASE1 = 0;

PHASE2 = 100;

PHASE3 = 200;

/* Set Duty Cycles */

MDC = 200;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Push-Pull */

IOCON1 = IOCON2 = IOCON3 = 0xC800;

/* Set Primary Time Base, Edge-Aligned Mode and Master Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0100;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

PHASEx PWMxHPWMxLの位相

MDC PWMxHPWMxLのデューティサイクル STPER PWMxHPWMxLの周期

DTRx PWMxH立ち上がりエッジのデッドタイム

ALTDTRx PWMxL立ち上がりエッジのデッドタイム STPER

PHASE1 = 0 PHASE2 PHASE3

MDC PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

Start of PWM Cycle

MDC MDC

MDC MDC

MDC Complete

PWM1L Cycle

DTR1

ALTDTR1

ALTDTR2

DTR2

ALTDTR3

DTR3

14-9:

プッシュプル

PWM

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

/

独立位相、固定セカンダリ周期、エッジアライン

14-11:

プッシュプル

PWM

モード – 独立デューティサイクル

/

独立周期、位相シフトなし、エッジアライン

/* Set PWM Period on Secondary Time Base*/

STPER = 1000;

/* Set Phase Shift */

PHASE1 = 0;

PHASE2 = 100;

PHASE3 = 200;

/* Set Duty Cycles */

MDC = 200;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Push-Pull */

IOCON1 = IOCON2 = IOCON3 = 0xC800;

/* Set Secondary Time Base, Edge-Aligned Mode and Master Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0108;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

PWM1H PWM1L PWM2H PWM2L PWM3H PWM3L

PDC1 PDC2 PDC3 PHASE1 PHASE2 PHASE3

Start of PWM Cycle

Complete PWM1L Cycle

PHASEx PWMxHPWMxLの周期

PDCx PWMxHPWMxLのデューティサイクル

DTRx PWMxH立ち上がりエッジのデッドタイム

ALTDTRx PWMxL立ち上がりエッジのデッドタイム ALTDTR3

ALTDTR2

ALTDTR1 DTR1

DTR2

DTR3

高速 PWM 14

14-10:

プッシュプル

PWM

モード – 独立デューティサイクル

/

独立周期、位相シフトなし、エッジアライン

14-12:

プッシュプル

PWM

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

/

独立周期、位相シフトなし、エッジアライン

/* Set PWM Periods on PHASEx Registers */

PHASE1 = 1000;

PHASE2 = 900;

PHASE3 = 800;

/* Set Duty Cycles */

PDC1 = 200;

PDC2 = 300;

PDC3 = 400;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Push-Pull */

IOCON1 = IOCON2 = IOCON3 = 0xC800;

/* Set Independent Time Bases, Edge-Aligned Mode and Independent Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0200;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

PWM1H PWM1L PWM2H PWM2L PWM3H PWM3L

MDC PHASE1 PHASE2 PHASE3

Start of PWM Cycle

Complete PWM1L Cycle

PHASEx PWMxHPWMxLの周期

MDC PWMxHPWMxLのデューティサイクル DTRx PWMxH立ち上がりエッジのデッドタイム ALTDTRx PWMxL立ち上がりエッジのデッドタイム ALTDTR3

ALTDTR2

ALTDTR1 DTR1

DTR2

DTR3

14-11:

プッシュプル

PWM

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

/

独立周期、位相シフトなし、エッジアライン

14-13:

プッシュプル

PWM

モード – 独立デューティサイクル

/

独立周期、位相シフトなし、センターアライン

/* Set PWM Periods on PHASEx Registers */

PHASE1 = 1000;

PHASE2 = 900;

PHASE3 = 800;

/* Set Duty Cycles */

MDC = 200;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Push-Pull */

IOCON1 = IOCON2 = IOCON3 = 0xC800;

/* Set Independent Time Bases, Edge-Aligned Mode and Master Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0300;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

Start of PWM Cycle

PHASE1

PHASE2

PHASE3

PDC1 PDC2

PDC2 PDC3

PDC3 PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

Complete PWM1L and PWM1H Cycle

PHASEx PWMxHPWMxLの周期

PDCx PWMxHPWMxLのデューティサイクル

DTRx PWMxH立ち下がりエッジ前のデッドタイム

ALTDTRx PWMxL立ち下がりエッジ前のデッドタイム DTR1

ALTDTR1 DTR2 ALTDTR2

DTR3 ALTDTR3

PDC1

高速 PWM 14

14-12:

プッシュプル

PWM

モード – 独立デューティサイクル

/

独立周期、位相シフトなし、センターアライン

14-14:

プッシュプル

PWM

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

/

独立周期、位相シフトなし、センターアライン

/* Set PWM Periods on PHASEx Registers */

PHASE1 = 1000;

PHASE2 = 900;

PHASE3 = 800;

/* Set Duty Cycles */

PDC1 = 200;

PDC2 = 300;

PDC3 = 400;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Push-Pull */

IOCON1 = IOCON2 = IOCON3 = 0xC800;

/* Set Independent Time Bases, Center-Aligned Mode and Independent Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0204;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

PHASEx PWMxHPWMxLの周期

MDC PWMxHPWMxLのデューティサイクル

DTRx PWMxH立ち下がりエッジ前のデッドタイム

ALTDTRx PWMxL立ち下がりエッジ前のデッドタイム Start of

PWM Cycle

PHASE1

PHASE2

PHASE3 PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

Complete PWM1L and PWM1H Cycle

DTR1 ALTDTR1

DTR2 ALTDTR2

DTR3 ALTDTR3

MDC MDC MDC

MDC

MDC MDC

14-13:

プッシュプル

PWM

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

/

独立周期、位相シフトなし、センターアライン /* Set PWM Periods on PHASEx Registers */

PHASE1 = 1000;

PHASE2 = 900;

PHASE3 = 800;

/* Set Duty Cycles */

MDC = 200;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Push-Pull */

IOCON1 = IOCON2 = IOCON3 = 0xC800;

/* Set Independent Time Bases, Center-Aligned Mode and Master Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0304;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

高速 PWM 14 14.6.2 相補 PWM モード

相補

PWM

モードでは、PWMxH出力は

PWMxL

出力の相補信号となります。相補

PWM

モー ドの標準的なアプリケーション例を14.16「アプリケーション情報」に記載しています。

各相補

PWM

モードの

PWM

出力と設定用サンプルコードを図14-15~図14-22および 例 14-14~例14-21に示します。

14-15:

相補

PWM

モード – 独立デューティサイクル

/

独立位相、固定プライマリ周期、エッジアライン

Note:

以降の各図とサンプルコードに記載されている機能とレジスタは、一部のデバイ

スでは利用できない場合があります。詳細は各デバイス データシート内の「高速

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

PTPER

PHASE1 = 0 PHASE2 PHASE3

PDC1 PDC2

PDC3 PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

Start of PWM Cycle

PHASEx PWMxHPWMxLの位相

PDCx PWMxHPWMxLのデューティサイクル PTPER PWMxHPWMxLの周期

DTRx PWMxH立ち上がりエッジのデッドタイム

ALTDTRx PWMxL立ち上がりエッジのデッドタイム DTR1

DTR2

DTR3

ALTDTR1

ALTDTR2

ALTDTR3

14-14:

相補

PWM

モード – 独立デューティサイクル

/

独立位相、固定プライマリ周期、エッジアライン

14-16:

相補

PWM

モード – 独立デューティサイクル

/

独立位相、固定セカンダリ周期、エッジアライン

/* Set PWM Period on Primary Time Base */

PTPER = 1000;

/* Set Phase Shift */

PHASE1 = 0;

PHASE2 = 100;

PHASE3 = 200;

/* Set Duty Cycles */

PDC1 = 150;

PDC2 = 200;

PDC3 = 400;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Complementary */

IOCON1 = IOCON2 = IOCON3 = 0xC000;

/* Set Primary Time Base, Edge-Aligned Mode and Independent Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0000;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

STPER

PHASE1 = 0 PHASE2 PHASE3

PDC1 PDC2

PDC3 PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

Start of PWM Cycle

PHASEx PWMxHPWMxLの位相

PDCx PWMxHPWMxLのデューティサイクル STPER PWMxHPWMxLの周期

DTRx PWMxH立ち上がりエッジのデッドタイム

ALTDTRx PWMxL立ち上がりエッジのデッドタイム DTR1

DTR2

DTR3

ALTDTR1

ALTDTR2

ALTDTR3

高速 PWM 14

14-15:

相補

PWM

モード – 独立デューティサイクル

/

独立位相、固定セカンダリ周期、エッジアライン

14-17:

相補

PWM

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

/

独立位相、固定プライマリ周期、エッジアライン

/* Set PWM Period on Secondary Time Base */

STPER = 1000;

/* Set Phase Shift */

PHASE1 = 0;

PHASE2 = 100;

PHASE3 = 200;

/* Set Duty Cycles */

PDC1 = 150;

PDC2 = 200;

PDC3 = 400;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Complementary */

IOCON1 = IOCON2 = IOCON3 = 0xC000;

/* Set Secondary Time Base, Edge-Aligned Mode and Independent Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0008;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

PTPER

PHASE1 = 0 PHASE2 PHASE3

MDC PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

MDC MDC Start of

PWM Cycle

PHASEx PWMxHPWMxLの位相

PDCx PWMxHPWMxLのデューティサイクル PTPER PWMxHPWMxLの周期

DTRx PWMxH立ち上がりエッジのデッドタイム ALTDTRx PWMxL立ち上がりエッジのデッドタイム

DTR1

DTR2

DTR3

ALTDTR1

ALTDTR2

ALTDTR3

14-16:

相補

PWM

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

/

独立位相、固定プライマリ周期、エッジアライン

14-18:

相補

PWM

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

/

独立位相、固定セカンダリ周期、エッジアライン

/* Set PWM Period on Primary Time Base*/

PTPER = 1000;

/* Set Phase Shift */

PHASE1 = 0;

PHASE2 = 100;

PHASE3 = 200;

/* Set Duty Cycles */

MDC = 200;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Complementary */

IOCON1 = IOCON2 = IOCON3 = 0xC000;

/* Set Primary Time Base, Edge-Aligned Mode and Master Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0100;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

STPER

PHASE1 = 0 PHASE2 PHASE3

MDC PWM1H

PWM1L PWM2H PWM2L PWM3H PWM3L

MDC MDC Start of

PWM Cycle

PHASEx PWMxHPWMxLの位相

PDCx PWMxHPWMxLのデューティサイクル STPER PWMxHPWMxLの周期

DTRx PWMxH立ち上がりエッジのデッドタイム

ALTDTRx PWMxL立ち上がりエッジのデッドタイム DTR1

DTR2

DTR3

ALTDTR1

ALTDTR2

ALTDTR3

高速 PWM 14

14-17:

相補

PWM

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

/

独立位相、固定セカンダリ周期、エッジアライン

14-19:

相補

PWM

モード – 独立デューティサイクル

/

独立周期、位相シフトなし、エッジアライン

/* Set PWM Period on Secondary Time Base*/

STPER = 1000;

/* Set Phase Shift */

PHASE1 = 0;

PHASE2 = 100;

PHASE3 = 200;

/* Set Duty Cycles */

MDC = 200;

/* Set Dead Time Values */

DTR1 = DTR2 = DTR3 = 25;

ALTDTR1 = ALTDTR2 = ALTDTR3 = 25;

/* Set PWM Mode to Complementary */

IOCON1 = IOCON2 = IOCON3 = 0xC000;

/* Set Secondary Time Base, Edge-Aligned Mode and Master Duty Cycles */

PWMCON1 = PWMCON2 = PWMCON3 = 0x0108;

/* Configure Faults */

FCLCON1 = FCLCON2 = FCLCON3 = 0x0003;

/* 1:1 Prescaler */

PTCON2 = 0x0000;

/* Enable PWM Module */

PTCON = 0x8000;

PWM1H PWM1L PWM2H PWM2L PWM3H PWM3L

PDC1 PDC2 PDC3 PHASE1 PHASE2 PHASE3

Start of PWM Cycle

DTR1

DTR2

DTR3

ALTDTR1

ALTDTR2

ALTDTR3

PHASEx PWMxHPWMxLの周期

PDCx PWMxHPWMxLのデューティサイクル

DTRx PWMxH立ち上がりエッジのデッドタイム

ALTDTRx PWMxL立ち上がりエッジのデッドタイム

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

関連したドキュメント