レジスタ 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 PWMxHとPWMxLの位相
PDCx PWMxHとPWMxLのデューティサイクル PTPER PWMxHとPWMxLの周期
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 PWMxHとPWMxLの位相
PDCx PWMxHとPWMxLのデューティサイクル STPER PWMxHとPWMxLの周期
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 PWMxHとPWMxLの位相
MDC PWMxHとPWMxLのデューティサイクル PTPER PWMxHとPWMxLの周期
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 PWMxHとPWMxLの位相
MDC PWMxHとPWMxLのデューティサイクル STPER PWMxHとPWMxLの周期
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 PWMxHとPWMxLの周期
PDCx PWMxHとPWMxLのデューティサイクル
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 PWMxHとPWMxLの周期
MDC PWMxHとPWMxLのデューティサイクル 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 PWMxHとPWMxLの周期
PDCx PWMxHとPWMxLのデューティサイクル
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 PWMxHとPWMxLの周期
MDC PWMxHとPWMxLのデューティサイクル
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 PWMxHとPWMxLの位相
PDCx PWMxHとPWMxLのデューティサイクル PTPER PWMxHとPWMxLの周期
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 PWMxHとPWMxLの位相
PDCx PWMxHとPWMxLのデューティサイクル STPER PWMxHとPWMxLの周期
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 PWMxHとPWMxLの位相
PDCx PWMxHとPWMxLのデューティサイクル PTPER PWMxHとPWMxLの周期
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 PWMxHとPWMxLの位相
PDCx PWMxHとPWMxLのデューティサイクル STPER PWMxHとPWMxLの周期
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 PWMxHとPWMxLの周期
PDCx PWMxHとPWMxLのデューティサイクル
DTRx PWMxH立ち上がりエッジのデッドタイム
ALTDTRx PWMxL立ち上がりエッジのデッドタイム