F280049C Enhanced Pulse Width Modulator (ePWM)

文章目录

ePWM

增强型脉宽调制器(ePWM)外围设备是控制许多功率的关键元件
商业和工业设备中的电子系统。这些系统包括数字电机
控制、开关模式电源控制、不间断电源(UPS)和其他形式的电源
转变ePWM外围设备还可以执行数模(DAC)功能,其中占空比为
相当于DAC模拟值;它有时被称为功率DAC。

F28004x的ePWM是四型的,具体可参阅C2000 Real-Time
Control Peripheral Reference Guide文档查看不同器件,不同类型ePWM之间的差别。

18.1 简介

本章包括每个子模块的概述和信息:

  • TB时基子模块
    ==TB模块用于配置ePWMx的周期频率,以及ePWMx之间的同步关系。 ==
  • CC计数器比较子模块
    CC模块用于配置ePWMx输出ePWMxA与ePWMxB的占空比
  • AQ动作限定子模块
    AQ模块用于配置ePWMx在一些事件发生如TBCTR=0时,该会有什么样的输出。
  • DB死区发生子模块
  • PC斩波子模块
  • TZ跳闸子模块
  • ET事件触发模块
  • DC数字比较器模块

ePWM类型4在功能上与类型2兼容(类型3不存在)。除类型2功能外,类型4还具有以下增强功能:

  • 寄存器地址映射
    ePWM类型4的新功能需要额外的寄存器。ePWM寄存器地址空间已重新映射,以更好地对齐和易于使用。

  • 延迟跳闸功能
    增加了一些更改,以实现死区插入功能,例如,支持峰值电流模式控制类型应用场景所需的延迟跳闸功能。这是通过允许比较器事件作为触发事件(事件T1和T2)进入动作限定符来实现的。如果比较器T1/T2事件用于编辑PWM,则不会立即改变PWM波形。相反,它们将同步到下一个TBCLK。

  • 死区发生器子模块增强
    隐藏DBCTL寄存器以允许动态配置更改

  • 寄存器的一次性和全局加载
    ePWM类型4允许从阴影到有源寄存器的一次性和全局负载能力,以避免在例如多相应用中的部分负载。它还允许对阴影到活动负载事件进行可编程的预分级。ePWM类型4全局加载可以通过消除中断并确保同时加载所有寄存器来简化ePWM软件。

  • 跳闸区子模块增强
    添加了独立标志,以反映每个TZ源的跳闸状态。对跳闸区子模块进行了更改,以支持某些功率转换器开关技术,如谷值开关。

  • 数字比较子模块增强
    消隐窗口滤波器寄存器宽度已从8位增加到16位。DCCAP功能已得到增强,以提供更多的可编程性

  • PWM同步相关增强
    ePWM类型4允许基于CMPC和CMPD事件生成PWM同步。这些事件也可用于PWMSYNC脉冲选择。

有效的PWM外围设备必须能够以最小的CPU开销或干预生成复杂的脉宽波形。它必须是高度可编程的,非常灵活,同时易于理解和使用。此处描述的ePWM单元通过在每个PWM通道的基础上分配所有所需的定时和控制资源来满足这些要求。避免了资源的交叉耦合或共享;相反,ePWM是由具有独立资源的较小单通道子模块构建的,这些资源可以根据需要一起操作以形成一个系统。这种模块化方法产生了正交架构,并提供了更透明的外围结构视图,帮助用户快速理解其操作。

在本文中,信号或子模块名称中的字母x用于表示设备上的通用ePWM实例。例如,输出信号EPWMxA和EPWMxB指的是来自ePWMx实例的输出信号。因此,EPWM1A和EPWM1B属于ePWM1,同样,EPWM4A和EPWM4B属于ePWM4。

18.1.1 子系统概述

ePWM模块表示一个完整的PWM通道,两由个PWM输出组成:EPWMxA和EPWMxB。多个ePWM模块在构成一个实例,如图18-1所示。每个ePWM实例都是相同的,只有一个例外。一些实例包括允许更精确地控制PWM输出的硬件扩展。这种扩展是高分辨率脉宽调制器(HRPWM),在第18.15节中进行了描述。请参阅设备特定数据手册,以确定哪些ePWM实例包含此功能。
在这里插入图片描述
每个ePWM模块由以1开头的数值表示。例如,ePWM1是系统中的第一个实例,ePWM3是第三个实例,而ePWMx表示任何实例。

ePWM模块通过时钟同步方案链接在一起,允许它们在需要时作为单个系统运行。此外,该同步方案可以扩展到捕获外围子模块(eCAP)。子模块的数量取决于设备,并取决于目标应用程序的需求。子模块也可以独立运行。

每个ePWM模块支持以下功能:

  • 具有周期和频率控制的专用16位时基计数器
  • 两个PWM输出(EPWMxA和EPWMxB),可用于以下配置:
    • 具有单边操作的两个独立PWM输出
    • 具有双边缘对称操作的两个独立PWM输出
    • 一个独立的PWM输出,具有双边缘不对称操作
  • 通过软件对PWM信号进行异步超控。
  • 可编程相位控制支持相对于其他ePWM模块的滞后或超前操作。
  • 逐周期的硬件锁定(同步)相位关系
  • 死区产生,具有独立的上升沿和下降沿延迟控制。
  • 故障条件下逐周期跳闸和一次性跳闸的可编程跳闸区分配。
  • 跳闸条件可以强制PWM输出的高、低或高阻抗状态逻辑电平。
  • 所有事件都可以触发CPU中断和ADC转换启动(SOC)
  • 可编程事件预分级最大限度地减少中断时的CPU开销。
  • 通过高频载波信号进行PWM斩波,适用于脉冲变压器栅极驱动

每个ePWM模块连接到图18-1所示的输入/输出信号。这些信号将在后续章节中详细描述。

ePWM模块的连接顺序可能不同于图18-1所示。有关特定设备的同步方案,请参阅第18.4.3.3节。每个ePWM模块由八个子模块组成,并通过图18-2所示的信号在系统内连接。
在这里插入图片描述
图18-2显示了单个ePWM模块的更多内部细节。ePWM模块使用的主要信号有:

  • PWM输出信号(EPWMxA和EPWMxB)。
    PWM输出信号通过设备的“系统控制和中断”一章中描述的GPIO外围设备在设备外部可用。
  • 跳闸区信号(TZ1至TZ6)。
    这些输入信号向ePWM模块发出ePWM模块外部故障条件的警报。设备上的每个子模块可以配置为使用或忽略任何跳闸区信号。TZ1至TZ3跳闸区信号可以使用输入XBAR逻辑通过GPIO外围设备配置为异步输入,参见图18-50。TZ4连接到反向EQEPx错误信号(EQEPXRR),该信号可以从任何一个EQEP子模块(对于具有EQEP模块的设备)生成。TZ5连接到系统时钟故障逻辑,TZ6连接到CPU的EMUSTOP输出。这允许您在时钟故障或CPU停止时配置跳闸动作。
  • 时基同步输入(EPWMxSYNCI)、输出(EPWMxSYNCO)和外围(EPWMxSYNCPER)信号
    同步信号通过总线型拓扑结构将ePWM模块连接在一起。每个模块可以通过INPUTXBAR6配置为使用或忽略其同步输入。时钟同步输入和输出信号仅输出到ePWM1(ePWM模块#1)的引脚。ePWM模块分为三组,用于同步。外部同步信号(EXTSYNCIN1或EXTSYNCIN2)可用于向每条链中的第一个ePWM模块发出同步信号。这些相同的模块还可以将其EPWMxSYNCOUT信号发送到GPIO。有关更多信息,请参阅第18.4.3.3节。
    每个ePWM模块还生成另一个PWMSYNC信号,称为EPWMxSYNCPER。
    出于同步目的,EPWMxSYNCPER连接到GPDAC和CMPSS。它使用HRPCTL寄存器进行配置,但与HRPWM无关。有关GPDAC和CMPSS如何使用EPWMxSYNCPER的更多信息,请参阅各自的章节。
  • ADC启动转换信号(EPWMxSOCA和EPWMxSOCB)
    每个ePWM模块有两个ADC启动转换信号。任何ePWM模块都可以触发转换的开始。触发转换开始的事件在ePWM的事件触发子模块中配置。
  • 比较器输出信号(COMPxOUT)
    来自比较器模块的输出信号可通过输入X-BAR馈送至一个或全部12个跳闸输入[TRIPIN1-TRIPIN12],并与跳闸区信号一起生成数字比较事件。
  • 外围总线
    外围总线宽32位,允许16位和32位写入ePWM寄存器文件。
    在这里插入图片描述

18.2 配置设备引脚

要将设备输入引脚连接到模块,必须使用输入X-BAR。可能需要外部信号的示例有TZx、TRIPx和EXTSYNCIN。设备上的任何GPIO都可以配置为输入。应通过将适当的GPxQSEL寄存器位设置为11b,将GPIO输入限定设置为异步模式。可以在GPyPUD寄存器中配置内部上拉。由于使用了GPIO模式,GPyINV寄存器可以反转信号。此外,一些TRIPx(TRIP4-12,不包括TRIP6)信号除输入X-Bar外,还必须通过ePWM X-Bar。
必须为此外设配置GPIO多路复用寄存器。为了避免管脚上出现故障,必须首先配置GPyGMUX位(同时将相应的GPyMUX位保持为默认值零),然后将GPyMUX寄存器写入所需值。
有关GPIO多路复用器、GPIO设置和XBAR配置的更多详细信息,请参阅GPIO一章。

18.3 ePWM Modules Overview

每个ePWM外围设备包括八个子模块。每个子模块都执行可以由软件配置的特定任务。

表18-1列出了八个关键子模块及其主要配置参数列表。例如,如果需要调整或控制PWM波形的占空比,则应参阅第18.5节中的计数器比较子模块以了解相关详细信息。

18.4 Time-Base Submodule

每个ePWM模块都有自己的时基子模块,用于确定ePWM模块的所有事件计时。内置同步逻辑允许多个ePWM模块的时基作为单个系统一起工作。图18-4说明了时基模块在ePWM中的位置。
在这里插入图片描述

18.4.1 Purpose of the Time-Base Submodule

您可以为以下内容配置时基子模块:

  • 指定ePWM时基计数器(TBCTR)频率或周期,以控制事件发生的频率
  • 管理与其他ePWM模块的时基同步。
  • 与其他ePWM模块保持相位关系。
  • 将时基计数器设置为向上计数、向下计数或向上和向下计数模式。
  • 生成以下事件:
    • CTR=PRD:等于指定周期的时基计数器(TBCTR=TBPRD)。
    • CTR=Zero:等于指定周期的时基计数器(TBCTR=TBPRD)。
  • 配置时基时钟的速率;ePWM时钟(EPWMCLK)的预分频版本。这允许时基计数器以较慢的速率递增/递减。

注:如果应用程序代码要求通过软件更新TBCTR值,而TBCTR正在计数,则必须注意,时基模块将需要至少1个TBCLK周期才能实现时基相关事件。因此,对于要实现的事件,TBCTR应该用TBCTR=PRD-1而不是TBCTR=PRD(在计数器正在倒计时的情况下)写入,并且应该用TBCTR=1而不是TBCTR=0(在计数器正在倒计时的情况下)写入

18.4.2 Controlling and Monitoring the Time-Base Submodule

图18-5中的框图显示了时基子模块的关键信号和寄存器。表18-2提供了与时基子模块相关的关键信号的描述。
在这里插入图片描述
在这里插入图片描述

18.4.3 Calculating PWM Period and Frequency

PWM事件的频率由时基周期(TBPRD)寄存器和时基计数器的模式控制。图18-6显示了当周期设置为4(TBPRD=4)时,上计数、下计数和上下计数时基计数器模式的周期(Tpwm)和频率(Fpwm)关系。每个步骤的时间增量由时基时钟(TBCLK)定义,它是ePWM时钟(EPWMCLK)的预分频版本。

时基计数器有三种操作模式,由时基控制寄存器(TBCTL)选择:

  • 上下计数模式:
    在上下计数模式下,时基计数器从零开始并递增,直到达到周期(TBPRD)值。当达到周期值时,时基计数器随后递减,直到达到零。此时计数器重复模式并开始递增。
  • 递增计数模式:
    在此模式下,时基计数器从零开始递增,直到达到周期寄存器(TBPRD)中的值。当达到周期值时,时基计数器重置为零,并再次开始增加。
  • 递减计数模式:
    在倒计时模式下,时基计数器从周期(TBPRD)值开始,并递减直到达到零。当其达到零时,时基计数器重置为周期值,并再次开始递减。
    在这里插入图片描述
18.4.3.1 Time-Base Period Shadow Register

时基周期寄存器(TBPRD)具有阴影寄存器。阴影允许寄存器更新与硬件同步。以下定义用于描述ePWM模块中的所有阴影寄存器:

  • 活动寄存器
    活动寄存器控制硬件,并负责硬件引起或调用的操作。
  • 影子寄存器
    阴影寄存器缓冲或提供活动寄存器的临时保持位置。它对任何控制硬件都没有直接影响。在战略时间点,影子寄存器的内容被转移到活动寄存器。这可以防止由于软件异步修改寄存器而导致的损坏或虚假操作。

阴影周期寄存器的内存地址与活动寄存器相同。写入或读取哪个寄存器由TBCTL[PRDLD]位决定。该位启用和禁用TBPRD阴影寄存器,如下所示:

  • 时基期阴影模式:
    当TBCTL[PRDLD]=0时,TBPRD阴影寄存器启用。对TBPRD内存地址的读取和写入进入阴影寄存器。阴影寄存器内容被传输到活动寄存器(TBPRD(活动))← TBPRD(阴影))时,时基计数器等于零(TBCTR=0x00)和/或由TBCTL2[PRDLDSYNC]位确定的同步事件。只有当TBCTL[PRDLD]=0时,PRDLDSYNC位才有效。默认情况下,TBPRD阴影寄存器处于启用状态。第18.4.3.3节解释了同步输入的来源。
    通过在全局负载配置寄存器(GLDCFG)中配置适当的位,全局负载控制机制也可以与时基周期寄存器一起使用。当选择全局加载模式时,对于启用此模式的所有寄存器,内容从阴影寄存器传输到活动寄存器的时间与全局阴影到活动负载控制寄存器(GLDCTL)中的配置位定义的时间相同。第18.4.7节解释了全局负载控制机制
  • 时基期即时加载模式:
    如果选择立即加载模式(TBCTL[PRDLD]=1),则TBPRD内存地址的读取或写入直接进入活动寄存器。
18.4.3.2 Time-Base Clock Synchronization

外围时钟启用寄存器中的TBCLKSYNC位允许所有用户将所有启用的ePWM模块全局同步到时基时钟(TBCLK)。设置时,所有启用的ePWM模块时钟均以对齐TBCLK的第一个上升沿开始。对于完全同步的TBCLK,每个ePWM模块的预分频器必须设置相同。

启用ePWM时钟的正确程序如下:

  1. 通过PCLKCRx寄存器使能ePWM模块时钟
  2. 将TBCLKSYNC清零
  3. 配置ePWM模块
  4. 将TBCLKSYNC置位
18.4.3.3 Time-Base Counter Synchronization

四型ePWM引入了一种新的同步方案,允许增加ePWM模块同步的灵活性。每个ePWM模块都有一个同步输入(SYNCI)、一个同步输出(SYNCO)和一个外围同步输出(SYNCPER)。在图18-7中,EXTSYNC1来自INPUTXBAR5,EXTSYNC2来自INPUTXBAR6,可以配置为选择任何GPIO作为同步输入。使用SYNCSEL寄存器配置同步链传播路径时,确保最长路径不超过四个ePWM /eCAP模块。
在这里插入图片描述
每个ePWM模块可以配置为使用或忽略同步输入(TBCTL.PHSEN=0)。如果设置了TBCTL[PHSEN]位,则当出现以下情况之一时,ePWM模块的时基计数器(TBCTR)将自动加载相位寄存器(TBPHS)内容:

  • EPWMxSYNCI:同步输入脉冲:
    当检测到输入同步脉冲(TBPH)时,相位寄存器的值加载到计数器寄存器中→ TBCTR)。此操作发生在下一个有效的时基时钟(TBCLK)边缘。
    从内部主模块到从模块的延迟由以下公式得出:
    –(TBCLK=EPWMCLK):2 x EPWMCLK
    –(TBCLK<EPWMCLK):1 x TBCLK
  • 软件强制同步脉冲:
    将1写入TBCTL[SWFSYNC]控制位将调用软件强制同步。该脉冲与同步输入信号进行“或”运算,因此与EPWMxSYNCI上的脉冲具有相同的效果。
    字比较事件同步脉冲
  • DCAEVT1和DCBEVT1数字比较事件可以配置为生成与EPWMxSYNCI具有相同影响的同步脉冲。

注意:

如果EPWMxSYNCI信号保持高电平,则同步不会持续发生。EPWMxSYNCI处于上升沿激活状态

此功能使ePWM模块能够自动同步到另一个ePWM模块的时基。超前或滞后相位控制可以添加到不同ePWM模块生成的波形中,以使其同步。在上下计数模式下,TBCTL[PSHDIR]位在同步事件后立即配置时基计数器的方向。新方向独立于同步事件之前的方向。在递增计数或递减计数模式下忽略PHSDIR位。示例见图18-8至图18-11

清除TBCTL[PHSEN]位将配置ePWM以忽略同步输入脉冲。同步脉冲仍然可以流经EPWMxSYNCO,并用于同步其他ePWM模块。通过这种方式,您可以设置主时基(例如,ePWM1),下游模块(ePWM2-ePWMx)可以选择与主同步运行。有关同步策略的更多详细信息,请参阅第18.13节。

18.4.4 Phase Locking the Time-Base Clocks of Multiple ePWM Modules

TBCLKSYNC位可用于全局同步设备上所有启用的ePWM模块的时基时钟。该位是设备时钟启用寄存器的一部分,在本手册的系统控制和中断部分进行了描述。当TBCLKSYNC=0时,所有ePWM模块的时基时钟停止(默认)。当TBCLKSYNC=1时,所有ePWM时基时钟以TBCLK的上升沿对齐开始。
对于完全同步的TBCLK,每个ePWM模块的TBCTL寄存器中的预分频器位必须设置相同。启用ePWM时钟的正确程序如下:

启用单个ePWM模块时钟。系统控制和中断章节对此进行了描述
清除TBCLKSYNC位,这将停止任何启用的ePWM模块内的时基时钟。
配置预定标寄存器的值和期望的ePWM模式
把TBCLKSYNC位置位

18.4.5 Simultaneous Writes to TBPRD and CMPx Registers Between ePWM Modules

对于变频应用,需要在ePWM模块之间同时写入TBPRD和CMPx寄存器。这可以防止在ePWM模块之间更新所有寄存器之前,CTR=0或CTR=PRD脉冲迫使阴影激活这些寄存器的加载的情况(导致一些寄存器从新阴影值加载,而其他寄存器从旧阴影值加载)。

为了支持这一点,在PWM模块之间添加了TBPRD:TBPRDHR、CMPA:CMPAHR、CMPB:CMPBHR、CMPC和CMPD寄存器的ePWM寄存器链接方案。

对于特定的ePWM模块#a,用户代码将“B+1”写入EPWMXLINK中的链接寄存器位字段。“B”是链接到的ePWM模块(即,写入ePWM模块“B”TBPRD:TBPRDHR、CMPA:CMPAHR、CMPB:CMPBHR或CMPC将同时写入ePWM模块“A”中的相应寄存器)。例如,如果配置ePWM3 EPWMXLINK寄存器,使CMPA:CMPAHR链接到ePWM1,则在ePWM 1中写入CMPA:CMPAHR将同时将相同的值写入ePWM3中的CMPA:CMPAHR。如果ePWM4还将其CMPA:CMPAHR寄存器链接到ePWM1,则对ePWM 1的写入将向ePWM3和ePWM4中的CMPA:CMPAHR寄存器写入相同的值.

EPWMXLINK的寄存器描述清楚地解释了相应ePWM的链接寄存器位字段值。使用EPWMXLINK的一个示例是将ePWM2 CMPA与ePWM1的CMPA链接。在这种情况下,对ePWM1的CMPA的写入也会更改ePWM2的CMPA值。

18.4.6 Time-Base Counter Modes and Timing Waveforms

时基计数器以四种模式之一工作:

非对称的递增计数模式
非对称的递减计数模式
对称的递增递减计数
时基计数器在当前值保持恒定时冻结
为了说明前三种模式的操作,以下时序图显示了事件的生成时间以及时基如何响应EPWMxSYNCI信号。

18.4.7 Global Load

图18-12说明了与全局负载特性相关的信号和寄存器。

注:

SYNCEVT信号仅在设置PHSEN时传播。

启用此功能时,对于启用此模式的所有寄存器,内容从阴影寄存器传输到活动寄存器的过程与全局阴影到活动负载控制寄存器(GLDCTL[GLDMODE])中的配置位定义的事件相同。当GLDCTL[GLD]=“1”时,忽略单个阴影寄存器的阴影到有功负载事件选择位,全局加载模式对GLDCFG[REGx]启用的相应寄存器生效。

当GLDCTL[GLD]=“1”和GLDCFG[REGx]=“0”时,全局加载模式不会影响相应的寄存器(REGx)。单个阴影寄存器的阴影到活动加载事件选择位决定了内容如何从阴影寄存器转移到活动寄存器。

18.4.7.1 Global Load Pulse Pre-Scalar

此功能提供了选择阴影到活动传输的能力,以在所选全局负载脉冲(GLDCTL[GLDMODE])的“N”次出现中发生一次。对于不能或未配置为使用全局加载机制的寄存器(即GLDCTL[GLD]=“0”或GLDCFG[REGx]=“0”),此预缩放功能不可用

18.4.7.2 One-Shot Load Mode

此功能允许用户使卷影寄存器到活动寄存器的传输发生一次。当GLDCTL2[OSHTLD]=“1”时,对于配置为使用全局加载机制的寄存器,在GLDCTL[GLDMODE]选择的事件上发生阴影到活动寄存器的传输。

通过使用GLDCTL2[GFRCLD],软件可以将内容从阴影寄存器强制加载到活动寄存器。GLDCTL2寄存器也可以使用EPWMXLINK[GLDCTL2LINK]跨多个PWM模块链接。这与上面讨论的一次性负载模式功能一起,提供了一种方法,可以在某些PWM事件或(如果需要)在同一时钟周期内正确更新一个或多个PWM模块中的多个PWM寄存器。这在变频应用和/或多相交错应用中非常有用

注:

启用高分辨率模式时,不应使用一次性加载模式

18.4.7.3 One-shot Sync Mode

您可以通过配置TBCLT2[OSHTSYNC模式]并设置TBCLT2[OSHTSYNC]位来启用单次同步模式以生成同步输出脉冲,如图18-13所示

18.5 Counter-Compare(CC) Submodule

图18-14说明了ePWM内的计数器比较子模块
在这里插入图片描述

18.5.1 Purpose of Counter-Compare Submodule

计数器比较子模块将时基计数器值作为输入。该值连续与计数器比较A(CMPA)计数器比较B(CMPB)计数器比较C(CMPC)和计数器比较D(CMPD)寄存器进行比较。当时基计数器等于一个比较寄存器时,计数器比较单元生成适当的事件。

计数器比较:

  • 使用CMPA、CMPB、CMPC和CMPD寄存器基于可编程时间戳生成事件
    – CTR = CMPA: 时基计数器等于计数器比较A寄存器 (TBCTR = CMPA)
    – CTR = CMPB: 时基计数器等于计数器比较B寄存器(TBCTR = CMPB)
    – CTR = CMPC: 时基计数器等于计数器比较C寄存器(TBCTR = CMPC)
    – CTR = CMPD: 时基计数器等于计数器比较D寄存器(TBCTR = CMPD)
  • 如果使用计数器比较A(CMPA)和计数器比较B(CMPB)适当配置动作限定子模块,则控制PWM占空比
  • 隐藏新的比较值,以防止在激活PWM循环期间发生损坏或故障

18.5.2 Controlling and Monitoring Counter=Compare Submodule

计数器比较子模块的操作如图18-15所示在这里插入图片描述

18.5.3 Operational Highlights for the Counter-Compare Submodule

计数器比较子模块负责生成可在动作限定符和/或事件触发器子模块中使用的事件。有四个独立的比较事件:

  1. CTR=CMPA: TBCTR=CMPA
  2. CTR=CMPB: TBCTR=CMPB
  3. CTR=CMPC: TBCTR=CMPC此事件只能用于在事件触发器子模块中生成事件。
  4. CTR=CMPD: TBCTR=CMPD此事件只能用于在事件触发器子模块中生成事件。

对于递增计数或递减计数模式,每个周期仅发生一次事件。对于上下计数模式,如果比较值在0x00 TBPRD之间,则每个周期发生两次事件;如果比较值等于0x00或等于TBPRD,则每个周期发生一次事件。这些事件被馈送到动作限定符子模块,在那里它们由计数器方向限定,并在启用时转换为动作。有关更多详细信息,请参阅第18.6.1节。

计数器比较寄存器CMPA和CMPB各有一个相关的阴影寄存器。阴影提供了一种保持寄存器更新与硬件同步的方法。当使用阴影时,活动寄存器的更新仅在战略点发生。这可以防止由于软件异步修改寄存器而导致的损坏或虚假操作。活动寄存器和阴影寄存器的内存地址相同。写入或读取的寄存器由CMPCTL[SHDWAMODE]和CMPCTL[SHDWBMODE]位确定。这些位分别启用和禁用CMPA阴影寄存器和CMPB阴影寄存器。两种负载模式的行为是:

阴影模式:
CMPA的阴影模式通过清除CMPCTL[SHDWAMODE]位启用,CMPB的阴影寄存器通过清除CMPCTL[SHDWBMODE]位启用。默认情况下,CMPA和CMPB均启用阴影模式

如果启用了阴影寄存器,则根据CMPCTL[LOADAMODE]、CMPCTL[LOADBMODE]、CMPCTL[LOADASYNC]和CMPCTL[LOADBSYNC]寄存器位指定的以下事件之一,将阴影寄存器的内容传输到活动寄存器:

  • CTR=PRD:等于周期的时基计数器(TBCTR=TBPRD)。
  • CTR=零:时基计数器等于零(TBCTR=0x00)
  • CTR=PRD和CTR=零
  • 由DCAEVT1或DCBEVT1或EPWMxSYNCI或TBCTL[SWFSYNC]引起的同步事件
  • 两个同步事件或LOADAMODE/LOADBMODE进行的选择

计数器比较子模块仅使用活动寄存器内容来生成要发送到动作限定符的事件。

立刻加载模式:
如果选择立即加载模式(即CMPCTL[SHDWAMODE]=1或CMPCTL[SHDWBMODE]=1),则寄存器的读写将直接进入活动寄存器。

附加比较器

ePWMs type 2和更高版本上的计数器比较子模块负责基于两个比较寄存器生成两个额外的独立比较事件,并将其馈送到事件触发子模块:

  1. CTR=CMPC:时基计数器等于计数器比较C寄存器(TBCTR=CMPC)。
  2. CTR=CMPD:时基计数器等于计数器比较D寄存器(TBCTR=CMPD)。

计数器比较寄存器CMPC和CMPD各有一个相关的阴影寄存器。默认情况下,此寄存器为阴影。活动寄存器和阴影寄存器的内存地址相同。将活动CMPC和CMPD寄存器中的值与时基计数器(TBCTR)进行比较。当值相等时,计数器比较模块分别生成“时基计数器等于计数器比较C或计数器比较D”事件。该寄存器的阴影由CMPCTL2[SHDWCMODE]和CMPCTL2[SHDWDMODE]位启用和禁用。这些位分别启用和禁用CMPC阴影寄存器和CMPD阴影寄存器。两种负载模式的行为描述如下:

阴影模式:
通过清除CMPCTL2[SHDWCMODE]位和阴影来启用CMPC的阴影模式通过清除CMPCTL2[SHDWDMODE]位启用CMPD寄存器。默认情况下启用阴影模式
适用于CMPC和CMPD。

如果启用了阴影寄存器,则根据CMPCTL2[LOADCMODE]、CMPCTL2[LOADDMODE]、CMPCTL2[LOADCSYNC]和CMPCTL2[LOADDSYNC]寄存器位指定的以下事件之一,将卷影寄存器的内容传输到活动寄存器:

  • CTR=PRD:等于周期的时基计数器(TBCTR=TBPRD)。
  • CTR=零:时基计数器等于零(TBCTR=0x00)
  • CTR=PRD和CTR=零
  • 由DCAEVT1或DCBEVT1或EPWMxSYNCI或TBCTL[SWFSYNC]引起的同步事件
  • 两个同步事件或由LOADCMODE/LOADDMODE进行的选择

计数器比较子模块仅使用活动寄存器内容来生成要发送到动作限定符的事件

立刻加载模式:
如果选择立即加载模式(即CMPCTL2[SHDWCMODE]=1或CMPCTL2[SHDWDMODE]=1),则寄存器的读取或写入将直接进入活动寄存器

全局加载:
通过在全局负载配置寄存器(GLDCFG)中配置适当的位,全局负载控制机制也可用于所有计数器比较寄存器。当选择全局加载模式时,对于启用此模式的所有寄存器,内容从卷影寄存器传输到活动寄存器的时间与全局卷影到活动加载控制寄存器(GLDCTL)中的配置位定义的时间相同。第18.4.7节解释了全局负载控制机制。

18.5.4 Count Mode Timing Waveforms

计数器比较模块可以在所有三种计数模式下生成比较事件:

  • 递增计数模式:用于生成不对称PWM波形。
  • 倒计时模式:用于生成不对称PWM波形。
  • 升降计数模式:用于生成对称的PWM波形。
    为了最好地说明前三种模式的操作,图18-16至图18-19中的时序图显示了事件的生成时间以及EPWMxSYNCI信号的交互方式。
    在这里插入图片描述
    在这里插入图片描述

18.6 Action-Qualifier(AQ) Submodule

图18-20显示了ePWM系统中的动作限定符(AQ)子模块。动作限定子模块在波形构造和PWM生成中起着最重要的作用。它决定将哪些事件转换为各种动作类型,从而在EPWMxA和EPWMxB输出端产生所需的切换波形。
在这里插入图片描述

18.6.1 Purpose of the Action-Qualifier Submodule

动作限定符子模块负责以下内容:

  • 根据以下事件确定和生成动作(设置、清除、切换):
    –CTR=PRD:等于时段的时基计数器(TBCTR=TBPRD)。
    –CTR=零:时基计数器等于零(TBCTR=0x00)
    –CTR=CMPA:时基计数器等于计数器比较A寄存器(TBCTR=CMPA)
    –CTR=CMPB:时基计数器等于计数器比较B寄存器(TBCTR=CMPB)
  • T1、T2事件:基于比较器的触发事件,跳闸或同步事件
  • 当这些事件同时发生时管理优先级
  • 当时基计数器增加和减少时提供对事件的独立控制

18.6.2 Action-Qualifier Submodule Control and Status Register Definitions

动作限定子模块操作如图18-21所示,并通过第18.17节中的寄存器进行监控
在这里插入图片描述
为方便起见,表18-3再次总结了可能的输入事件。
在这里插入图片描述
软件强制操作是一个有用的异步事件。该控制由AQSFRC和AQCSFRC寄存器处理

注:如果CSFA未在阴影模式下使用,则必须将RLDCSF位配置为禁用阴影模式

动作限定符子模块控制两个输出EPWMxA和EPWMxB在特定事件发生时的行为。动作限定子模块的事件输入通过计数器方向(向上或向下)进一步限定。这允许在递增计数和递减计数阶段对输出进行独立操作。

施加在输出EPWMxA和EPWMxB上的可能动作为:

  • 置位:将输出EPWMxA或EPWMxB设置为高电平
  • 清零:将输出EPWMxA或EPWMxB设置为低电平
  • 翻转:如果EPWMxA或EPWMxB当前被拉高,则将输出拉低。如果EPWMxA或EPWMxB当前被拉低,则将输出拉高。
  • 不作为:将输出EPWMxA和EPWMxB保持在当前设置的水平。尽管“什么也不做”选项可以防止事件对EPWMxA和EPWMxB输出造成动作,但该事件仍然可以触发中断和ADC开始转换。有关详细信息,请参见第18.10节中的说明。

动作分别为输出(EPWMxA或EPWMxB)指定。任何或所有事件都可以配置为在给定输出上生成操作。例如,CTR=CMPA和CTR=CMPB都可以在输出EPWMxA上运行。所有限定符操作都是通过本节末尾的控制寄存器配置的。

为清楚起见,本章中的插图使用了一组符号动作。图18-22总结了这些符号。每个符号表示一个动作作为时间标记。一些动作在时间上是固定的(零和周期),而CMPA和CMPB动作是可移动的,它们的时间位置分别通过计数器比较A和B寄存器进行编程。要关闭或禁用操作,请使用“什么都不做”选项;这是重置时的默认值。
在这里插入图片描述
动作限定符触发事件源选择寄存器(AQTSRCSEL)用于为T1和T2事件选择源。动作中跳闸/数字比较事件限定子模块的T1/T2选择和配置独立于跳闸区子模块中该事件的配置。特定跳闸事件可能会或可能不会被配置为在跳闸区子模块中引起跳闸动作,但动作限定符可以使用相同的事件来生成T1/T2,以控制PWM的生成。

18.6.3 Action-Qualifier Event Priority

ePWM动作限定符可以同时接收多个事件。在这种情况下,事件由硬件分配优先级。一般规则是,时间较晚的事件具有较高的优先级,而软件强制事件始终具有最高的优先级。上下计数模式的事件优先级如表18-4所示。优先级1为最高优先级,级别10为最低优先级。优先级根据TBCTR的方向略有变化。
在这里插入图片描述
表18-5显示了递增计数模式的操作限定符优先级。在这种情况下,计数器方向始终定义为向上,因此,永远不会进行向下计数事件。
在这里插入图片描述

表18-6显示了倒计时模式的操作限定符优先级。在这种情况下,计数器方向始终定义为向下,因此永远不会采取向上计数事件。
在这里插入图片描述

可以将比较值设置为大于周期。在这种情况下,行动将如表18-7所示。
在这里插入图片描述

18.6.4 AQCTLA and AQCTLB Shadow Mode Operations

要启用操作限定符模式更改,即使在阶段结束时也必须发生更改AQCTLA和AQCTLB寄存器的更改和阴影已添加到ePWMs类型2和更高版本上。此外,还支持这些寄存器同步时的阴影到活动负载。该寄存器的阴影是由AQCTL[SHDWAQAMODE]和AQCTL[SHDWAQBMODE]位启用和禁用。这些位启用并分别禁用AQCTLA阴影寄存器和AQCTLB阴影寄存器。两种加载模式是:

阴影模式:
AQCTLA的阴影模式通过设置AQCTL[SHDWAQAMODE]位启用,AQCTLB的阴影寄存器通过设置AQCTL[SHDWAQBMODE]位启用。默认情况下,AQCTLA和AQCTLB均禁用阴影模式

如果启用了阴影寄存器,则根据AQCTL[LDAQAMODE]、AQCTL[LDAQBMODE]、AQCTL[LDAQASYNC]和AQCTL[LDAQBSYNC]寄存器位指定的以下事件之一,将卷影寄存器的内容传输到活动寄存器:

  • CTR=PRD:等于周期的时基计数器(TBCTR=TBPRD)。
  • CTR=零:时基计数器等于零(TBCTR=0x00)
  • CTR=PRD和CTR=零
  • 由DCAEVT1或DCBEVT1或EPWMxSYNCI或TBCTL[SWFSYNC]引起的同步事件
  • 同步事件或由LDAQAMODE/LDAQBMODE进行的选择

全局加载模式
通过配置全局负载配置寄存器(GLDCFG)中的适当位,全局负载控制机制也可用于AQCTLA:AQCTLA2、AQCTLB:AQCTLB2和AQCSFRC寄存器。当选择全局加载模式时,启用该模式的所有寄存器的内容从阴影寄存器转移到活动寄存器,发生在由全局阴影到活动负载控制寄存器(GLDCTL)中的配置位定义的同一事件中。第18.4.7节解释了全局加载控制机制。

立即装载模式
如果选择立即加载模式(即AQCTL[SHDWAQAMODE]=0或AQCTL[SHDWAQBMODE]=0),则寄存器的读写将直接进入活动寄存器。见图18-23和图18-24。

注:阴影寄存器装载到活动寄存器的当CMPA=0或CMPB=0
如果计数器比较A寄存器(CMPA)或计数器比较B寄存器(CMPB)的值设置为0,并且AQCTLA和AQCTLB上的动作限定符动作配置为与阴影到有功负载的瞬间发生(即,使用AQCTL寄存器LDAQAMODE和LDAQAMODE位,CMPA=0,AQCTLA阴影到TBCTR=0上的有功负载),然后两个事件都进入争用状态,建议在TBCTR=0边界上使用动作限定符输出a/B控制寄存器的阴影到活动负载时使用非零计数器比较。

18.6.5 Waveforms for Common Configurations

注:本文中的波形显示了静态比较寄存器值的ePWMs行为。
在运行的系统中,活动比较寄存器(CMPA和CMPB)通常每个周期从其各自的阴影寄存器更新一次。用户指定更新的时间;时基计数器达到零或时基计数器达到周期时。在某些情况下,基于新值的操作可以延迟一段时间,或者基于旧值的操作可以额外生效一段时间。一些PWM配置避免了这种情况。这些包括但不限于以下内容:

使用上下计数模式生成对称PWM

  • 如果将CMPA/CMPB加载为零,则使用大于或等于1的CMPA/CMPB值。
  • 如果在周期上加载CMPA/CMPB,则使用小于或等于TBPRD-1的CMPA/CMPB值。

这意味着在PWM周期内始终存在至少一个TBCLK周期的脉冲,当非常短时,系统往往会忽略该脉冲。

使用上下计数模式生成非对称PWM:

  • 要实现50%-0%的不对称PWM,请使用以下配置:在周期上加载CMPA/CMPB,并使用周期动作清除PWM,使用比较向上动作设置PWM。
    将比较值从0调节到TBPRD,以实现50%-0%的PWM占空比。

使用递增计数模式生成不对称PWM时:

  • 要实现0-100%不对称PWM,请使用以下配置:在TBPRD上加载CMPA/CMPB。使用零动作设置PWM,使用比较向上动作清除PWM。将比较值从0调节到TBPRD+1,以实现0-100%PWM占空比

图18-25显示了如何使用TBCTR的上下计数模式生成对称PWM波形。在这种模式下,通过在波形的上计数和下计数部分使用相等的比较匹配来实现0%-100%的直流调制。在所示示例中,使用CMPA进行比较。当计数器递增时,CMPA匹配将把PWM输出拉高。同样,当计数器递减时,比较匹配将把PWM信号拉低。当CMPA=0时,PWM信号在整个周期内为低,产生0%占空比波形。当CMPA=TBPRD时,PWM信号高达100%占空比。

在实践中使用此配置时,如果将CMPA/CMPB加载为零,则使用大于或等于1的CMPA/CMPB值。如果在周期上加载CMPA/CMPB,则使用小于或等于TBPRD-1的CMPA/CMPB值。这意味着在PWM周期内始终存在至少一个TBCLK周期的脉冲,当非常短时,系统往往会忽略该脉冲。
在这里插入图片描述
图18-26至图18-31中的PWM波形显示了一些常见的动作限定符配置。图和示例中使用的一些约定如下:

  • TBPRD、CMPA和CMPB是指写入各自寄存器的值。硬件使用的是活动寄存器,而不是阴影寄存器。
  • CMPx,指CMPA或CMPB。
  • EPWMxA和EPWMxB是指来自ePWMx的输出信号
  • Up-Down表示向上计数和向下计数模式,Up表示向上计数模式,Dwn表示向下计数模式
  • Sym=对称,Asym=非对称
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

18.7 Dead-Band Generator Submodule

图18-33说明了ePWM内的死区子模块。在这里插入图片描述

18.7.1 Purpose of the Dead-Band Submodule

动作限定符(AQ)模块部分讨论了如何通过使用ePWM模块的CMPA和CMPB资源对边缘放置进行完全控制来生成所需的死区。然而,如果需要具有极性控制的更经典的基于边缘延迟的死区,则应使用此处描述的死区子模块。

死区模块的关键功能是:

  • 从单个EPWMxA输入生成具有死区关系的适当信号对(EPWMxB和EPWMxC)
  • 对信号对进行编程:
    –有源高(AH)
    –有源低(AL)
    –有源高互补(AHC)
    –有源-低互补(ALC)
  • 向上升沿添加可编程延迟(RED)
  • 将可编程延迟添加到下降沿(FED)
  • 可完全绕过信号路径(注意图中的虚线)

18.7.2 Dead-band Submodule Additional Operating Modes

  • 通过在图18-34中添加S6、S7和S8,RED和FED可以出现在A通道和B通道输出上。此外,RED和FED两者可以一起应用于A信道或B信道输出,以允许B信道相对于A信道相移。
  • 死区计数器也已增加到14位
  • 死区和死区高分辨率寄存器现在支持阴影模式
  • 使用DBREDHR和DBFEDHR寄存器启用了高分辨率死区RED和FED

注:当启用高分辨率死区时,PWM斩波器将不会启用。

在这里插入图片描述
阴影模式
DBRED的阴影模式通过设置DBCTL[SHDWDBREDMODE]位启用,DBFED的阴影寄存器通过设置DBCTL[SHDWDBFEDMODE]位启用。默认情况下,DBRED和DBFED都禁用阴影模式

如果启用了影子寄存器,则影子寄存器的内容将在DBCTL[LOAREDMODE]和DBCTL[LOADFEDMODE]寄存器位指定的以下事件之一上传输到活动寄存器:

  • CTR=PRD:等于周期的时基计数器(TBCTR=TBPRD)。
  • CTR=零:时基计数器等于零(TBCTR=0x00)
  • CTR=PRD和CTR=零

DBCTL寄存器可以使用阴影加载。DBCTL的阴影模式通过设置DBCTL2[SHDWDDBCTLMODE]位启用。如果启用了影子寄存器,则影子寄存器的内容将在DBCTL2[LOADDBCTLMODE]寄存器位指定的以下事件之一上传输到活动寄存器:

  • CTR=PRD:等于周期的时基计数器(TBCTR=TBPRD)。
  • CTR=零:时基计数器等于零(TBCTR=0x00)
  • CTR=PRD和CTR=零

全局加载
通过配置全局负载配置寄存器(GLDCFG)中的适当位,全局负载控制机制也可用于DBRED:DBREDHR、DBFED:DBFEDHR和DBCTL寄存器。当选择全局加载模式时,对于启用此模式的所有寄存器,内容从影子寄存器到活动寄存器的传输发生在由全局影子到活动加载控制寄存器(GLDCTL)中的配置位定义的相同事件。第18.4.7节解释了全球负载控制机制。

18.7.3 Operational Highlights for the Dead-Band Submodule

死区子模块的配置选项如图18-34所示。
在这里插入图片描述
虽然支持所有组合,但并非所有组合都是典型的使用模式。表18-8记录了一些经典的死区配置。这些模式假设DBCTL[IN_MODE]配置为EPWMxA IN是下降沿和上升沿延迟的源。可以通过改变输入信号源来实现增强或非传统模式。表18-8所示的模式分为以下几类:

  • 模式1:旁路下降沿延迟(FED)和上升沿延迟(RED)
    允许用户从PWM信号路径完全禁用死区子模块。
  • 模式2-5:经典死区极性设置:
    这些代表了典型的极性配置,可以解决可用的工业电源开关门驱动器所需的所有有源高和有源低模式。这些典型情况的波形如图18-35所示。注意,要生成与图18-35相同的波形,请配置动作限定符子模块以生成EPWMxA所示的信号。
  • 模式6:绕过上升沿延迟和模式7:
    绕过下降沿延迟最后,表18-8中的最后两个条目显示了绕过下降沿延时(FED)或上升沿延时(RED)块的组合。

图18-35显示了0%<占空比<100%的典型情况下的波形。
在这里插入图片描述
在这里插入图片描述
死区子模块支持上升沿(RED)和下降沿(FED)延迟的独立值。使用DBRED和DBFED寄存器对延迟量进行编程。这些是10位寄存器,它们的值表示信号边沿延迟的时基时钟TBCLK周期的数量。例如,计算下降沿延迟和上升沿延迟的公式为:

F E D = D B F E D × T T B C L K FED = DBFED \times T_{TBCLK} FED=DBFED×TTBCLK
R E D = D B R E D × T T B C L K RED = DBRED \times T_{TBCLK} RED=DBRED×TTBCLK

其中TTBCLK是TBCLK的周期,即EPWMCLK的预分频版本。

为方便起见,各种TBCLK选项的延迟值如表18-10所示。计算这些延迟值的ePWM输入时钟频率为100MHz。
在这里插入图片描述
当启用半周期时钟时,计算下降沿延迟和上升沿延迟的公式变为:
F E D = D B F E D × T T B C L K / 2 FED = DBFED \times T_{TBCLK}/2 FED=DBFED×TTBCLK/2
R E D = D B R E D × T T B C L K / 2 RED = DBRED \times T_{TBCLK}/2 RED=DBRED×TTBCLK/2

18.8 PWM Chopper Submodule

PWM斩波器子模块允许高频载波信号调制由动作限定器和死区子模块生成的PWM波形。如果需要基于脉冲变压器的栅极驱动器来控制功率开关元件,则这种能力是重要的。
在这里插入图片描述

18.8.1 Purpose of the PWM Chopper Submodule

PWM斩波器子模块的关键功能是:

  • 可编程斩波(载波)频率
  • 第一个脉冲的可编程脉冲宽度
  • 第二和后续脉冲的可编程占空比
  • 如果不需要,可完全绕过

18.8.2 Operational Highlights for the PWM Chopper Submodule

图18-37显示了PWM斩波器子模块的操作细节。载波时钟源自EPWMCLK。使用PCCTL寄存器中的CHPFREQ和CHPDUTY位控制时钟频率和占空比。单触发块是一种功能,它提供高能量第一脉冲,以确保硬和快速电源开关打开,而随后的脉冲维持脉冲,确保电源开关保持打开。单触发宽度使用OSHTWTH位编程。可在这里插入图片描述
以使用CHPEN位完全禁用(绕过)PWM斩波器子模块。

18.8.3 Waveforms

图18-38仅显示了斩波动作的简化波形;未示出单触发和占空比控制。单触发和占空比控制的详细信息将在以下章节中讨论。
在这里插入图片描述

18.8.3.1 One-Shot Pulse

第一脉冲的宽度可以编程为16个可能的脉冲宽度值中的任何一个。第一脉冲的宽度或周期由下式给出:

T 1 s t p u l s e = T E P W M C L K × 8 × O S H T W T H T_{1stpulse}=T_{EPWMCLK}\times 8\times OSHTWTH T1stpulse=TEPWMCLK×8×OSHTWTH

其中 T E P W M C L K T_{EPWMCLK} TEPWMCLK是系统时钟(EPWMCLK)的周期,OSHTWTH是四个控制位(值从1到16)

图18-39显示了第一个和随后的维持脉冲,表18-11给出了EPWMCLK=80 MHz的可能脉冲宽度值

在这里插入图片描述
在这里插入图片描述

18.8.3.2 Duty Cycle Control

脉冲变压器的栅极驱动设计需要理解变压器和相关电路的磁性或特性。饱和就是其中一个考虑因素。为了帮助栅极驱动设计者,第二脉冲和后续脉冲的占空比已被编程。这些维持脉冲确保在接通期间在电源开关栅极上保持正确的驱动强度和极性,因此可编程占空比允许使用软件控制来调整或优化设计。

图18-40显示了通过编程CHPDUTY位可以实现的占空比控制。可以从12.5%至87.5%的范围内选择七种可能的占空比之一。
在这里插入图片描述

18.9 Trip-Zone Submodule

每个ePWM模块连接到六个TZn信号(TZ1至TZ6)。TZ1至TZ3来自GPIO多路复用器。TZ4源于具有EQEP模块的设备上的反相EQEPxERR信号。TZ5连接到系统时钟故障逻辑,TZ6来自CPU的EMUSTOP输出。这些信号指示外部故障或跳闸条件,ePWM输出可编程为在故障发生时做出相应响应。
在这里插入图片描述

18.9.1 Purpose of the Trip-Zone Submodule

跳闸区子模块的关键功能是:

  • 跳闸输入TZ1至TZ6可灵活映射到任何ePWM模块。
  • 在故障情况下,输出EPWMxA和EPWMxB可强制为以下之一:
    –高电平
    –低电平
    –高阻抗
    –不采取任何措施
  • 支持重大短路或过流情况下的一次跳闸(OSHT)。
  • 支持电流限制操作的逐周期跳闸(CBC)。
  • 支持基于片上模拟比较器模块输出和/或TZ1至TZ3信号状态的数字比较跳闸(DC)。
  • 每个跳闸区输入和数字比较(DC)子模块DCAEVT1/2或DCBEVT1/2力事件可分配给单次触发或逐周期操作。
  • 任何跳闸区输入均可产生中断。
  • 还支持软件强制跳闸。
  • 如果不需要,可完全绕过跳闸区子模块。

18.9.2 Operational Highlights for the Trip-Zone Submodule

以下章节描述了跳闸区子模块的操作亮点和配置选项。

跳闸区信号TZ1至TZ6(也统称为TZn)是有效低输入信号。当其中一个信号变低时,或当根据TZDCSEL寄存器事件选择发生DCAEVT1/2或DCBEVT1/2力时,指示发生了跳闸事件。每个ePWM模块可以被单独地配置为忽略或使用每个跳闸区信号或DC事件。特定ePWM模块使用哪个跳闸区信号或DC事件由该特定ePWM的TZSEL寄存器确定。

跳闸区信号可以或不可以与ePWMclock(EPWMCLK)同步,并在GPIO MUX块内进行数字滤波。TZn输入上的最小3*TBCLK低脉冲宽度足以触发ePWM模块上的故障条件。如果脉冲宽度小于此值,则CBC或OST锁存器无法锁存跳闸条件。异步跳闸可确保如果由于任何原因丢失时钟,输出仍可通过TZn输入上的有效事件跳闸。GPIO或外围设备必须正确配置。有关详细信息,请参阅系统控制和中断一章。

每个TZn输入可单独配置为为ePWM模块提供逐周期或单次跳闸事件。DCAEVT1和DCBEVT1事件可被配置为直接使ePWM模块跳闸或向模块提供一次跳闸事件。同样,DCAEVT2和DCBEVT2事件也可以被配置为直接使ePWM模块跳闸或向模块提供逐周期跳闸事件。该配置分别由TZSEL[DCAVT1/2]、TZSEL[DCBEVT1/2]、SZSEL[CCBn]和TZSEL[OSHTn]控制位(其中n对应于跳闸输入)确定。

  • 逐周期(CBC):
    当发生逐周期跳闸事件时,TZCTL[TZA]和TZCTL[TZB]位中指定的动作将立即在EPWMxA和/或EPWMxB输出上执行。表18-12列出了一些可能的操作。通过适当配置TZCTL2寄存器中的位,可以根据计数器递增计数或递减计数时事件的发生情况指定独立的操作。TZCTL2寄存器中指定的操作仅在TZCTL2中的ETZE位设置时生效。
    此外,当发生逐周期跳闸事件时,逐周期跳闸标记(TZFLG[CCB])被设置,并且当TZEINT寄存器和PIE外围设备中启用时,EPWMx_TZINT中断被生成。导致CBC事件的事件的相应标志也设置在寄存器TZCBCFLG中。
    如果使用TZEINT寄存器启用CBC中断,并且使用TZSEL寄存器选择DCAEVT2或DCBEVT2作为CBC跳闸源,则无需同时启用TZEINT中的DCAEVT2和DCBEVT3中断,因为DC事件通过CBC机制触发中断。
    如果跳闸事件不再存在,则根据TZCLR[CCBPULSE]的选择自动清除输入上的指定条件。因此,在该模式下,跳闸事件在每个PWM周期被清除或重置。TZFLG[CCB]和TZCBCFLG标志位保持设置状态,直到通过写入TZCLR[CCB]或TZCBCCLR标志位手动清除标志位。如果在清除TZFLG[CCB]和TZCBCFLG寄存器位时仍存在逐周期跳闸事件,则这些位将再次立即设置。

  • 一次性(OSHT):
    当发生一次跳闸事件时,TZCTL[TZA]和TZCTL[TZB]位中指定的动作将立即在EPWMxA和/或EPWMxB输出上执行。表18-12列出了一些可能的操作。通过适当配置TZCTL2寄存器中的位,可以根据计数器向上计数和计数器向下计数时事件的发生情况指定独立的操作。TZCTL2寄存器中指定的操作仅在TZCTL2中的ETZE位设置时生效。
    此外,当发生一次触发跳闸事件时,设置一次触发事件标志(TZFLG[OST]),并在TZEINT寄存器和PIE外设中启用时生成EPWMx_TZINT中断。导致OST事件的事件的相应标志也设置在寄存器TZOSTFLG中。必须通过写入TZCLR[OST]位手动清除一次跳闸条件。如果需要,可以通过手动写入TZOSTCLR寄存器中的相应位来清除TZOSTFLG寄存器位。
    如果使用TZEINT寄存器启用单触发中断,并且使用TZSEL寄存器选择DCAEVT1或DCBEVT1作为OSHT跳闸源,则无需同时启用TZEINT中的DCAEVT1和DCBEVT2中断,因为DC事件通过OSHT机制触发中断。

  • 数字比较事件(DCAEVT1/2和DCBEVT1/2)
    根据TZDCSEL寄存器选择的DCAH/DCAL和DCBH/DCBL信号的组合,生成数字比较DCAEVT1/2或DCBEVT1/2事件。使用DCTRIPSEL寄存器选择产生DCAH/DCAL和DCBH/DCBL信号的信号,可以是跳闸区输入引脚或模拟比较器CMPSX信号。有关数字比较子模块信号的更多信息,请参阅第18.11节。
    当发生数字比较事件时,TZCTL[DCAVT1/2]和TZCTL[DCBEVT1/2]位中指定的操作将立即在EPWMxA和EPWMxB输出上执行。表18-12列出了可能的措施。通过适当配置TZCTLDCA和TZCTLDCB寄存器中的位,可以根据计数器递增计数和递减计数时事件的发生情况指定独立的操作。TZCTLDCA和TZCTLDCB寄存器中指定的操作仅在TZCTL2中的ETZE位设置时生效。
    此外,相关DC跳闸事件标志(TZFLG[DCAEVT1/2]/TZFLG[DCBETT1/2])已置位,并且当TZEINT寄存器和PIE外设中启用时,将生成EPWMx_TZINT中断。
    当直流跳闸事件不再存在时,引脚上的指定条件将自动清除。TZFLG[DCAEVT1/2]或TZFLG[DCBEVT1-2]标志位保持设置状态,直到通过写入TZCLR[DCAEVT2/2]和TZCLR[DCBEVT1]/2]位手动清除标志。如果在清除TZFLG[DCAEVT1/2]或TZFLG[DCBEVT1-2]标志时DC跳闸事件仍然存在,则该标志将立即再次设置。

可以通过TZCTL、TZCTL2、TZCTLDCA和TZCTLDCB寄存器位字段为每个ePWM输出引脚单独配置跳闸事件发生时采取的动作。表18-12所示的一些可能措施可在跳闸事件中采取。

在这里插入图片描述

18.9.3 Generating Trip Event Interrupts

图18-42和图18-43分别说明了跳闸区子模块控制和中断逻辑。DCAEVT1/2和DCBEVT1/2信号在第18.11节中有更详细的描述。
在这里插入图片描述
在这里插入图片描述

18.10 Event-Trigger (ET) Submodule

事件触发子模块的关键功能是:

  • 接收时基生成的事件输入,计数器比较,和数字比较子模块
  • 使用时基方向信息进行上/下事件确认
  • 使用预定标逻辑在以下时间发出中断请求和ADC转换开始:
    –每一个事件
    –每两个事件
    –最多每十五个事件
  • 使用事件计数器和标志提供事件生成的完整可见性
  • 允许软件强制中断和ADC转换开始事件触发子模块管理时基子模块、计数器比较子模块和数字比较子模块生成的事件,以在所选事件发生时向CPU生成中断并向ADC生成转换开始脉冲。

事件触发子模块管理时基子模块、计数器比较子模块和数字比较子模块生成的事件,以在所选事件发生时向CPU生成中断并向ADC生成转换脉冲开始。

在这里插入图片描述

18.10.1 Operational Overview of the ePWM Event-Trigger Submodule

事件触发子模块监控各种事件条件(如图18-45左侧的输入所示),并可配置为在发出中断请求或ADC开始转换之前对这些事件进行预缩放。事件触发预定标逻辑可以在以下时间发出中断请求和ADC转换开始:

  • 每一个事件
  • 每两个事件
  • 最多每十五个事件

在这里插入图片描述

  • ETSEL-选择触发中断或启动ADC转换的可能事件。
  • ETPS-这将编程上述事件预处理选项。
  • ETFLG-这些标志位指示所选和预缩放事件的状态。
  • ETCLR-这些位允许使用软件清除ETFLG寄存器中的标志位。
  • ETFRC-这些位允许软件强制事件。用于调试或软件干预。
  • ETINTPS-该功能可编程中断事件预处理选项,支持最多15个事件的计数和周期。
  • ETSOCPS-该功能可编程SOC事件预处理选项,支持最多15个事件的计数和周期。
  • ETNTINITCTL-这些位使用SYNC事件或使用软件强制启用ETNTINIT初始化。
  • ETCNTINIT-这些位允许使用用户编程值初始化SYNC事件(或软件强制)上的INT/SOCA/SOCB计数器。

图18-46、图18-47和图18-48显示了各种寄存器位如何与中断和ADC开始转换逻辑交互的更详细的视图。

图18-46显示了事件触发器的中断生成逻辑。中断周期(ETPS[INTPRD])位指定产生中断脉冲所需的事件数。可用选项包括:

  • 不要产生中断。
  • 在每个事件上生成中断。
  • 每隔一秒产生一次中断。
  • 每三个事件产生一次中断。

ETPS[INTPSSEL]位上的选择决定ETINTPS寄存器、INTCNT2和INTPRD2位字段是否决定事件频率(每0-15个事件中断一次)。

可导致中断的事件由中断选择(ETSEL[INTSEL])和(ETSEL[INTSELCMP])位配置。事件可以是以下事件之一:

  • 时基计数器等于零(TBCTR=0x00)。
  • 时基计数器等于周期(TBCTR=TBPRD)。
  • 时基计数器等于零或周期(TBCTR=0x0||TBCTR=TBPRD)。
  • 计时器递增时,时基计数器等于比较A寄存器(CMPA)。
  • 计时器递减时,时基计数器等于比较A寄存器(CMPA)。
  • 计时器递增时,时基计数器等于比较B寄存器(CMPB)。
  • 计时器递减时,时基计数器等于比较B寄存器(CMPB)。
  • 计时器递增时,时基计数器等于比较C寄存器(CMPC)。
  • 计时器递减时,时基计数器等于比较C寄存器(CMPC)。
  • 计时器递增时,时基计数器等于比较D寄存器(CMPD)。
  • 计时器递减时,时基计数器等于比较D寄存器(CMPD)。

根据使用ETPS[INTPSSEL]进行的选择,可以从中断事件计数器ETPS[IINTCNT]或ETINTPS[INTCNT2]寄存器位读取已发生的事件数。也就是说,当指定事件发生时,ETPS[INTCNT]或ETINTPS[INTNT2]位递增,直到这些位达到由ETPS[INTEPRD]或ETNTPS[INTPRD2]指定的值,该值由ETPS[INTPSSEL]中的选择再次确定。当ETPS[INTCNT]=ETPS[INTEPRD]时,计数器停止计数并设置计数器输出。只有当向PIE发送中断时,计数器才会被清除。

当ETPS[INTCNT]达到ETPS[INTEPRD]时,发生以下行为。以下行为也适用于ETINTPS[INTCNT2]和ETINTPS[INTPRD2]:

  • 如果中断被启用,ETSEL[INTEN]=1且中断标志被清除,ETFLG[INT]=0,则产生中断脉冲并设置中断标志,ETFLG[INT]=1,事件计数器被清除ETPS[INTCNT]=0。计数器再次开始计数事件。
  • 如果中断被禁用,ETSEL[INTEN]=0,或中断标志被设置,ETFLG[INT]=1,当计数器达到周期值ETPS[INTCNT]=ETPS[INTEPRD]时,计数器停止计数事件。
  • 如果中断已启用,但中断标志已设置,则计数器保持输出为高,直到ENTFLG[INT]标志被清除。这允许一个中断在服务时挂起。

将0写入INTPRD位会自动清除计数器(INTCNT=0),计数器输出复位(因此不会产生中断)。向ETFRC[INT]位写入1将使事件计数器INTCNT递增。当INTCNT=INTPRD时,计数器的行为如前所述。当INTPRD=0时,计数器被禁用,因此没有检测到事件,ETFRC[INT]位也被忽略。这同样适用于ETINTPS[INTCNT2]和ETINTPS[INTPRD2]。

前面的定义意味着,如果使用INTCNT和INTPRD,则可以在每个事件、每个第二个事件或每个第三个事件上生成中断。如果使用INTCNT2和INTPRD2,则可以在每个事件上产生中断,最多15个事件。

INTCNT2值可以基于在ETNTINITCTL[INITINT]中进行的选择,用ETNTINIT[ININIT]中的值初始化。当设置了ETNTINITCTL[INITINT]时,则由ETNTINITTTL[INITFRC]确定在SYNC事件或软件力上使用ETNTINIT[INITT]内容初始化INTCNT2计数器。
在这里插入图片描述
图18-47显示了事件触发器的转换开始A(SOCA)脉冲发生器的操作。增强功能包括ETSEL寄存器中定义的SOCASELCMP和SOCBSELCMP位字段分别启用CMPC和CMPD事件,以启动转换。ETPS[SOCPSSEL]位字段确定SOCACNT2和SOCAPRD2是否控制。ETPS[SOCACNT]计数器和ETPS[SACAPRD]周期值的行为与中断发生器类似,但脉冲是连续产生的。即,当产生脉冲时,锁存脉冲标志ETFLG[SOCA],但中断发生器不停止进一步的脉冲产生。启用和禁用位ETSEL[SOCAEN]停止脉冲生成,但输入事件仍可计数,直到达到中断生成逻辑的周期值。触发SOCA和SOCB脉冲的事件可以在ETSEL[SOCASEL]和ETSEL[SSOCBSEL]位中单独配置。可能的事件是可以为中断生成逻辑指定的相同事件,并添加来自数字比较(DC)子模块的DCAEVT1.soc和DCBEVT1.soc事件信号。SOCACNT2初始化方案与中断生成器非常相似,具有相应的启用、值初始化和SYNC或软件强制选项。
在这里插入图片描述
图18-48显示了事件触发器的启动转换B(SOCB)脉冲发生器的操作。事件触发器的SOCB脉冲发生器的操作方式与SOCA相同。

在这里插入图片描述

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值