TMS320F28335——EPWM

一、EPWM

EPWM:Enhanced Pulse Width Modulator,即增强型脉冲宽度调制器。

EPWM关联外设

EPWM模块化

1、EPWM 输出信号(EPWMxA和EPWMB)

2、Trip-zone 信号(TZ1 ~ TZ6)

这些输入信号能够将外部告警信息传递给epwm模块,通过配置GPIO外设异步输入。

3、时基同步输入(EPWMxSYNCI)和输出(EPWMxSYNCO)信号

同步信号连接于各个EPWM模块,由上图知,前一个EPWM同步输入作为后一个EPWM的同步输入。而只有EPWM1的同步信号输入来自时钟同步信号,另外,EPWM1SYNCO作为ECAP1(增强型捕获模块1)的同步输入。

4、ADC启动转换信号(EPWMxSOCA和EPWMxSOCB)

每个EPWM有两个ADC启动转换信号。任意一个EPWM都可以触发序列器启动转换。

EPWM结构图

二、EPWM模块

1、Time-base Submodule(TB,时基单元)

每个ePWM模块都有自己的时基单元,用来决定EPWM所有事件的时序。

时基单元结构图

EPWMxSYNCI:时基同步输入即输入脉冲,用于同步时基计数器与其他EPWM中较快的ePWM模块的计数器。对于EPWM来说,可以开启或者关闭同步功能,即可以接收或者不接收同步信号。对于EPWM1来说,它的同步信号来源于设备引脚输入,而不是EPWM。对于其他EPWM,如EPWM2接收EPWM1的同步信号,EPWM3接收EPWM2的同步信号,以此类推。

EPWMxSYNCO:时基同步输出即输出脉冲,用于同步时基计数器于其他EPWM中较慢的EPWM模块的计数器。产生输出脉冲的方式有三种:EPWMxSYNCI;计数器CTR值为0;计数器CTR值等于比较器B值。

CTR=PRD:时基计数器等于指定周期。

CTR=Zero:时基计数器等于0。

CTR=CMPB:时基计数器等于比较计数器B。

CTR_dir:时基计数方向,高电平表示计数器递增,低电平表示计数器递减。

CTR_max:用来指示时基计数器达到最大值0XFFFF。

TBCLK:时基时钟,由SYSCLKOUT分频得到,作为EPWM所有单元的时钟,决定了计数器的计数速率。

1.1 PWM周期/频率计算

PWM频率由时基周期TBPRD寄存器控制。时基计数器有三种模式:递增递减模式、递增模式、递减模式。

递增递减模式:时基计数器从0开始递增加到TBPRD,接着从TBPRD递减到0,如此反复。

递增模式:时基计数器从0递增到TBPRD,接着又从0递增,如此反复。

递减模式:计数器从TBPRD递减到0,接着又从TBPRD递减,如此反复。

1.2 时基周期影子寄存器

Active Register和Shadow寄存器定义:前者投入到实际硬件电路中运行,后者为前者提供一个暂时的空间,不会参与硬件电路运行。在一个关键时间点(如一个新周期的开始),后者会将其存放的内容传送到前者,防止由于前者被软件异步修改造成冲突错误运行。

两者的存储器地址相同,向哪个寄存器写入或者读取取决于TBCTL寄存器的PRDLD位,即要不要开启影子寄存器模式。

时基影子周期模式:当TBCTL.PRDLD=0时选择TBPRD影子寄存器写入或者读取。当时基计数器等于0时影子寄存器的内容传输到实际运行寄存器(TBPRD(Active)<-TBPRD(shadow))。

时基周期立即装载模式:当TBCTL.PRDLD=1时,直接写入或者读取Active TBPRD。

1.3 时基时钟同步

外部时钟使能寄存器中的TBCLKSYNC位可以同步所有使能的EPWM的TBCLK。当该位置起时,所有的EPWM的时钟从第一个上升沿开始。如果想完全同步,则每个EPWM的TBCLK需保持相等。

配置步骤:使能EPWM时钟--->清除同步时钟位---->配置EPWM------>置起同步时钟位。

注:先清除同步位是为了防止没有配置完成EWPM就开始同步运行。

1.4 时基计数同步

每个EPWM模块可以配置为使用或者忽略同步输入信号。当TBCTL寄存器的PHSEN位置起时,如果发生如下事件,时基计数器TBCTR将自动装载TBPHS的内容。

同步输入信号(脉冲):当检测到同步脉冲时,会在TBCLK有效边沿处将TBPHS的值加载到TBCTR。该过程需要2个SYSCLKOUT(当TBCLK=SYSCLKOUT)或者1个TBCLK(当TBCLK!=SYSCLKOUT)的延迟时间。

软件强制同步脉冲:当写1到TBCTL.SWFSYNC位时,会触发一次软件强制同步。这个脉冲跟同步信号脉冲呈“或”关系。在递增递减模式下,TBCTL.PSHDIR位在同步事件即将产生时,能够立即改变时基计数器的方向,而在递增/递减模式下PHSDIR被忽略。

通过清零TBCTL.PHSEN位能够忽略同步输入信号。但是同步脉冲依旧能够顺着往下同步其他EPWM。

1.5 时基时钟

TBCLKSYNC位(属于系统时钟寄存器,而不是EPWM模块寄存器)能够同步所有使能的EPWM模块。当TBCLKSYNC=0时,所有EPWM的时基时钟都将停止。当TBCLKSYNC=1时,所有EPWM模块的时钟都将从上升沿开始。如果想实现完全同步,则分频系数(TBCTL寄存器)需保持一致。

注:如果实现同步时钟,需先TBCLKSYNC=0,等配置完成后再令TBCLKSYNC=1。

1.6 时基计数模式

递增计数波形图

递减计数波形图

递增递减计数,PHSDIR=0同步事件递减计数

递增递减计数,PHSDIR=1同步事件递增计数

2、计数比较器单元

比较器结构图

基于两个比较器CMPA和CMPB,比较器单元同来产生两个独立的比较事件。

对于递增或者递减计数模式,每个事件在每个周期只产生一次,而对于递增递减模式,如果比较器值在0x0000~TBPRD之间,则每个事件在每个周期产生两次,如果比较器值为0或TBPRD,则产生一次。

2.1 影子寄存器

比较器CMPA和CMPB都有一个影子寄存器,同理与TBPRD寄存器,防止寄存器值被软件异步修改造成错误。

通过CMPCTL.LOADAMODE来选择什么时候将影子寄存器的值加载到Active寄存器,如CTR=PRD/CTR=ZERO/CTR=PRD、CTR=ZERO。

2.2 计数模式波形

递增模式下的比较计数

注:由于同步信号事件会造成TBCTR计数的不连续,会导致比较事件被跳过。

递减模式下的比较计数

递增递减比较模式,PHSDIR=0同步递减

递增递减比较模式,PHSDIR=0同步递增

3、动作限定单元(Action-Qualifier Submodule)

该单元用于动作产生,在CTR=PRD/ZERO/CMPA/CMPB时,产生如拉高、拉低、翻转信号的动作;当事件同时发送时,分配优先级。

AQ单元基于事件触发逻辑,可以看作一个由事件控制的开关。当事件产生时,AQ单元控制两路输出EPWMxA和EPWMxB。

动作限定单元输入输出

注:计数器方向会进一步限定事件输入,使得在递增递减时可以独立产生动作。

促使EPWMxA和EPWMxB产生的动作:拉高、拉低、翻转、保持不变。

EPWMx和EPWMxB动作图

3.1 动作限定事件优先级

在同一时刻,AQ单元可能接收到多个事件,此处有硬件分频优先级。一般来说,较晚发生的事件具备较高优先级,软件强制事件具备最高优先级。

递增递减模式下优先级

递增模式下优先级

递减模式下优先级

另外,可以设置CMP的值大于周期值。

3.2 波形配置

注:在实际应用情况下,新写入的值发挥作用会延迟一个TBCLK或者原先的值发挥作用会需要一个额外的TBCLK。

例如,如果想CMPA/CMPB=0,那么就写大于或等于1的值到CMPA/CMPB寄存器。如果想CMPA/CMPB=TBPRD,那么就写小于或等于TBPRD-1的值到CMPA/CMPB寄存器。这表示当PWM周期很短时,总有至少一个TBCLK周期的脉冲,容易被系统忽略。

递增递减同步波形

由图可知,EPWMA和EPWMB在CTR=CMPA的后一时刻发送变化。

4、死区单元

该单元用于产生边缘延迟的带极性控制的死区。死区的重要功能有:从单个EPWMxA输入产生具有死带关系的信号对(EPWMxA和EPWMxB),如同为高,同为低,高电平互补,低电平互补,上升沿延迟,下降沿延迟。

死区单元有两组独立的选项:

输入源选择:

死区的输入信号为来自AQ单元的EPWMxA和EPWMxB输出。通过配置DBCTL.IN_MODE位,可以对输入信号进行选择处理。

如 EPWMxA是下降沿和上升沿延迟的源(默认模式);EPWMxA 为下降沿延迟源,EPWMxB为上升沿延迟源;EPWMxA 为上升沿延迟源,EPWMxB为下降沿延迟源;EPWMxB是下降沿和上升沿延迟的源。

输出模式控制:

通过配置DBCTL.OUT_MODE位来决定是否要上升沿延迟、下降沿延迟、都延迟或者都不延迟。

极性控制:

通过配置DBCTL.POLSEL位来决定是否要将上升沿延迟信号/下降沿延迟信号取反。

注:由图可知,通过DBCTL.OUT_MODE来决定要不要使用死区单元。

死区运行模式

注:可见对于一个死区输出信号来说,不能同时输出上升沿延迟和下降沿延迟。

注:死区延迟时间基于TBCLK计数,即FED = DBFED×TBCLK,RED=DBRED×TBCLK。

5、PWM斩波单元

PWM 斩波单元通过一个高频载波来修整PWM波形,对于控制电力电子开关十分重要。

载波时钟来自于系统时钟SYSCLKOUT,通过PCCTL寄存器的CHPFREQ和CHPDUTY来控制频率和占空比。one-shot块可以提供第一个高能脉冲来确保开关开启,One-shot 脉冲宽度由OSHTWTH位来控制。

PWM斩波单元结构图

5.1 One-Shot 脉冲

第一个脉冲宽度可以配置成16种,T(first pluse)= SYSCLKOUT×8×OSHTWTH(4 bit)。

以SYSCLKOUT=100MHZ为例

5.2 占空比控制

在第一个脉冲后,第二个脉冲以及随后的脉冲的占空比也是可变的,通过CHPDUTY位来实现。

注:PSCLK由系统时钟8倍分频得到,即为PC单元产生的高频载波,在此基础上调节展开比。

6、Trip-Zone(TZ)单元

每个EPWM模块连接6个TZn信号(TZ1~TZ6,源于GPIO)。这些信号用于指示外部故障或者触发条件。当发送故障时,EPWM可以配置相应的输出,如拉低,拉高,高组态,不动作。

注:只有6个TZ输出映射到各个EPWM。

TZn信号有效电平为低电平。当其中一个引脚被拉低时,表明TZ事件产生。每个EPWM都可以配置使用或者忽略该信号,通过TZSEL寄存器来配置。TZn引脚输入至少保持1个SYSCLKOUT的低脉冲,足以满足触发条件。TZ引脚可以同步或者不同步系统时钟,但是异步可以确保在系统时钟丢失仍能够将信号输送到EPWM。

注:系统时钟丢失GPIO仍能检测引脚状态。

对于一个EPWM来说,每个TZn输入可以独立配置为周期性(cycle-by-cycle)触发或者一次性(one-shot)触发,通过TZSEL.CBC和TZSEL.OSHTn控制。

Cycle-by-Cycle(CBC):

当一个周期性触发事件产生时,TZCTL寄存器立即对EPWMxA/EPWMxB执行指定动作。另外,CBC触发标志位置起,如果使能TZEINT,则产生EPWM_TZINT中断。

如果触发事件不存在时,在时基计数器达到0时,会自动清除相应位。所以,在此模式下,触发事件会在每个PWM周期清除/复位。但是TZFLG.CBC标志位会保证置位,需手动清除。如果CBC触发事件仍存在,在清除标志位后又立即置起。

One-Shot(OSHT):

当发生一次性触发事件,TZCTL寄存器立即对EPWMxA/EPWMxB执行指定动作。另外,ONE-SHOT  触发标志位置起,如果使能TZEINT,则产生EPWM_TZINT中断。one-shot条件必须手动清除。

Trip事件输出动作

Trip-Zone单元逻辑图

Trip-Zone单元中断逻辑

7、事件触发单元(Event-Trigger,ET)

事件触发单元用于管理时基单元和比较单元产生的事件,对应产生中断或者ADC启动转换脉冲。

每个EPWM模块有一条中断请求线连接到PIE和2个启动转换信号连接到ADC模块如例图。

注:如果两个启动转换请求同时产生,则只能一个被送入ADC。

事件触发单元结构图

注:ETPS.INTPRD位可以指定产生一次中断的事件次数,如不产生中断、第一次事件、第二次事件、第三次事件。通过读取ETPS.INTCNT来获知事件产生的次数。当中断送入PIE时计数才清零。

如果中断使能,标志位清零,当中断产生时标志位置起,事件计数清零后重新计数。

如果中断禁能,标志位置起,当INTCNT=INTPRD时,事件计数器停止。

当中断使能,标志位已经置起,事件计数器保持高电平输出知道ENFLG.INT标志位清零。

对INTPRD位写入可以清零INTCNT,同时计数器输出复位,因此没有中断产生。向ETFRC.INT位写入1会使事件计数器值增1。当INTPRD=0时,计数器失效,不会检测到任何事件,ETFRC.INT失效。

事件触发中断产生

ETPS[SOCACNT]计数器和ETPS[SOCAPRD]周期值的行为与中断发生器相似,只是脉冲是连续产生的。也就是说,当脉冲产生时,脉冲标志ETFLG[SOCA]被锁存,但它不会停止进一步的脉冲产生。启用/禁用ETSEL[SOCAEN]位停止脉冲产生,但是输入事件仍然可以被计数,直到达到周期值。触发SOCA和SOCB脉冲的事件可以在ETSEL[SOCASEL]和ETSEL[SOCBSEL]位中分别配置。

事件触发SOCA脉冲产生

事件触发SOCB脉冲产生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值