目录

Chapter 18 Enhanced Pulse

18.1 Introduction

18.1.1 Submodule Overview

18.2 Configuring Device Pins

18.3 ePWM Modules Overview

18.4 Time-Base Submodule

18.4.1 Purpose of the Time-Base Submodule

18.4.2 Controlling and Monitoring the Time-Base Submodule

18.4.3  Calculating PWM Period and Frequency

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

18.4.5 Simultaneous Writes to TBPRD and CMPx Registers Between ePWM Modules

18.4.6 Time-Base Counter Modes and Timing Waveforms

18.4.7 Global Load

18.5 Counter-Compare(CC) Submodule


Chapter 18 Enhanced Pulse

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

本章适用于具有附加寄存器保护能力的ePWM类型4。请参阅《C2000 Real-Time Control Peripheral Reference Guide》,了解具有相同类型ePWM模块的所有设备的列表,以确定类型之间的差异,以及类型内设备特定差异的列表。
更多信息请参见Flexible PWMs Enable Multi-Axis Drives, Multi-Level Inverters Technical Brief.

18.1 Introduction

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

  • TB时基子模块
  • CC计数器比较子模块
  • AQ动作限定子模块
  • 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 Submodule Overview

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

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-3显示了单个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 Configuring Device Pins

要将设备输入引脚连接到模块,必须使用输入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类型4引入了一种新的同步方案,允许增加ePWM模块同步的灵活性。每个ePWM模块都有一个同步输入(SYNCI)、一个同步输出(SYNCO)和一个外围同步输出(SYNCPER)。在图18-7中,EXTSYNC1来自INPUTXBAR5,EXTSYNC2来自INPUTXBAR6,可以配置为选择任何GPIO作为同步输入。使用SYNCSEL寄存器配置同步链传播路径时,确保最长路径不超过四个ePWM \/eCAP模块。


注:

有关特定设备上可用的ePWM和eCAP模块的数量,请参阅数据手册。


每个ePWM模块可以配置为使用或忽略同步输入。如果设置了TBCTL[PHSEN]位,则当出现以下情况之一时,ePWM模块的时基计数器(TBCTR)将自动加载相位寄存器(TBPHS)内容:

  • EPWMxSYNCI:同步输入脉冲:

当检测到输入同步脉冲(TBPH)时,相位寄存器的值加载到计数器寄存器中→ TBCTR)。此操作发生在下一个有效的时基时钟(TBCLK)边缘。
从内部主模块到从模块的延迟由以下公式得出:

–if(TBCLK=EPWMCLK):2 x EPWMCLK

–if(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时钟的正确程序如下:

  1. 启用单个ePWM模块时钟。系统控制和中断章节对此进行了描述
  2. 清除TBCLKSYNC位,这将停止任何启用的ePWM模块内的时基时钟。
  3. 配置预定标寄存器的值和期望的ePWM模式
  4. 把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: Time-base counter equals counter-compare A register (TBCTR = CMPA)

– CTR = CMPB: Time-base counter equals counter-compare B register (TBCTR = CMPB)

– CTR = CMPC: Time-base counter equals counter-compare C register (TBCTR = CMPC)

– CTR = CMPD: Time-base counter equals counter-compare D register (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]位确定。这些位分别启用和禁用CMPC阴影寄存器和CMPD阴影寄存器。两种负载模式的行为是:

阴影模式:

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.16节中的寄存器进行监控

为方便起见,表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=非对称

F280049C Enhanced Pulse Width Modulation相关推荐

  1. PWM(Pulse Width Modulation)调试原理

    转帖地址: http://hi.baidu.com/caiag/blog/item/c9d9011e7fa96ac0a6866961.html PWM(Pulse Width Modulation)控 ...

  2. 【F28003x】 Enhanced Pulse Width Modulator (ePWM)

    文章目录 简介 子模块参数说明 Time-Base Submodule Trip-Zone(TZ) Submodule TZ子模块作用 Digital Compare(DC) Submodule Pu ...

  3. LED调光,PFM即pulse frequence modulation

    PWM不是唯一的调制方式,可以PWM,也可以PFM,也可以混合调制. PWM即pulse width modulation的缩写,脉冲宽度调制,保持开关周期不变,调节开关导通时间. PFM即pulse ...

  4. 一念心动,一生绵延——如何修复min pulse width?

    今天我们来介绍如何来修复ECO阶段的min pulse width violation(最小脉冲宽度违例).首先,我们来介绍一下什么是min pulse width. min pulse width, ...

  5. 脉冲宽度调制(Pluse Width Modulation)

    脉冲宽度调制Pluse Width Modulation 特点 参考 脉冲宽度调制(Pluse Width Modulation) 脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 ...

  6. 静态时序分析—脉冲宽度检查(Pulse Width Check)

    min pulse width直译为"最小脉冲宽度",脉冲宽度检查用来确保时序单元输入引脚的脉冲宽度满足最小要求.如果时钟引脚上的脉冲宽度小于指定的最小值,时钟可能没有正确的锁存数 ...

  7. 新唐M261M262M263系列芯片知识总结归纳(1)

    新唐M263KIAAE芯片 1,PDMA 2,SPI 3,EPWM 4,I^2^C总线 4.1,I^2^C总线特征 4.2,I^2^C总线协议 4.3,I^2^C总线数据传输过程 4.3.1,数据传输 ...

  8. 简要视音频发展编年史

    转自一外国牛人博客 First, I'd like to apologize for not posting any articles lately. I've been busy completin ...

  9. [DSP 日常记录] #2 TI DSP 的简单介绍与 DSP 的一些名词解释

    将原先自己别处写的两篇博文汇总在这里 [内容仅针对 TI 公司生产的 DSP] TI公司的主要处理器产品列表 参考:TI.WIKI 一.MCUs 微处理器 16-bit 超低功耗处理器 -- MSP4 ...

  10. 剖析CPU温度监控技术

    迄今为止还没有一种cpu散热系统能保证永不失效.失去了散热系统保护伞的"芯",往往会在几秒钟内永远停止"跳动".值得庆幸的是,聪明的工程师们开发出有效的CPU温 ...

最新文章

  1. mac电脑抹掉数据要多久_macbook怎么抹掉所有的数据?
  2. 用python创建数据库监控平台(3)安装Python3.5
  3. 20211江西高考成绩查询,江西高考成绩查询系统
  4. PDF加密、解密内幕(三) -破解加密PDF文件
  5. 黑马python培训视频网盘下载_黑马课堂大数据全套视频课程百度云下载
  6. 动态网页程序设计报告(留言板)
  7. openmv实现二维码识别与串口发送
  8. React(10)-组件通信(important)
  9. 智联招聘java可信吗_蛇字属于什么生肖十二生肖中的动物各怎么读?
  10. vue element 输入框出现英文提示怎样解决
  11. 【xla】二、【构图阶段】MarkForCompilationPassImpl
  12. php 起源来由(搜集整理)
  13. 随手记_英语_学术写作_常用近义词区分
  14. Centos-7使用的性能监控工具
  15. arm芯片中的浮点运算(一)
  16. 大前端进阶!NodeJS、Npm、Es6、Babel、Webpack、模块化开发
  17. 怎么控制别人的电脑屏幕?
  18. 2021年起重机司机(限桥式起重机)模拟考试及起重机司机(限桥式起重机)实操考试视频
  19. win10查看USB设备接入记录
  20. SuperBuilder的用法,此时不要用Builder

热门文章

  1. IDEA更改主题颜色
  2. 万圣节头像挂件微信小程序前端
  3. 怎样保持下拉菜单截图?如何快速截图截图快捷键
  4. layui上传文件请求接口异常_解决layui table表单提示数据接口请求异常的问题
  5. html常见基础标签大汇总
  6. OpenWrt路由器设置万能中继及如何永久修改MAC地址
  7. Scratch少儿编程
  8. 舵机和舵机控制版、步进电机、伺服电机
  9. python生成的词云没有图案_python词云(词云图生成器)
  10. 多种方法对网页文字进行快速复制(仅供学习使用,勿践踏他人成果)