增强型PWM(EPWM)的输出波形原理

文章详细介绍了增强型PWM(EPWM)的工作原理、配置方法以及如何输出50%占空比的PWM波和50%占空比的斩波。通过配置TBPRD、CMPA、CMPB等参数,可以实现不同模式的计数和不同占空比的波形输出。同时,文章还展示了如何通过延迟设置实现特定占空比的斩波效果,并给出了具体的频率和占空比计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、简介:

普通的PWM简单配置就能输出指定占空比的波形,一些特殊功能,比如反向,斩波,低电平或高电平指定相位,随意配置等,只能增强型PWM(EPWM)能做到。

EPWMX有3组,分别是EPWM1、EPWM2、EPWM3

EPWM1有2个通道,EPWM1A和EPWM1B
EPWM2有2个通道,EPWM2A和EPWM2B
EPWM3有2个通道,EPWM3A和EPWM3B

1.1、工作原理

(1)、配置值说明

  • TBPRD:计数周期值 > 0,配置宽度最大为16位,可配置计数到TBPRD值时产生什么动作,拉高、拉低或不变
  • ZERO:计数周期值0,以下简称0,可配置计数到ZERO值时产生什么动作,拉高、拉低或不变
  • CMPA:比较寄存器CMPA的值,配置宽度最大为16位,可配置计数到CMPA值时产生什么动作,拉高、拉低或不变
  • CMPB:比较寄存器CMPA的值,配置宽度最大为16位,可配置计数到CMPB值时产生什么动作,拉高、拉低或不变

(2)、计数模式

  • 递增模式:每个周期均是,计数从0向TBPRD递增
  • 递减模式:每个周期均是,计数从TBPRD向0递减
  • 增减模式:奇数周期,计数从0向TBPRD递增;偶数周期,计数从TBPRD向0递减。

在这里插入图片描述
(3)、使用方法

首先配置TBPRD、CMPA、CMPB的值,指定计数模式,再配置计数到TBPRD、ZERO、CMPA、CMPB值时分别产生什么动作,就能输出自己想要的波形。允许配置CMPA = CMPB,或CMPA > CMPB,或CMPA < CMPB

2、输出50%占空比PWM波

2.1、EPWM1A输出50%占空比的PWM波配置:

(1)、TBPRD = 256,1个计数周期
(2)、CMPA = 128,EPWM1A通道的相位
(3)、TBCTL ,配置为增减模式,计数器从0递增到TBPRD,再从TBPRD递减到0,配置TBCLK分频参数为1,且持续运行
(4)、AQCTLA,配置counter为0、counter为PRD时无输出(保持之前状态),counter为CMPA递增阶段输出高,counter为CMPA递减阶段输出低。

2.2、数值计算:
   占空比 = CMPA 相位 / TBPRD 周期

   或高电平占空比 = TBPRD - CMPA + CMPA / TBPRD / 2

(1)增减模式时

   频率 frequency = 主时钟 / TBCLK分频参数 / TBPRD周期 / 2

   注意:增减模式时,2个TBPRD周期才能输出1个周期PWM,所以多除了个2

(2)递增模式或递减模式时

   频率 frequency = 主时钟 / TBCLK分频参数 / TBPRD周期
2.3、输出原理:

在这里插入图片描述

2.4、实际波形:

在这里插入图片描述

频率 = (主时钟40M) / (TBCLK分频参数1) / (TBPRD周期256) / (2)= 78.13 K
占空比 = (相位128) / (TBPRD周期256) = 50 %

3、输出50%占空比斩波,50%占空比的PWM

斩波1周期包含1段PWM波和1段低电平,PWM波在斩波中的比例就叫斩波占空比

在这里插入图片描述

3.1、EPWM2A通道输出50%占空比斩波,50%占空比PWM的配置:

(1)、TBPRD = 512,1个计数周期
(2)、 CMPA = 256,EPWM2A通道的相位
(3)、TBCTL,配置为增减模式,计数器从0递增到TBPRD,再从TBPRD递减到0,配置TBCLK分频参数为1,且持续运行
寄存器 AQCTLA,配置counter为0、counter为PRD时无输出(保持之前状态),counter为CMPA递增阶段输出高,counter为CMPA递减阶段输出低。
(4)、DBCTL,配置同时打开EPWM2A上升沿和下降沿延时功能。
(5)、DBRED = 32,上升沿延时计数(时钟cycle数)
(6)、DBFED = 32,下降沿延时计数(时钟cycle数)
(7)、PCCTL = 0x0001,打开斩波功能
(8)、PCDUTY = 0x0000ffff,PWM的占空比50%(1的个数占32位的比例)

3.2、数值计算:
   斩波占空比 = CMPA 相位 / TBPRD周期
 
   PWM占空比 = 1的个数占32位的比例 

   1个时钟cycle = 1 / 主时钟 = 多少秒

(1)增减模式时

   斩波频率 frequency = 主时钟 / TBCLK分频参数 / TBPRD周期 / 2
   
   注意:增减模式时,2个TBPRD周期才能完整输出PWM,所以多除了个2

(2)增减模式时

   PWM频率 frequency = 主时钟 / 32
3.3、输出原理:

在这里插入图片描述

不延迟的斩波,有16个周期PWM输出

延迟的斩波,有15个周期PWM输出

注意:延迟1个周期输出PWM,即会丢失1个周期PWM,再输出剩下的15个周期PWM。
3.4、实际波形:

在这里插入图片描述

在这里插入图片描述

  斩波频率 = (主时钟40M) / (TBCLK分频参数1) / (TBPRD周期512) / (2) = 39.0625 K
  上图中斩波周期是25.6 us,斩波频率 = 1 / 0.0000256 s = 39.0625 K

  斩波占空比 = (CMPA 相位 256) / (TBPRD周期 512) = 50%
  配置了延迟,斩波占空比变成了 15 * 800 ns / 25.6 us = 12 us / 25.6 us = 46.875 %

  PWM频率 = (主时钟 40M) / 32 = 1.25 M
  PWM占空比 = 1的个数占32位的比例 = 50%
  
  1个时钟cycle = 1 / (主时钟 40M)  = 0.000000025 s
  32 cycle = 0.000000025 s * 32 = 0.0000008 s = 800 ns(恰好为1个PWM周期)

4、输出低电平25%占空比PWM

输出低电平或高电平指定占空比的PWM,需要CPMA和CPMB这2个相位配合,配置当counter为CPMA时输出指定动作,配置当counter为CPMB时输出指定动作。

4.1、EPWM1B通道输出低电平25%占空比的PWM配置:

(1)TBPRD = 256,1个计数周期
(2)CMPA = 128,相位1
(3) CMPB = 64,相位2
(4)TBCTL,配置为增减模式,计数器从0递增到TBPRD,再从TBPRD递减到0,配置TBCLK分频参数为1,且持续运行
(5)AQCTLB,配置counter为0、counter为PRD时无输出(保持之前状态),counter为CMPA递增阶段、递减阶段时无输出(保持之前状态)。counter为CMPB递增阶段时输出高,递减阶段时输出低。

4.2、输出原理:

在这里插入图片描述

4.3、实际波形:

在这里插入图片描述

 频率 frequency = 主时钟40M / (TBCLK分频参数1) / (TBPRD周期256) / 2 = 78.13 K

 低电平占空比 = CMPB 相位 / TBPRD 周期 = 64 / 256 = 25%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值