6.dsp-epwm波模块

目录

一、F28034包含的pwm波功能模块 

 二、EPWM各个模块配置与工作原理

1.TB模块

(1)关键信号和寄存器

(2)ePWM 周期和频率的计算

2.cc模块

3、AQCTL

(1)动作限定模块事件优先级

(2)动作限定模块一般配置条件下的输出波形

  (3) AQCTLA寄存器的位说明:

  (4)AQCTLB寄存器的位说明:

         4、死区DB

三、epwm配置步骤


一、F28034包含的pwm波功能模块 

可以看出F2803x系列有中断、ADC的排序触发、引脚pwm波shu'chu 

可以看出F2803x系列有7路epwm波分别是ePWM1、ePWM2、ePWM3、ePWM4、ePWM5、ePWM6 、ePWM7。

 二、EPWM各个模块配置与工作原理

1.TB模块

寄 存 器地 址是否具有映射功能描 述
TBCTL0x0000TB控制寄存器
TBSTS0x0001TB状态寄存器
TBPHSHR0x0002HRPWM相位扩展寄存器
TBPHS0x0003TB相位寄存器
TBCTR0x0004TB计数寄存器
TBPRD0x0005TB周期寄存器

图1 TB模块 

(1)关键信号和寄存器

①ePWMxSYNCI:时基同步信号输入。输入脉冲用于时基计数器与之前的 ePWM 模块同步,每个 ePWM 模块可以通过软件配置为使用或者忽略此信号。对于第一 个 ePWM 模块,这个信号从外部引脚或得。随后的模块的同步信号可以由其他 ePWM 模块传递过来。例如第 2 个模块的同步信号可以从第 1 个模块的同步信号输出或 得,第 3 个模块由第 2 个模块产生,以此类推。 ②ePWMxSYNCO:时基同步信号输出。输出脉冲用于随后的 ePWM 的时基计数 器同步。ePWM 模块产生该信号来源于下列 3 个事件源中的一件。

--ePWMxSYNCI(同步输入脉冲)。

--CTR=ZERO,时基计数器等于 0(TBCTR=0X0000)。

--CTR=CMPB,时基计数器等于比较寄存器。

CTR=PRD,时基计数器等于指定周期值。无论什么时候当时基计数器的值 与激活的周期寄存器(相对于影子寄存器而言)的值相等的时候,就会产生此信 号。

CTR=ZERO,时基计数器等于 0。无论什么时候当时基计数器的值为 0 的时 候,会产生此信号。

CTR=CMPB,时基计数器等于比较寄存器。时基计数器的值等于激活的比较 寄存器 B 的时候,会产生此信号。该信号由比较计数器模块产生,用于同步输出 逻辑。

CTR_dir:时基计数器方向。表明时基计数器的计数方向,当高电平时,计数器向上计数,低电平时则向下计数。

CTR_max:时基计数器的值为最大值。当时基计数器到最大值时会产生此 信号。该信号用作状态指示。

TBCLK:时基时钟信号。这个信号来源于预分频的系统时钟信号,用于所 有的 ePWM 模块。该信号确定了时基计数器增减的速率。 

(2)ePWM 周期和频率的计算

 (a)时基信号-TBCTL寄存器

TBCTL (Time Base Control Register): 它控制EPWM波的时间基准,如计数器模式和计数器时钟分频等。它还可以配置同步和复位选项。

如图1所示, 计数时钟TBCLK是来自系统时钟SYSCLKOUT,再经过TBTCL分频其中TBCLK=SYSCLKOUT/(HSPCLKDIV*CLKDIV)

(b)周期数值-TBPRD寄存器

        位15-0 TBPRD:基准计时器周期值,设置PWM频率。这16位用于存储基准计时器(TB)的周期值。基准计时器通过递增计数器值来计时,当计数器值达到TBPRD值时,计数器被重置为0。TBPRD的值可用于控制PWM波形输出的频率。

  • 如果TBCTL [PRDLD] = 0,则启用影子寄存器,任何写或读取操作将自动执行到影子寄存器。在这种情况下,当时间基准计数器等于零时,活动寄存器将从影子寄存器中加载。
  • 如果TBCTL [PRDLD] = 1,则禁用影子寄存器,任何写或读取操作将直接指向活动寄存器,也就是直接控制硬件的寄存器。
  • 活动寄存器和影子寄存器共享相同的内存映射地址。

(c)计数模式-TBCTR寄存器

        位15-0 TBCTR:基准计时器计数器值,这16位用于存储基准计时器的当前计数值,在每个时钟周期内自动更新。当计数器的计数值达到计时器的周期值(通过设置TBPRD寄存器实现)时,计数器会重新加载,并产生一个中断或同步输出信号。这些位表示的是基准计时器的计数值,可以通过访问TBCTR寄存器来读取当前计数器值或向计数器写入初始计数值。在访问TBCTR寄存器之前,需要先选择正确的计数器模式、时钟源、分频器和同步选项,并在需要时启用或禁用相位同步、影子寄存器等选项。

        (a)工作模式:设置时基计数器的计数模块。可以工作在向上计数(递增计数)、向下计 数(递减计数)、向上-向下计数模式(先递增后递减计数)。

       (b)产生事件: 图1中中计数模式,来自TBCTL的计数信号与TBPRD的时间周期信号做比,有如下的

--CTR=PRD:时基计数器的值与周期寄存器的值相同(TBCTR=TBPRD)。

--CTR=ZERO:时基计数器的值为 0(TBCTR=0x0000)。

        时基计数器按照指定模式进行计数,递增时会达到与周期寄存器的值一致, 递减时则会减到最小值 0。

下列以周期数值为4为例。

①向上-向下计数模式(先递增后递减)

        在此模式下,时基计数器先从 0 开始向上计数(递增)直到递增到周期寄存器的值 4,然后再由 4 向下计数(递减)直到减到 0,再重复以上动作,如下图 所示

        周期:TPWM=2*(TBPRD+1)*TBCLK

        在此模式下,随着同步信号的到来,时基模块的输出波形有两种情形,需要通过设置相位方向 TBCTL[PHSDIR]来确定。如果 TBCTL[PHSDIR]=0 时,那么当同 步信号到来时,对应的输出波形如下图所示:

        

        如果 TBCTL[PHSDIR]=1 时,那么当同步信号到来时,对应的输出波形如下图 所示

        同步信号来临时,不管目前时基计数器已经到了什么值,都将置位为相位寄 存器的值,这个作用可以协调各路 ePWM 模块间的固定相位差,对于先递增后递减模式,同一相位寄存器的值,同时对应着两个段,例如相位值 3,既出现在递增的过程中,又出现在递减的过程中,通过 TBCTL 寄存器的PHSDIR 位的设置, 就可以确定究竟是递增过程还是递减过程中的3。TBCTL[PHSDIR]=1 表示为相位寄存器的值是递增过程中的值,TBCTL[PHSDIR]=0 时表示为相位寄存器的值是递 减过程中的值。当时基计数器的值变化到特定值的时候,特定事件就会产生,特 定信号就会发出。 

        每个 ePWM 模块可以通过软件配置使用或者忽略同步输入信号。如果 TBCTL(PHSEN)位被设置为 1,那么时基计数器在下面任意两种情况下就会自动加 载相位寄存器(TBPHS)的内容。 ①ePWMxSYNCI:同步信号脉冲:当同步信号输入脉冲到来的时候,时基计数 器就会在时基模块时钟 TBCLK 的下一个边沿自动加载 TBPHS 的值。

②软件强制同步信号脉冲:向 TBCTL 的 SWFYNC 位写入 1 后,时基计数器也 会在时基模块时钟 TBCLK 的下一个边沿自动加载 TBPHS 的值。 这个特点可以使其中一个 PWM 的时基与其他的 PWM 模块的时基同步,清除 TBCTL[PHSEN]位,可以配置 PWM 忽略同步输入信号。但是同步信号仍然可以通过 第一个 PWM 产生,经过 ePWMxSYNCO 传递给下面的 PWM 模块(ePWM2~ePWMx)。 TBCLKSYNC 位可以被用来同步在一个设备上所有使能的 PWM 模块。该位是系统时钟使能寄存器的一部分。当 TBCLKSYNC=0 时,ePWM 模块时基时钟停止(默 认情况),TBCLKSYNC=1 时,所有的 ePWM 模块在 TBCLK 的时钟上升沿到来时同 时被启动,为了更好的同步各 ePWM 模块的 TBCLK,每个 ePWM 模块的预分频系统 时钟的时基时钟 TBCTL 的寄存器都要设置为相同的值。

设置 ePWM 时钟的操作步 骤如下:

        ①使能各 ePWM 模块的时钟。

        ②设置 TBCLKSYNC=0,停止所有已使能的 ePWM 模块的时基时钟。

        ③配置预分频值与 ePWM 工作模式。

        ④设置 TBCLKSYNC=1,启动时基时钟。

 ②向上计数模式(递增)

        在此模式下,时基计数器从 0 开始向上计数,直到递增到周期寄存器的值后, 时基计数器会自动复位到 0,重复以上动作,

               周期:TPWM=(TBPRD+1)*TBCLK

         在此模式下,随着同步信号的到来,时基模块的输出波形如下所示 

③向下计数模式(递减) 

         在此模式下,时基计数器首先加载周期寄存器的值,然后开始递减,直到减 到 0 时,自动在加载周期寄存器的值,重复以上动作,如下图所示:

         周期:TPWM=(TBPRD+1)*TBCLK

         在此模式下,随着同步信号的到来,时基模块的输出波形如下所示 

(d)其他寄存器-TBPHS

        位15-0 TBPHS: 时间基准相位寄存器。这16位用于存储基准计时器的初始相位值,该值将被加到已存储在TBCTR计数器寄存器中的值,以产生计时器的实际初始值。TBPHS可以用于在基准计时器启动之前设置计数器的相位。

2.cc模块

        

 该部分主要包含寄存器:CMPCTL/CMPAHR/CMPA/CMPB。

寄 存 器地 址是否具有映射功能描 述
CMPCTL0x0007计数比较控制寄存器
CMPAHR0x0008HRPWMP计数比较A扩展寄存器
CMPA0x0009计数比较B寄存器
CMPB0x000A计数比较A寄存器

        CMPA和CMPB (Compare Register A和B): 这些寄存器设置EPWM波的频率和占空比。CMPA通常用于设定高电平持续时间,CMPB通常用于设定低电平持续时间。比较器CMPA、CMPB的作用为,当计数器与CA值相同,进行电平翻转,当计数器到CB时候又进行一次反转,实现脉冲宽度的设置。

①CTR=CMPA:时基计数器的值与 CMPA 的值相同时,PWM 可以根据 AQ 动作。 ②CTR=CMPB:时基计数器的值与 CMPB 的值相同时,PWM 可以根据 AQ 动作。 ③CTR=PRD:时基计数器的值与周期寄存器的值相同,PWM 可以根据 AQ 动作。 CMPA 与 CMPB 可以根据相关影子寄存器的值进行更新。

④CTR=ZERO:时基计数器的值递减到 0 时,PWM 可以根据 AQ 动作。CMPA 与 CMPB 可以根据相关影子寄存器的值进行更新 

3、AQCTL

        控制电平的输出,它定义EPWM波在达到特定比较值时要执行的操作,如设置断路器、强制输出或清除输出等。还可以改变输出极性和设置死区。

其使用的关键寄存器如下: 

动作限定模块的输入事件:

        软件强制是个异步事件,这个控制由 AQSFRC 和 AQCSF 两个寄存器处理。动 作模块可以控制输出ePWMA和ePWMB的动作。输入动作模块的事件也可以被量化, 这样就可以控制在递增或递减计数模式时,输出独立的相位。 

 ePWMA 和 ePWMB 输出的几种操作方式如下:

①置高(SET HIGH):使 ePWMA 和 ePWMB 输出高电平。

②置低(CLEAR LOW):使 ePWMA 和 ePWMB 输出低电平。

③取反(TOOGLE):当 ePWMA 或者 ePWMB 当前状态是低电平时,那下一时刻就是高电平;当 ePWMA 或者 ePWMB 当前状态是高电平时,那么下一时刻就是低 电平。

④不动作(DO NOTHING):不对 ePWM 输出做任何改变。但是还是可以产生 相应的事件触发信号以及相关中断。

(1)动作限定模块事件优先级

        在同一时刻,动作模块可能会收到两个及两个以上的事件时,动作模块如何 执行呢?在这种情况下,就需要硬件提供事件优先级。优先级 1 最高,优先级 7 最低。根据不同的计数模式,优先级定义不同。向上向下(先增后减)计数模式 的优先级定义如下:

         软件强制优先级最高,最低是计数器在增的时候,与比较寄存器 A 匹配事件。 向上计数(递增)模式的优先级如下,此时的计数方向始终是递增的,所以 不使用递减事件。

      

        最高同样是软件强制,最低是计数器等于 0 事件。 向下计数(递减)模式的优先级如下,此时的计数方向始终是递减的,所以 不使用递增事件。

  (2)动作限定模块一般配置条件下的输出波形

         

  1. AQCTLA寄存器:AQ控制寄存器。用于配置AQ子模块的操作模式,典型配置包括非反转模式、反转模式、强制恒定高/低电平等。

  2. AQCSFRC寄存器:AQ复位/设置寄存器。用于通过软件控制AQ比较子模块的状态,包括启动/停止、设置/清除、强制更新等操作。

  3. AQSFRC寄存器:同AQCSFRC寄存器,但只针对特定的比较器。

  4. AQCTLB寄存器:AQ控制2寄存器。用于配置AQ子模块的起始/停止指针,以及比较器的触发事件等。

  5. AQSTS寄存器:AQ状态寄存器。用于显示AQ字模块的状态,并针对比较器生成触发信号。

这些寄存器分别用于控制PWM的输出和事件,包括配置PWM的输出模式、选择同步方式等。

(3) AQCTLA寄存器的位说明:

(4)AQCTLB寄存器的位说明:

 4、死区DB

         一般情况下前三个模块以及能够完成输出。DB用于设置EPWM死区的大小和极性,以避免电流反向。

三、epwm配置步骤

 

 

 待补充

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值