第6章DSP片上控制与采样外设6.1 增强型脉宽调制器(ePWM)6.1.1 ePWM模块概述•增强型脉冲宽度调制器(ePWM)•ePWM模块中每个完整的PWM通道都是由两个PWM输出组成,即ePWMxA和ePWMxB•有时为了能够更精确控制PWM输出,加入了硬件扩展模块—高精度脉冲宽度调制器(HRPWM)•当多个ePWM模块集成在一个器件内时,如图:每个ePWM模块都具有以下特征:●周期和频率可控的16位时间基准计数器。
●两个PWM输出(EPWMxA,EPWMxB),可以配置成以下工作方式:两个独立的带有单个边沿操作的PWM输出、两个独立的带有双边沿对称操作的PWM输出、一个独立的带有双边沿非对称操作的PWM输出。
●通过软件可实现PWM信号的异步越权控制。
●可编程的相位控制,以支持相对其它ePWM模块的相位滞后或超前操作。
●逐周期的硬件上相位同步。
●独立的上升沿和下降沿死区延时控制。
●可编程错误区域分配,用于故障时的逐周期控制和单次控制。
●所有事件都可以触发CPU中断以及ADC启动转换(SOC)。
●事件可预定标,减小CPU频繁响应中断的负担。
●循环周期性的硬件锁定(同步)相位关系。
●错误条件可强制PWM输出为高、低以及高阻状态。
●高频载波信号实现PWM斩波,对于脉冲变压器门极驱动非常有用。
ePWM子模块概述•ePWM模块主要包含以下7部分:时间基准子模块;计数比较子模块;动作限定子模块;死区控制子模块;PWM斩波子模块;错误区域控制子模块和事件触发子模块。
•每个ePWM模块都是由7个子模块组成,并且系统内通过信号进行连接,如图:ePWM模块内部结构如图:ePWM模块的主要信号模块如下:•PWM输出信号(ePWMxA和ePWMxB)•错误区域信号(TZ1-TZ6)•时间基准同步输入和输出信号•ADC启动信号•外设总线1. 时间基准子模块(TB)每个ePWM都有自己的时间基准模块,它用来决定ePWM 的事件时序。
通过同步逻辑信号,可以实现多个ePWM模块以相同时间基准进行工作。
图为ePWM模块的时间基准子模块的关系图。
(1)时间基准子模块的用途用户可以通过配置时间基准子模块实现以下功能:①指定ePWM时间基准计数器(TBCTR)的频率值或周期值以控制事件发生的频率。
②与其它ePWM模块的时间基准同步。
③维持与其它ePWM模块间的相位关系。
⑤设置时间基准计数器为增、减或增减计数模式。
⑥产生以下事件:●CTR=PRD:时间基准计数器值等于指定的周期值(TBCTR=TBPRD);●CTR=ZERO:时间基准计数器等于零(TBCTR = 0x0000)。
⑦配置时间基准的时钟率,即对CPU系统时钟(SYSCLKOUT)的预定标。
时间基准模块的关键信号和寄存器与时间基准子模块相关联的关键信号信号描述ePWMMxSYNCI 时间基准同步信号输入ePWMMxSYNCO 时间基准同步信号输出CTR=PRD 时间基准计数器等于指定周期CTR=Zero时间基准计数器等于零CTR=CMPB 时间基准计数器等于计数寄存器CTR_dir时间基准计数方向CTR_max时间基准计数器等于最大值TBCLK时间基准时钟计数PWM周期与频率时间基准周期寄存器(TBPRD)和时间基准计数器共同控制PWM的频率,当TBPRD=4时周期和频率与计数器递增、递减以及递增递减时的关系。
系统时钟(SYSCLKOUT)的预定标处理将得到时间基准时钟(TBCLK),由该时钟决定每次时间递增的步骤。
时间基准计数器有三种操作模式,可通过时间基准计数寄存器(TBCTL)选择:(1)递增计数模块时间基准计数器从周期值,当达到周期值,时间基准计数器复位置零,此时再重新开始递增计数,重复运行。
(2)递减计数模式时间基准计数器从周期值递减到零,当达到零值时,时间基准计数器重置周期值,此时再重新递减重复运行。
(3)递增递减计数模式时间基准计数器从零递增到周期值,当达到周期值,时间基准计数器开始递减直至零,此时再递增重复运行。
时间基准周期映射寄存器(1)当前工作寄存器(active register)。
(2)映射寄存器(shadow register)。
(3)时间基准周期映射模式。
(4)时间基准周期立即装载模式。
6.1.2 ePWM子模块功能2.计数比较子模块计数比较子模块将时间基准计数器的计数值不断地同计数比较器A(CMPA)和计数比较器B(CMPB)寄存器做比较,当时间基准计数器等于其中一个比较寄存器的值时,计数比较单元产生相应的事件。
①使用可编程的CMPA和CMPB寄存器产生相应比较事件:CTR=CMPA,时间基准计数器等于计数比较寄存器A (TBCTR=CMPA)。
CTR=CMPB,时间基准计数器等于计数比较寄存器B (TBCTR=CMPB)。
②若对动作限定子模块进行了相关配置,可控制PWM的占空比。
③映射新的比较值,防止在当前的PWM周期中产生冲突。
计数比较子模块基本结构1.计数比较子模块的应用(1)两位独立的比较事件CTR=CMPA:时间基准计数器等于有效计数比较器A的值CTR=CMPB:时间基准计数器等于有效计数比较器B的值(2)两种工作模式映射模式立即装载模式2.计数模式时序波形计数比较子模块产生比较事件有以下三种模式:•增计数模式:用于产生不对称的PWM脉冲波形。
•减计数模式:用于产生不对称的PWM脉冲波形。
•增减计数模式:用于产生对称的PWM脉冲波形。
动作限定子模块在PWM波形的产生中具有最重要的作用。
它决定哪些事件可产生相关类型的动作,从而使EPWMxA和EPWMxB输出要求的波形。
动作限定子模块(Action-qualifier)与其它模块的连接关系同图所示。
•基于以下事件限制并产生相应操作•当事件发生时,管理产生事件的极性•当时间基准计数器递增或递减计数时,提供事件的独立控制。
•如图:动作限定子模块输入输出信号。
动作限定子模块的应用ePWMxA和ePWMxB输出的几种操作方式①置高:设置EPWMxA或EPWMxB输出为高电平。
②置低:设置EPWMxA或EPWMxB输出为低电平。
③取反:如果当前EPWMxA或EPWMxB输出被拉高,则将其拉低;如果当前EPWMxA和EPWMxB输出被拉低,则将其拉高。
④无动作:保持输出EPWMxA和EPWMxB为当前设置状态。
尽管无动作操作不会改变EPWMxA和EPWMxB的输出,但相应事件仍可以触发中断和ADC开始转换。
EPWMxA和EPWMxB的输出动作可以独立配置,任何事件都可以对给定的输出引脚进行动作控制。
例如,CTR=CMPA和CTR=CMPB都可以对EPWMxA输出进行控制。
所有的限定操作可以由控制寄存器进行配置。
动作限定子模块动作限定事件优先级ePWM动作限定器有可能在同一时间接收多个事件,在这种情况下,通过硬件来分配事件的优先级。
一般规则是发生较晚的事件有较高的优先级,由软件强制发生的事件总是具有最高的优先级。
优先级别为1的是最高优先级。
TBCTR计数方向的不同会带来优先级的细微变化。
●递增递减模式下动作限定事件优先级●递增模式下动作限定事件优先级●递减模式下动作限定事件优先级ePWM死区子模块的结构如图该模块的主要功能:•对单个EPWMx输入信号(死区子模块的输入信号)产生带有死区的信号对(EPWMxA和EPWMxB)。
•对信号对进行高有效(AH)、低有效(AL)、互补高有效(AHC)、互补低有效(ALC)配置。
•为上升沿增加可编程延迟(RED)。
•为下降沿增加可编程延迟(FED)。
•信号通道可以完全被旁路。
死区子模块的操作方法死区子模块有两组独立的可选择方式,如图所示。
这两组独立的可选择方式可以对输入信号源、输出模式及极性进行相应配置。
①输入源选择。
可以通过DBCTL寄存器的IN_MODE位来选择每个上升沿延迟或下降沿延迟的信号源,有如下几种模式: EPWMxA In用作下降沿和上升沿延迟的信号源,此操作为默认模式;EPWMxA In用作下降沿延迟的信号源,EPWMxB In用作上升沿延迟的信号源;EPWMxA In用作上升沿延迟的信号源,EPWMxB In用作下降沿延迟的信号源;EPWMxB In用作下降沿和上升沿延迟的信号源。
②输出模式控制。
由DBCTL[OUT_MODE]位来控制输出模式,这些位可配置上升沿延迟输出、下降沿延迟输出、二者均作为或二者均不作为死区子模块的输出。
③极性控制。
极性控制(DBCTL[POLSEL])位可以配置上升沿延迟、下降沿延迟信号在输出前是否进行翻转。
PWM斩波器子模块可以通过动作限定和死区控制子模块产生高频PWM斩波,在使用PWM控制功率开关中此功能很重要。
1、PWM斩波器子模块主要功能如下:1).可编程斩波频率。
2).可编程第一个斩波脉冲的脉冲宽度。
3).可编程第二个或其他脉冲的占空比。
4).不必要时则完全可以不使用此功能。
2、PWM斩波器的操作和输出波形如图给出PWM斩波器子模块具体操作结构,SYSCLKOUT分频提供该模块时钟,频率和占空比由PCCTL寄存器的CHPFREQ 位与CHPDUTY位控制。
3、单次触发脉冲首脉冲的宽度可配置为16种值,首脉冲的宽度或周期通过公式(6-1)计算:T1stpulse = TSYSCLKOUT×8×OSHTWTH (6-1)这里的TSYSCLKOUT是系统时钟周期,OSHTWTH是4位寄存器值,取值范围为1~16。
4、占空比控制脉冲变压器门极驱动的设计需要考虑到变压器和相关电路的特性。
饱和性就是其中一个需要考虑的因素。
为了满足门极驱动设计要求,第二个和随后脉冲的占空比可通过编程设置。
在功率开关导通的期间内,这些持续脉冲确保了合适的驱动能力和极性,并且可以通过软件设置脉冲的占空比和极性。
图6-23是通过设置CHPDUTY位实现占空比控制的时序图,可选择的占空比范围是12.5%~87.5%。
如图给出了错误控制子模块的结构框图。
每个ePWM模块都与6个TZn错误控制信号相连,这些错误控制信号与GPIO口复用。
当这些信号呈现出外部错误或触发条件时,ePWM输出可以设置为相应的工作方式,来响应错误信号的发生。
1、错误控制子模块主要功能①错误输入TZ1 ~ TZ6可映射到任何一个ePWM模块。
②当错误条件发生时,EPWMxA和EPWMxB的输出可以强制为高电平、低电平、高阻态或不动作。
③对于严重的短路或者过流的情况支持单次触发错误(OSHT)。
④支持当前限定操作的周期性触发。
⑤每个错误区输入引脚可以分配为单次触发或者逐周期触发操作。
⑥任何一个错误区引脚都可产生中断。
⑦支持软件强制触发。
⑧如不需要,错误控制子模块可以完全禁用。
错误控制子模块(TZ)2、错误控制子模块的操作方式错误区~TZ1 ~ TZ6引脚信号是低有效,当这些引脚是低电平时,就表示该引脚有错误事件发生。