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.3Calculating 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/T编辑事件2PWM,它不会立即改变PWM相反,它们将同步到下一个TBCLK。
- 死区发生器模块增强
隐藏DBCTL允许动态配置更改寄存器
- 一次性和全局加载寄存器
ePWM类型4允许从阴影到有源寄存器的一次性和全局负载能力,以避免多相应用中的部分负载。它还允许从阴影到活动负载事件的可编程预分类。ePWM类型4全局加载可以通过消除中断和同时加载所有寄存器来简化ePWM软件。
- 增强跳闸区模块
添加独立标志来反映每个标志TZ源跳闸状态。为了支持一些功率转换器开关技术,如谷值开关,更改了跳闸区域模块。
- 数字比较子模块增强
消隐窗滤波器寄存器的宽度从8位增加到16位。DCCAP为了提供更多的可编程性,增强了功能
- PWM同步相关增强
ePWM允许基于类型4CMPC和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)值开始,并递减直到达到零。当其达到零时,时基计数器重置为周期值,并再次开始递减。
时基周期寄存器(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内存地址的读取或写入直接进入活动寄存器。
外围时钟启用寄存器中的TBCLKSYNC位允许所有用户将所有启用的ePWM模块全局同步到时基时钟(TBCLK)。设置时,所有启用的ePWM模块时钟均以对齐TBCLK的第一个上升沿开始。对于完全同步的TBCLK,每个ePWM模块的预分频器必须设置相同。
启用ePWM时钟的正确程序如下:
- 通过PCLKCRx寄存器使能ePWM模块时钟
- 将TBCLKSYNC清零
- 配置ePWM模块
- 将TBCLKSYNC置位
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时钟的正确程序如下:
- 启用单个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)。单个阴影寄存器的阴影到活动加载事件选择位决定了内容如何从阴影寄存器转移到活动寄存器。
此功能提供了选择阴影到活动传输的能力,以在所选全局负载脉冲(GLDCTL[GLDMODE])的“N”次出现中发生一次。对于不能或未配置为使用全局加载机制的寄存器(即GLDCTL[GLD]=“0”或GLDCFG[REGx]=“0”),此预缩放功能不可用
此功能允许用户使卷影寄存器到活动寄存器的传输发生一次。当GLDCTL2[OSHTLD]=“1”时,对于配置为使用全局加载机制的寄存器,在GLDCTL[GLDMODE]选择的事件上发生阴影到活动寄存器的传输。
通过使用GLDCTL2[GFRCLD],软件可以将内容从阴影寄存器强制加载到活动寄存器。GLDCTL2寄存器也可以使用EPWMXLINK[GLDCTL2LINK]跨多个PWM模块链接。这与上面讨论的一次性负载模式功能一起,提供了一种方法,可以在某些PWM事件或(如果需要)在同一时钟周期内正确更新一个或多个PWM模块中的多个PWM寄存器。这在变频应用和/或多相交错应用中非常有用
注:
启用高分辨率模式时,不应使用一次性加载模式
您可以通过配置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
计数器比较子模块负责生成可在动作限定符和/或事件触发器子模块中使用的事件。有四个独立的比较事件:
- CTR=CMPA: TBCTR=CMPA
- CTR=CMPB: TBCTR=CMPB
- CTR=CMPC: TBCTR=CMPC此事件只能用于在事件触发器子模块中生成事件。
- 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和更高版本上的计数器比较子模块负责基于两个比较寄存器生成两个额外的独立比较事件,并将其馈送到事件触发子模块:
- CTR=CMPC:时基计数器等于计数器比较C寄存器(TBCTR=CMPC)。
- 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的生成。
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配置避免了这种情况。这些包括但不限于以下内容:
- 如果将CMPA\/CMPB加载为零,则使用大于或等于1的CMPA\/CMPB值。
- 如果在周期上加载CMPA\/CMPB,则使用小于或等于TBPRD-1的CMPA\/CMPB值。
这意味着在PWM周期内始终存在至少一个TBCLK周期的脉冲,当非常短时,系统往往会忽略该脉冲。
- 要实现50%-0%的不对称PWM,请使用以下配置:在周期上加载CMPA\/CMPB,并使用周期动作清除PWM,使用比较向上动作设置PWM。
- 将比较值从0调节到TBPRD,以实现50%-0%的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=非对称