理论教育 ePWM子模块功能详解

ePWM子模块功能详解

时间:2023-06-24 理论教育 版权反馈
【摘要】:每个ePWM模块都能够独立配置为忽略或使用这些引脚信号。ePWM模块是否使用错误信号由TZSEL寄存器设置。当周期错误事件发生时,EPWMxA和EPWMxB将立即按照TZCTL寄存器指定的动作输出信号。下面的两个例子是不同触发事件下ePWM寄存器的配置情况。图1-21采样过程示意图①的单次触发事件拉低ePWM1A和ePWM1B,同时强制ePWM2A和ePWM2B拉高。

ePWM子模块功能详解

1.时间基准子模块(TB)

每个ePWM模块都有自己的时间基准子模块,用于配置ePWM模块的事件时序。同步逻辑信号可以实现多个ePWM模块间的时基同步。图6-4描述了位于ePWM中的时间基准子模块(Time-Base)与其他模块的连接关系图。

(1)时间基准子模块的用途

用户可以通过配置时间基准子模块实现以下功能:

978-7-111-49650-2-Chapter06-6.jpg

图6-4 时间基准子模块与其他模块连接结构图

1)指定ePWM时间基准计数器(TBCTR)的频率值或周期值以控制事件发生的频率。

2)与其他ePWM模块的时间基准同步。

3)维持与其他ePWM模块间的相位关系。

4)设置时间基准计数器为增、减或增减计数模式。

5)产生以下事件:

●CTR=PRD。时间基准计数器值等于指定的周期值(TBCTR=TBPRD)。

●CTR=ZERO。时间基准计数器等于零(TBCTR=0x0000)。

6)配置时间基准的时钟率,即对CPU系统时钟(SYSCLKOUT)的预定标。

表6-1描述了与时间基准子模块相关联的关键信号。图6-5中的结构图描述了时间基准子模块的关键信号及寄存器。

6-1 与时间基准子模块相关联的关键信号

978-7-111-49650-2-Chapter06-7.jpg

(续)

978-7-111-49650-2-Chapter06-8.jpg

978-7-111-49650-2-Chapter06-9.jpg

图6-5 时间基准子模块的信号和寄存器

(2)计算PWM周期与频率

PWM事件的频率是由时间基准周期寄存器(TBPRD)以及时间基准计数器的工作模式共同控制的。图6-6显示了周期设置为4(TBPRD=4)时,增计数、减计数以及增减计数模式下PWM信号的周期值(TPWM)和频率值(FPWM)。每次时间的递增步数是由时间基准时钟(TBCLK)定义的,TBCLK由系统时钟(SYSCLKOUT)经预定标后得到。

时间基准计数器有三种操作模式,可通过时间基准计数寄存器(TBCTL)选择:

1)增减计数模式。在增减计数模式中,时间基准计数器从0递增至周期值(TBPRD);当达到周期值时,时间基准计数器开始递减直至0;之后重复之前的模式又开始增加。

2)增计数模式。在这种模式中,时间基准计数器从0开始增加直到周期值(TBPRD);当达到周期值时,时间基准计数器复位至零;之后重新开始递增。

3)减计数模式。在减计数模式中,时间基准计数器从周期值(TBPRD)开始减小至0;当它到达0时,时间基准计数器复位到周期值,之后重新开始递减。

978-7-111-49650-2-Chapter06-10.jpg

图6-6 时间基准计数器频率和周期

(3)时间基准周期映射寄存器

时间基准周期寄存器(TBPRD)有一个映射寄存器,允许寄存器的更新与硬件同步。ePWM模块中的所有映射寄存器描述如下:

1)当前工作寄存器(active register)。当前工作寄存器控制硬件并负责响应由硬件引起或者请求的动作行为。

2)映射寄存器(shadow register)。映射寄存器为当前工作寄存器缓冲提供一个临时地址,其对任何硬件控制没有直接影响。系统工作时,映射寄存器的内容在特定事件处传递给工作寄存器,这就避免了由于软件修改寄存器不同步而引发的出错或者不合逻辑的操作。

映射周期寄存器的地址与当前工作寄存器一致,TBCTL的[PRDLD]位决定哪个寄存器被写入或者被读取,该位按下面的方式使能和禁止TBPRD映射寄存器:

①时间基准周期映射模式。当TBCTL[PRDLD]=0时,TBPRD映射寄存器使能。对TBPRD寄存器的读/写访问会访问映射寄存器。当时间基准计数等于零(TBCTR=0x0000)时,映射寄存器的内容传送到工作寄存器。默认时使能TBPRD映射寄存器。

②时间基准周期立即装载模式。当选择立即装载模式(TBCTL[PRDLD]=1)时,对TBPRD寄存器的读/写访问会直接访问当前工作寄存器。

(4)时间基准计数器同步

时间基准同步单元连接到设备上所有的ePWM模块。每个ePWM模块有一个同步输入(EPWMxSYCI)和一个同步输出(EPWMxSYNCO)。第一个同步输入(ePWM1)来自于外部引脚,与其他ePWM模块的同步连接方案如图6-7所示。

978-7-111-49650-2-Chapter06-11.jpg

图6-7 时间基准计数器同步方案

每个ePWM模块可以配置成使用或忽略同步输入信号。如果TBCTL[PHSEN]位置位,当产生下列情况时,ePWM模块的时间基准计数器(TBCTR)就会自动装载相位寄存器(TBPHS)的内容:

1)同步输入脉冲(EPWMxSYNCI)。当检测到一个同步输入脉冲时,相位寄存器中的值就会载入计数寄存器,这一操作将在下一个有效时间基准时钟(TBCLK)的边沿处发生。

2)软件强制同步脉冲。向控制位TBCTL[SWFSYNC]写1会强制产生同步信号。该信号脉冲与同步输入信号经或操作后送至受控模块,因而与同步输入脉冲有相同的作用。

同步特性可实现不同ePWM模块间的时间基准自动同步,还可以给不同ePWM模块产生的波形加入超前或滞后相位控制以实现它们的同步。在增减计数模式中,一个同步事件发生后,TBCTL[PSHDIR]位立即配置时间基准计数器的计数方向,且新的方向与同步事件之前的方向是独立的。在增计数或减计数模式下,PSHDIR位被忽略。

若将TBCTL[PHSEN]位清零,ePWM将忽略同步输入脉冲,但同步脉冲仍然可以输出至EPWMxSYNCO,用来同步其他ePWM模块。

(5)多ePWM模块的时间基准时钟

TBCLKSYNC位可以用来全局同步所有使能的ePWM模块的时间基准时钟。该位是DSP时钟使能寄存器的一位。当TBCLKSYNC=0时,所有ePWM模块的时间基准时钟停止(默认);当TBCLKSYNC=1时,所有ePWM模块的时间基准时钟从TBCLK上升沿启动。为了更好地同步所有的TBCLK,每个ePWM模块TBCTL寄存器中的预定标位必须配置相同。使能ePWM时钟的步骤如下:

1)使能单独的ePWM模块时钟。

2)设置TBCLKSYNC=0,这会停止任何使能的ePWM模块内部的时间基准时钟。

3)配置预定标值以及所需的ePWM模式。

4)设置TBCLKSYNC=1。

(6)时间基准计数器模式及时序波形

时间基准计数器有以下4种操作模式:不对称的增计数模式、不对称的减计数模式、对称的增减计数模式、时间基准计数在当前值保持不变。图6-8~图6-11的时序图分别说明了前三种模式何时产生事件以及时间基准如何响应EPWMxSYNCI信号。

978-7-111-49650-2-Chapter06-12.jpg

图6-8 时间基准不对称增计数模式波形

978-7-111-49650-2-Chapter06-13.jpg

图6-9 时间基准不对称减计数模式波形

2.计数比较子模块(Counter Compare)

ePWM中的计数比较子模块(Counter Compare,CC)与其他模块的连接关系图同图6-4所示。图6-12是计数比较子模块的基本结构。

(1)计数比较子模块的应用

计数比较子模块将时间基准计数器的计数值不断地同计数比较器A(CMPA)和计数比较器B(CMPB)寄存器做比较,当时间基准计数器等于其中一个比较寄存器的值时,计数比较单元产生相应事件。

978-7-111-49650-2-Chapter06-14.jpg

图6-10 时间基准对称增减计数波形,TBCTL[PHSDIR=0](同步事件后递减计数)

978-7-111-49650-2-Chapter06-15.jpg

图6-11 时间基准对称增减计数波形,TBCTL[PHSDIP=1](同步事件后递增计数)

1)使用可编程的CMPA和CMPB寄存器产生相应比较事件:

●CTR=CMPA,时间基准计数器等于计数比较寄存器A(TBCTR=CMPA)。

●CTR=CMPB,时间基准计数器等于计数比较寄存器B(TBCTR=CMPB)。

2)若对动作限定子模块进行相关配置,可控制PWM的占空比

3)映射新的比较值,防止在当前的PWM周期中产生冲突。

(2)计数比较子模块操作方式

计数比较子模块负责根据两个比较寄存器A和B产生两个独立的比较事件,即:

●CTR=CMPA,时间基准计数值等于计数比较器A的值(TBCTR=CMPA)。

●CTR=CMPB,时间基准计数值等于计数比较器B的值(TBCTR=CMPB)。

对于增计数或者减计数模式来说,每个周期内只发生一次比较事件;对于增减计数模式来说,如果比较值介于0x0000~TBPRD之间则每个周期内发生两次比较事件;如果比较值等于0x0000或者等于TBPRD则每个周期发生一次比较事件。这些事件直接输出至动作限定子模块。

978-7-111-49650-2-Chapter06-16.jpg

图6-12 计数比较子模块基本结构

计数比较寄存器CMPA和CMPB都有一个相关的映射(shadow)寄存器。映射提供了一个保持寄存器与硬件同步更新的方法。当使用映射模式时,只能在特定的事件处更新当前工作(active)的寄存器,这就防止了由于软件异步修改寄存器内容而引发的错误。当前工作寄存器的存储地址与映射寄存器相同。哪个寄存器被写或读由CMPCTL[SHDWAMODE]以及CMPCTL[SHDWBMODE]位的配置决定。这些位可以独立使能、禁止CMPA映射寄存器和CMPB映射寄存器。两种装载模式的具体操作方式如下:

1)映射模式。清除CMPCTL[SHDWAMODE]位可使能CMPA的映射模式,清除CMPCTL[SHDWBMODE]位可使能CMPB的映射模式。默认情况下CMPA和CMPB的映射模式都是使能的。若映射寄存器被使能,则在下列事件发生时,映射寄存器值载入至当前工作(active)寄存器:

●CTR=PRD,时间基准计数器值等于周期值(TBCTR=TBPRD)。

●CTR=Zero,时间基准计数器值等于0(TBCTR=0x0000)。

●在CTR=PRD和CTR=Zero事件处均装载。

2)立即装载模式。若选择立即装载模式(TBCTL[SHADWAMODE]=1或TBCTL[SHADWBMODE]=1),就会直接对当前工作寄存器进行读或写操作。

(3)计数模式时序波形

具有以下三种计数模式:

●增计数模式,用于产生不对称的PWM脉冲波形。

●减计数模式,用于产生不对称的PWM脉冲波形。

●增减计数模式,用于产生对称的PWM脉冲波形。

图6-13~图6-16分别给出了在三种模式下事件产生的时序以及响应EPWMxSYNCI信号的时序波形。

978-7-111-49650-2-Chapter06-17.jpg

图6-13 增计数模式下计数比较波形

978-7-111-49650-2-Chapter06-18.jpg

图6-14 减计数模式下计数比较波形

978-7-111-49650-2-Chapter06-19.jpg

图6-15 增减计数模式下的计数比较事件,TBCTL[PHSDIR]=0(同步事件后减计数)

978-7-111-49650-2-Chapter06-20.jpg

图6-16 增减计数模式下的计数比较事件,TBCTL[PHSDIR=1](同步事件后增计数)

3.动作限定子模块(AQ)

动作限定子模块在PWM波形的产生中具有最重要的作用。它决定哪些事件可产生相关类型的动作,从而使EPWMxA和EPWMxB输出要求的波形。动作限定子模块(Action-qualifier)与其他模块的连接关系如图6-4所示。

(1)动作限定子模块的应用

动作限定子模块应用如下。

1)基于以下事件限定并产生相应动作(置位、清零、挂起):

●CTR=PRD,时间基准计数值等于周期值(TBCTR=TBPRD)。

●CTR=Zero,时间基准计数值等于零(TBCTR=0x0000)。

●CTR=CMPA,时间基准计数值等于计数比较寄存器A值(TBCTR=CMPA)。

●CTR=CMPB,时间基准计数值等于计数比较寄存器B值(TBCTR=CMPB)。

2)管理事件同时发生时的优先级

3)对计数器在增计数或减计数下发生的事件,可进行独立控制。

动作限定子模块是建立在事件驱动逻辑基础上的。可以被看做一个可编程的交叉开关,这个开关以事件作为输入以动作作为输出,图6-17给出了动作限定子模块的输入输出信号。

978-7-111-49650-2-Chapter06-21.jpg

图6-17 动作限定子模块输入与输出信号

当一个特殊事件发生时,动作限定子模块控制EPWMxA和EPWMxB如何工作。输入到动作限定子模块的事件由计数方向(增或减)进行进一步限定。这就使得无论是增计数还是减计数时输出都可以独立动作。

(2)EPWMxA和EPWMxB输出操作方式

EPWMxA和EPWMxB输出操作方式如下:

1)置高。设置EPWMxA或EPWMxB输出为高电平

2)置低。设置EPWMxA或EPWMxB输出为低电平。

3)取反。如果当前EPWMxA或EPWMxB输出被拉高,则将其拉低;如果当前EPWMxA和EPWMxB输出被拉低,则将其拉高。

4)无动作。保持输出EPWMxA和EPWMxB为当前设置状态。尽管无动作操作不会改变EPWMxA和EPWMxB的输出,但相应事件仍可以触发中断和ADC开始转换。EPWMxA和EPWMxB的输出动作可以独立配置,任何事件都可以对给定的输出引脚进行动作控制。例如,CTR=CMPA和CTR=CMPB都可以对EPWMxA输出进行控制。所有的限定操作可以由控制寄存器进行配置。

(3)动作限定事件优先级

ePWM动作限定器有可能在同一时间接收多个事件,在这种情况下,通过硬件来分配事件的优先级。一般规则是发生较晚的事件有较高的优先级,由软件强制发生的事件总是具有最高优先级。表6-2给出了增减模式下的事件优先级别。优先级别为1的是最高优先级。TBCTR计数方向的不同会带来优先级的细微变化。

6-2 增减计数模式下的动作限定事件的优先级

978-7-111-49650-2-Chapter06-22.jpg

表6-3给出了动作限定器在递增模式和递减模式下的优先级。

6-3 增计数模式和减计数模式下的动作限定事件的优先级

978-7-111-49650-2-Chapter06-23.jpg

当出现比较值大于周期值的情况时,事件的发生情况见表6-4。

6-4 比较值大于周期值时的相关动作

978-7-111-49650-2-Chapter06-24.jpg

4.死区产生子模块(DB)

(1)死区子模块的功能

ePWM模块内部的死区子模块(Dead Band)与其他模块的连接关系同图6-4所示。在动作限定子模块(AQ)中,可通过ePWM模块的CMPA和CMPB来产生所要求的死区。但如果要求更多带有极性控制的边沿延迟死区,那么可通过死区子模块来实现。死区模块的功能有:(www.daowen.com)

●对单个EPWMx输入信号(死区子模块的输入信号)产生带有死区的信号对(EP-WMxA和EPWMxB)。

●对信号进行高有效(AH)、低有效(AL)、互补高有效(AHC)、互补低有效(ALC)配置。

●为上升沿增加可编程延迟(RED)。

●为下降沿增加可编程延迟(FED)。

●信号通道可以完全被旁路(注意图6-18中的虚线框)。

(2)死区子模块的操作方法

死区子模块有两组独立的可选择方式,如图6-18所示。这两组独立的可选择方式可以对输入信号源、输出模式及极性进行相应配置,具体如下:

978-7-111-49650-2-Chapter06-25.jpg

图6-18 死区子模块的配置

1)输入源选择。死区子模块的输入信号是动作限定模块的EPWMxA和EPWMxB的输出信号,这里将它们命名为EPWMxA In和EPWMxB In。可以通过DBCTL寄存器的IN_MODE位来选择每个上升沿延迟或下降沿延迟的信号源,有如下几种模式:

●EPWMxA In用作下降沿和上升沿延迟的信号源,此操作为默认模式。

●EPWMxA In用作下降沿延迟的信号源,EPWMxB In用作上升沿延迟的信号源。

●EPWMxA In用作上升沿延迟的信号源,EPWMxB In用作下降沿延迟的信号源。

●EPWMxB In用作下降沿和上升沿延迟的信号源。

2)输出模式控制。由DBCTL[OUT_MODE]位来控制输出模式,这些位可配置上升沿延迟输出、下降沿延迟输出、二者均作为或二者均不作为死区子模块的输出。

3)极性控制。极性控制(DBCTL[POLSEL])位可以配置上升沿延迟、下降沿延迟信号在输出前是否进行翻转。

表6-5给出了一些常用的死区配置方式。这些模式假定DBCTL[IN_MODE]位配置EP-WMxAIn是下降沿和上升沿延迟的信号源。可以通过改变输入信号源来实现增强模式。表6-5中所示的模式分为以下几类:

6-5 常用的死区配置方式假定EPWMxA In是下降沿和上升沿延迟的信号源

978-7-111-49650-2-Chapter06-26.jpg

●模式1为不使用下降沿延迟(FED)和上升沿延迟(RED)。

●模式2~5为典型的死区极性配置,适用于工业电源开关门极驱动所需要的所有有效的高/低模式,图6-19是这些典型情况下的波形。

●模式6为不使用上升沿延迟。

●模式7为不使用下降沿延迟。

死区子模块可独立配置上升沿延迟(RED)和下降沿延迟(FED)时间。延迟的长短可用DBRED和DBFED寄存器来控制。该10位寄存器的值代表时间基准时钟TBCLK的个数,也就是信号边沿延迟的周期数。例如,下降沿延迟时间FRED为DBFED×TTBCLK,上升沿延迟时间RED为DBRED×TTBCLK。其中,TTBCLK是指TBCLK的周期值,即SYSCLKOUT经预定标后的输出值。表6-6中给出了多种TBCLK选项的延迟值。

978-7-111-49650-2-Chapter06-27.jpg

图6-19 典型死区的波形(0%<占空比<100%)

6-6 死区延迟数值μs为单位

978-7-111-49650-2-Chapter06-28.jpg

5.PWM斩波器子模块(PC)

(1)PWM斩波器的功能

PWM斩波器子模块(PWM-chopper)与其他模块的连接结构同图6-4所示。该模块可以通过一个高频载波信号来调制动作限定子模块和死区子模块产生的PWM波。这种功能对需要以门极驱动脉冲变压器来控制功率开关设备是非常重要的。PWM斩波器的关键功能有:

●斩波(载波)频率可编程。

●首脉冲宽度可编程。

●第二个和随后脉冲的占空比可编程。

●如果不需要使用斩波器功能,斩波器子模块可以被旁路。

(2)PWM斩波器的操作和输出波形

图6-20给出了PWM斩波器的操作结构。载波时钟由SYSCLKOUT分频得到,通过PC-CTL寄存器的CHPFREQ和CHPDUTY位来控制它的频率和占空比。单次触发模块的特点是能够提供一个高能量首脉冲来确保功率开关快速开启,随后的脉冲来继续维持功率开关的开启。单触发脉冲宽度可以通过OSHTWTH位来控制。CHPEN位可以使能或禁用(旁路)PWM斩波器子模块。

978-7-111-49650-2-Chapter06-29.jpg

图6-20 PWM斩波器操作结构

图6-21是PWM斩波器的输出波形(不包含单次和占空比周期控制)。

978-7-111-49650-2-Chapter06-30.jpg

图6-21 PWM斩波器输出波形

(3)单次触发脉冲

首脉冲的宽度可配置为16种值,首脉冲的宽度或周期通过式(6-1)计算:

T1stpulse=TSYSCLKOUT×8×OSHTWTH (6-1)

式中,TSYSCLKOUT是系统时钟周期;OSHTWTH是4位寄存器值,取值范围为1~16。

表6-7给出了当SYSCLKOUT=100MHz时脉冲宽度的可能值,图6-22给出的是首脉冲和随后的保持脉冲波形。

6-7 SYSCLKOUT=100MHz时脉冲宽度的取值

978-7-111-49650-2-Chapter06-31.jpg

978-7-111-49650-2-Chapter06-32.jpg

图6-22 PWM斩波器子模块首脉冲和随后的保持脉冲波形

(4)占空比控制

脉冲变压器门极驱动的设计需要考虑到变压器和相关电路的特性。饱和性就是其中一个需要考虑的因素。为了满足门极驱动设计要求,第二个和随后脉冲的占空比可通过编程设置。在功率开关导通期间内,这些持续脉冲确保了合适的驱动能力和极性,并且可以通过软件设置脉冲的占空比和极性。图6-23是通过设置CHPDUTY位实现占空比控制的时序图,可选择的占空比范围是12.5%~87.5%。

6.错误区域控制子模块(TZ)

错误控制子模块(Trip Zone)与其他模块的连接结构同图6-4所示。每个ePWM模块都与6个978-7-111-49650-2-Chapter06-33.jpg信号978-7-111-49650-2-Chapter06-34.jpg相连,这6个信号与GPIOMUX复用,用以指示外部错误事件的发生。可对ePWM的输出进行相关配置,使其对错误事件作出响应。

(1)错误区域控制子模块功能

错误区域控制子模块功能如下:

1)错误输入978-7-111-49650-2-Chapter06-35.jpg可映射到任何一个ePWM模块。

2)当错误条件发生时,EPWMxA和EPWMxB的输出可以强制为高电平、低电平、高阻态或不动作。

3)对于严重短路或者过流的情况支持单次触发错误(OSHT)。

4)支持当前限定操作的周期性触发。

5)每个错误区输入引脚可以分配为单次触发或者逐周期触发操作。

978-7-111-49650-2-Chapter06-36.jpg

图6-23 PWM斩波器持续脉冲占空比控制时序图

6)任何一个错误区引脚都可产生中断。

7)支持软件强制触发。

8)如不需要,错误控制子模块可以完全禁用。

(2)错误控制子模块的操作方式

错误区978-7-111-49650-2-Chapter06-37.jpg引脚信号是低有效,当这些引脚是低电平时,就表示该引脚有错误事件发生。每个ePWM模块都能够独立配置为忽略或使用这些引脚信号。ePWM模块是否使用错误信号由TZSEL寄存器设置。错误输入信号可配置为与时钟SYSCLKOUT同步或异步,且通过GPIO MUX模块对其进行数字滤波978-7-111-49650-2-Chapter06-38.jpg引脚上1个SYSCLKOUT周期的低电平脉冲即足以触发错误事件。异步触发方式可以确保在时钟丢失的情况下,978-7-111-49650-2-Chapter06-39.jpg引脚上的有效输入信号仍然可以触发事件,前提是需要合理配置GPIO。

在每个ePWM模块中,可以独立配置T978-7-111-49650-2-Chapter06-40.jpg输入为逐周期触发或者单次触发。这两种配置分别由TZSEL[CBCn]和TZSEL[OSHTn]控制位(n对应错误输入引脚编号)决定。通过配置TZCTL[TZA]和TZCTL[TZB]寄存器位来分别给每个ePWM模块输出引脚配置一种触发事件发生时的动作。具体如下:

1)逐周期触发(CBC)。当周期错误事件发生时,EPWMxA和EPWMxB将立即按照TZCTL寄存器指定的动作输出信号。表6-8列出了其可能的动作。此外,周期错误事件发生时,周期触发事件标志(TZFLG[CBC])会置位,如果在TZEINT寄存器和PIE中使能了中断,则会产生EPWMx_TZINT中断请求。当ePWM时间基准计数器达到零(TBCTR=0x0000)时,若错误信号已消失,则引脚上指定的状态就会自动清除。所以,在这种模式下,错误事件在每个PWM周期都会被清除或置位。向TZCLR[CBC]位写1可手动清除TZ- FLG[CBC]标志位。如果TZFLG[CBC]位被清除后,周期错误事件仍然存在,那么该位将被再次置位。

2)单次触发(OSHT)。当一个单次触发事件发生时,EPWMxA和EPWMxB将立即按照TZCTL寄存器指定的动作输出信号。表6-8列出了可能的动作。另外,单次触发事件发生时,单次触发事件标志位(TZFLG[OST])会置位,如果在TZEINT寄存器和PIE中使能了中断,则会产生EPWMx_TZINT中断请求。通过向TZCTR[OST]写1可手动清除单次触发事件标志位。

6-8 触发事件的可能动作

978-7-111-49650-2-Chapter06-41.jpg

下面的两个例子是不同触发事件下ePWM寄存器的配置情况。

978-7-111-49650-2-Chapter06-42.jpg的单次触发事件拉低ePWM1A和ePWM1B,同时强制ePWM2A和ePWM2B拉高。按照下面的方式配置ePWM1寄存器:

●TZSEL[OSHT1]=1,使能978-7-111-49650-2-Chapter06-43.jpg为ePWM1的单次事件触发源。

●TZCTL[TZA]=2,触发事件产生时ePWM1A将强制拉低。

●TZCTL[TZB]=2,触发事件产生时ePWM1B将强制拉低。按照下面的方式配置ePWM2寄存器:

●TZSEL[OSHT1]=1,使能978-7-111-49650-2-Chapter06-44.jpg为ePWM2的单次触发源。

●TZCTL[TZA]=1,触发事件产生时ePWM2A将强制拉高。

●TZCTL[TZB]=1,触发事件产生时ePWM2B将强制拉高。

978-7-111-49650-2-Chapter06-45.jpg的周期错误事件拉低ePWM1A和ePWM1B,978-7-111-49650-2-Chapter06-46.jpg978-7-111-49650-2-Chapter06-47.jpg单次触发事件将置eP-WM2A为高阻态。按照下面的方式配置ePWM1寄存器:

●TZSEL[CBC5]=1,使能978-7-111-49650-2-Chapter06-48.jpg为ePWM1的单次触发源。

●TZCTL[TZA]=2,触发事件产生时ePWM1A将强制拉低。

●TZCTL[TZB]=2,触发事件产生时ePWM1B将强制拉低。按照下面的方式配置ePWM2寄存器:

●TZSEL[OSHT1]=1,使能978-7-111-49650-2-Chapter06-49.jpg为ePWM2的单次触发源。

●TZSEL[OSHT6]=1,使能978-7-111-49650-2-Chapter06-50.jpg为ePWM2的单次触发源。

●TZCTL[TZA]=0,触发事件产生时ePWM2A将置为高阻态。

●TZCTL[TZB]=3,触发事件产生时ePWM2B将被忽略。

(3)错误事件触发中断

图6-24和图6-25分别为错误区域子模块的控制和中断逻辑图。

978-7-111-49650-2-Chapter06-51.jpg

图6-24 错误区域子模块控制逻辑图

978-7-111-49650-2-Chapter06-52.jpg

图6-25 错误区域子模块中断逻辑图

7.事件触发子模块(ET)

(1)事件触发子模块的主要功能

事件触发子模块(Event Trigger and interrupt)与其他模块的连接关系同图6-4所示。其主要功能有:

1)接收由时间基准子模块和计数比较子模块产生的事件输入。

2)使用时间基准方向信息对增/减事件进行限定。

3)使用预定标逻辑产生中断请求和ADC模块启动转换(对事件进行预定标)。可以在每个事件处或每两个事件或每三个事件产生一次中断请求和ADC模块启动转换。这些事件包含多种类型,如图6-26所示(图中事件触发子模块的左侧部分)。

978-7-111-49650-2-Chapter06-53.jpg

图6-26 事件触发子模块的事件输入和预定标输出

4)通过事件计数器和事件产生的标志位,指示事件的发生。

5)可以软件强制产生中断请求和ADC模块启动转换。

时间基准子模块和计数比较子模块产生的事件由事件触发子模块管理,当选择的事件发生时,就会产生一个CPU中断或一个启动A-D转换的脉冲。

(2)事件触发子模块的操作

每个ePWM模块都有一个与PIE连接的中断请求线路以及两个与ADC模块连接的启动转换信号(每个序列发生器一个),如图6-27所示。所有ePWM模块的ADC模块启动转换信号通过或操作后连接到一起。如果一个启动转换线上同时有两个请求发生,则只有一个请求被ADC模块识别。

图6-28为事件触发模块的中断产生逻辑框图。

978-7-111-49650-2-Chapter06-54.jpg

图6-27 事件触发子模块内部ADC模块启动转换信号

中断周期位(ETPS[INTRRD])决定需要发生多少次事件后,才会产生一个中断请求脉冲,可以配置为不产生中断、在每个事件处产生中断、每两个事件产生一次中断和每三个事件产生一次中断。而ETSEL[INTSEL]位可以用以产生中断的事件类型,事件类型可以是以下事件中的一个:

●TBCTR=0x0000。

●TBCTR=TBPRD。

●计数器递增计数时TBCTR=CMPA。

●计数器递减计数时TBCTR=CMPA。

●计数器递增计数时TBCTR=CMPB。

●计数器递减计数时TBCTR=CMPB。

从中断事件计数器(ETPS[INTCNT])可以读出已发生事件的个数,即当指定事件发生后,ETPS[INTCNT]位计数增加直到达到ETPS[INTPRD]中指定的数值。当ETPS[INTCNT]=ETPS[INTPRD],计数器停止计数并将其输出置位。计数器只有在发生PIE中断时才被清零。

978-7-111-49650-2-Chapter06-55.jpg

图6-28 事件触发模块中断产生逻辑框图

当ETPS[INTCNT]=ETPS[INTPRD]时会发生以下事件中的一个:

●若中断使能(ETSEL[INTEN]=1)且中断标志清零(ETFLG[INT]=0),则产生一个中断脉冲并且置位中断标志位(ETFLG[INT]=1),同时事件计数器清零(ETPS[INTCNT]=0)。计数器将重新开始计数事件个数。

●若中断禁用(ETSEL[INTEN]=0)或中断标志位置位(ETFLG[INT]=1),则当计数器达到周期值(ETPS[INTCNT]=ETPS[INTPRD])时便会停止计数。

●若中断使能但中断标志已经置位,那么计数器将会保持它的输出为高,直到ETFLG[INT]位清零,即当服务一个中断时,允许另一个中断悬挂等待。

需要注意的是,向INTPRD位进行写操作会自动将INTCNT清0,且计数器的输出会复位,即没有产生中断请求。当INTPRD=0时,计数器被禁止,因此不会检测相关事件,并且ETFRC[INT]也将被忽略。

图6-29是用事件触发器产生ADC模块启动转换A(SOCA)脉冲信号的操作。ETPS[SOCACNT]计数值和ETPS[SOCAPRD]周期值与中断产生器的操作方式类似,只是SOC的脉冲序列是连续产生的,即当产生一个脉冲时,脉冲标志ETFLAG[SOCA]被锁存,但这并不会停止后继脉冲的产生。使能/禁止位ETSEL[SOCAEN]可用于禁止脉冲产生,但计数器仍然会对输入事件进行计数,直到计数值达到设定的周期值。产生SOCA和SOCB的事件可以由ETSEL[SOCASEL]位或者ETSEL[SOCBSEL]位独立配置,这些事件与可产生中断的事件相同。事件触发器产生ADC模块启动转换B(SOCB)脉冲信号与产生SOCA信号类似,在此不再赘述。

978-7-111-49650-2-Chapter06-56.jpg

图6-29 事件触发SOCA脉冲信号操作

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈