理论教育 HRPWM模块的工作原理优化建议:深入解析HRPWM模块的运行方式

HRPWM模块的工作原理优化建议:深入解析HRPWM模块的运行方式

时间:2023-06-15 理论教育 版权反馈
【摘要】:HRPWM还具有一个自检软件诊断模式,以检测在各种运行条件下MEP逻辑是否最优运行。HRPWM与这些寄存器配合,扩展边沿分辨率并作相应的配置。HRPWM的运行由表7-10所示的寄存器控制与监测。这些HRPWM寄存器与16位寄存器TBPHS、TBPRD和CMPA联合一起控制PWM运行。图7-29给出了HRPWM扩展寄存器与存储器配置。图7-30给出了HRPWM模块框图,其中的寄存器TBPHSHR、TBPRDHR来自于时基子模块,寄存器CMPAHR来自于计数比较子模块。表7-11给出了HRPWM支持的运行频率的典型范围。

HRPWM模块的工作原理优化建议:深入解析HRPWM模块的运行方式

HRPWM是基于微边沿定位器(MEP)技术的。MEP逻辑电路通过细分常规PWM发生器的粗系统时钟,能够很精细地定位一个边沿。时间步的精度是150ps的数量级。对具体的器件,典型的MEP步大小需参考相应的手册来确定。HRPWM还具有一个自检软件诊断模式,以检测在各种运行条件下MEP逻辑是否最优运行。

图7-28给出了粗系统时钟与以MEP步表示的边沿位置的关系,该边沿位置可以由比较A寄存器(CMPAHR)的8位域控制。图中,MEP步数=取小数(PWM负荷∗PWM周期)∗(MEP定标系数)+0.5(圆整),对于MEP范围与圆整调整,Q8格式为0x0080。而且有

16位CMPA寄存器值=粗步数。

16位CMPAHR寄存器值=MEP步数<<8(高8位)。

978-7-111-57271-8-Chapter07-175.jpg

图7-28 采用MEP的运行逻辑关系

为产生一个给定频率与极性的HRPWM波形,与对于需要配置寄存器TBM、CCM和AQM。这与产生常规PWM波形一样。HRPWM与这些寄存器配合,扩展边沿分辨率并作相应的配置。尽管有多种可能的编程组合,但是只需要其中很少且实用的组合。

HRPWM的运行由表7-10所示的寄存器控制与监测。

7-10 HRPWM模块的寄存器

978-7-111-57271-8-Chapter07-176.jpg

(1)控制HRPWM能力

HRPWM的微边沿定位器(MEP)能力由三个扩展寄存器扩展,它们都是8位宽度。这些HRPWM寄存器与16位寄存器TBPHS、TBPRD和CMPA联合一起控制PWM运行。

●TBPHSHR,时基相位高分辨率寄存器。

●CMPAHR,计数比较A高分辨率寄存器。

●TBPRDHR,时基周期高分辨率寄存器(某些器件可用)。

图7-29给出了HRPWM扩展寄存器与存储器配置。图中上标带A的寄存器有镜像,能写到两个不同的存储器单元(镜像寄存器带有后缀“M”,例如CMPA镜像即CMPAM)。读高分辨率镜像寄存器会有不确定的值。另外,TBPRDHR和TBPRD只有在镜像地址可以按32位值写入,不是所有器件都有这两个寄存器。

978-7-111-57271-8-Chapter07-177.jpg

图7-29 HRPWM扩展寄存器与存储器配置

采用通道A的PWM信号通路控制HRPWM能力。通过合适配置HRCNFG寄存器,可以在通道B的PWM信号通路支持HRPWM。图7-30给出了HRPWM模块框图,其中的寄存器TBPHSHR、TBPRDHR来自于时基子模块,寄存器CMPAHR来自于计数比较子模块。

978-7-111-57271-8-Chapter07-178.jpg

图7-30 HRPWM模块框图

(2)配置HRPWM

一旦ePWM对于一个给定的频率与极性配置为提供常规PWM,HRPWM就可以通过编程HRCNFG寄存器进行配置。该寄存器有如下配置选择:

1)边沿模式。可以编程MEP以提供上升沿(RE)、下降沿(FE)或同时双沿(BE)的精密的位置控制。FE与RE用于需要占空比控制(CMPA高分辨率控制)的功率拓扑电路,而BE用于需要相位偏移控制的功率拓扑电路,例如相移全桥(TBPHS或TBPRD高分辨率控制)。

2)控制模式。MEP编程控制既可以采用CMPAHR寄存器(占空比控制),也可以采用TBPHSHR寄存器(相位控制)。RE或FE控制模式应与CMPAHR寄存器一起使用。BE控制模式应与TBPHSHR寄存器一起使用。当MEP由TBPRDHR寄存器(周期)控制时,占空比与相位也可以通过其相应的高分辨率寄存器控制。

3)影子模式。该模式与常规PWM模式提供一样的影子(双缓冲)选择。只有通过CMPAHR与TBPRDHR寄存器运行,这种选择才有效,而且应当与CMPA寄存器常规装入选择相同。若选择TBPHSHR,那么该选项无效。

4)高分辨率B信号控制。ePWM通道的B信号通路可以产生一个高分辨率输出,该输出可以是交换A、B输出(高分辨率信号出现在ePWMxB而不是ePWMxA),或者在eP-WMxB引脚输出高分辨率ePWMxA信号的反相信号。

5)自动转换模式。该模式只与定标系数优化软件联合使用。对于类型1的HRPWM模块,如果使能自动转换模式,CMPAHR=取小数(PWM占空比∗PWM周期)<<8。定标系数优化软件通过背景代码计算定标系数MEP,并用每粗步的MEP计算步数自动更新HRM-STEP寄存器。MEP校准模块将使用寄存器HRMSTEP、CMPAHR的值,自动计算由小数占空比表示的合适的MEP步数,并按此移动高分辨率ePWM信号边沿。如果自动转换被禁止,CMPAHR寄存器就像一个类型0的HRPWM模块,且CMPAHR=(取小数(PWM占空比∗PWM周期)∗MEP定标系数+0.5)<<8)。此模式所有的这些计算需要由用户代码完成,并忽略HRMSTEP寄存器。高分辨率周期自动转换与高分辨率占空比的自动转换有相同的行为。对于高分辨率周期模式,自动转换必须总是使能。

(3)HRPWM运行原理

MEP逻辑能够在255(8位)个离散时间步之一设置边沿。MEP配合TBM、CCM寄存器,以保证应用最优的时间步而且在宽范围的PWM频率、系统时钟频率及其他运行条件下保持边沿设置精度。表7-11给出了HRPWM支持的运行频率的典型范围。

7-11 MEP、PWM频率与分辨率的关系

978-7-111-57271-8-Chapter07-179.jpg

对表7-11有以下说明。

●系统频率为SYSCLKOUT即CPU时钟。TBCLK=SYSCLKOUT。

●数据以180ps的MEP时间分辨率为基础,具体器件对MEP的限制需要查手册。

●本例MEP步为TSYSCLKOUT/180ps。

●PWM最小频率基于最大周期值,即TBPRD=65535。PWM模式为非对称增计数。

●对于最大PWM频率给出以位表示的分辨率。

1)边沿定位。在一个典型的功率控制循环中,例如,开关模式数字电机控制(DMC)、不间断电源(UPS)、数字控制器(PID,2极点/2零点,滞后/超前)等,通常以单位制或百分制发出一个占空比命令。假设在某一个运行点,要求的占空比为0.405或40.5%,需要的逆变器PWM频率为1.25MHz。在系统时钟为60MHz的常规PWM发生系统中,选择的占空比在40.5%附近。图7-6是占空比为40.5%需要的PWM波形图。图中,计数比较值19(即占空比39.6%)是可以获得的最接近40.5%的数值。这相当于316.7ns的边沿位置,而不是希望的324ns。数据如图7-31所示。

通过应用MEP,可以获得更接近324ns理想点的边沿位置。见表7-12,除了CMPA值外,MEP值44步(CMPAHR寄存器)将边沿定位在323.92ns,几乎为零误差。本例假定MEP具有180ps的步分辨率。

978-7-111-57271-8-Chapter07-180.jpg

图7-31 占空比为40.5%需要的PWM波形

7-12 CMPA与占空比[CMPA:CMPAHR]与占空比的关系

978-7-111-57271-8-Chapter07-181.jpg

表7-12中,采用的系统时钟SYSCLKOUT和TBCLK为60MHz,16.67ns。对于PWM周期寄存器的计数值48,PWM周期=48∗16.67ns=800ns,PWM频率=1/800ns=1.25MHz。假定MEP大小为180ps,具体器件的MEP典型与最大值可参照英文手册。

2)定标考虑。前面已说明了采用标准CMPA和MEP(CMPAHR)寄存器资源在时间上精密定位边沿的机制。然而在实际应用中,有必要无缝地提供从标幺(小数)占空比到最终的整数(非小数)表示的映射函数,该整数要写到[CMPA:CMPAHR]寄存器组合。下面只从标幺占空比的角度描述该映射。

为此,首先检查涉及的定标或映射步。控制软件通常用标幺值或百分值表示占空比。这样具有不需要关心最终的绝对占空比(以时钟计数或以ns表示的高分辨率时间表示)而完成所需的数学计算的优点。而且,也使得代码便于移植到运行于不同PWM频率的多种逆变器类型。

为实现映射方案,需要一个两步的定标过程。

下面以实例说明。

本例假定,系统时钟SYSCLKOUT=16.7ns(60MHz),PWM频率=1.25MHz(1/800ns),要求的PWM占空比PWMDuty=0.405(40.5%)。

以粗步表示的PWM周期PWMperiod(800ns/16.67ns)=48。

若MEP大小为180ps,每一个粗步的MEP步数(16.67ns/180ps)=93。

MEP_ScaleFactor=0.5(0.080h,Q8格式),保持1~255范围的CMPAHR和小数圆整常数(默认值)。在取小数(PWMDuty∗PWMperiod)∗MEP_ScaleFactor,得到数值的小数部分≥0.5时,该圆整常数将圆整CMPAHR值到1MEP步。

第1步:用于CMPA寄存器的百分比整数占空比值转换。

CMPA寄存器值=int(PWMDuty∗PWMperiod),int表示取整数部分

=int(0.405∗48)=19(13h)。

第2步:用于CMPAHR寄存器的百分比小数部分转换。

CMPAHR寄存器值=(frac(PWMDuty∗PWMperiod)∗MEP_ScaleFactor+0.5)<<8,frac表示取小数部分。

CMPAHR寄存器值=(frac(19.4)∗93+0.5<<8,数值移位到CMPAHR高字节

=((0.4∗93+0.5)<<8)=(37.2+0.5)<<8

=37.7∗256,左移8位相当于乘以256=9651=25B3h,硬件忽略低8位。

说明:

如果AUTOCONV位(HRCNFG.6)置1且MEP_ScaleFactor在HRMSTEP寄存器,那么CMPAHR寄存器值=取小数PWMDuty∗PWMperiod<<8。其他的转换运算由硬件自动完成,且正确的MEP定标信号边沿出现在ePWM通道输出。如果AUTOCONV位未置1,上述运算必须由软件完成。

MEP定标系数(MEP_ScaleFactor)随系统时钟与DSP运行条件变化。TI提供MEP定标系数优化(SFO)软件C函数,它采用HRPWM内建的诊断功能对于给定的运行点返回最佳的定标系数。定标系数在一定范围变化缓慢,这样优化(SFO)C函数可以在背景循环中缓慢运行。

CMPA和CMPAHR寄存器配置在存储器,这样28x CPU的32位数据能力可以作为一个联合数值即[CMPA:CMPAHR]写入。TBPRDM与TBPRDHRM(镜像)寄存器也相似地配置在存储器。

映射方案已经由C或汇编代码实现,本节中随后的实例由C或汇编代码实现了上述方案。实例代码采用了28x系列32位CPU的优点。对于时间要求严格(Tme critical)的控制环,建议采用汇编语言。它是一个采用Q15占空比值作为输入并写入单一[CMPA:CM⁃PAHR]值的周期优化函数(11个SYSCLKOUT周期)。

3)占空比范围限制。在高分辨率模式,MEP不在100%的PWM周期内有效,是可选的。

●当高分辨率周期(TBPRDHR)控制不使能周期开始后3个SYSCLK周期。

●当高分辨率周期(TBPRDHR)控制通过HRPCTL寄存器使能时:

对于增计数模式,周期开始后3个SYSCLK周期直到周期结束前的3个SYSCLK周期。

对于减计数模式,增计数时,CTR=0后3个周期直到CTR=PRD的3个周期,减计数时,CTR=PRD后的3个周期直到CTR=0前的3个周期。

占空比范围限制示于图7-32~图7-35。该限制在MEP上施加了占空比限制。例如,精密边沿控制并非是一直到0%的占空比都可用。当高分辨率控制禁止时,尽管头3个周期,HRPWM能力不可用,但是通常PWM占空比控制仍然是完全可以向下运行到0%的占空比。在大部分情况下,这不是问题,因为控制器的调节点通常不会设计到接近0%的占空比。为更好地理解可用的占空比范围,可以参见表7-13。当高分辨率周期控制使能时(HRPCTL[HRPE]=1),占空比不能落到受限范围,否则,在ePWMxA输出会有未定义的行为情况。

978-7-111-57271-8-Chapter07-182.jpg

图7-32 低占空比范围限制示例(HRPCTL[HRPE]=0)

7-13 3SYSCLK/TBCLK周期占空比范围限制

978-7-111-57271-8-Chapter07-183.jpg(www.daowen.com)

对于表7-13,系统时钟TBCLK=60MHz,系统时钟周期TSYSCLKOUT=16.67ns。只有高分辨率周期(TBPRDHR)控制使能时,才有周期最大占空比限制。

如果应用中需要HRPWM运行在低占空比区域,那么HRPWM可以配置在减计数模式,这时高分辨率周期禁止(HRPCTL[HRPE]=0),上升沿位置(REP)由MEP控制,如图7-33所示。这种情况下,低占空比限制不再是一个问题。然而,将会有一个具有同样百分比的最大占空比限制问题,见表7-13。

注意:当高分辨率周期控制使能时(HRPCTL[HRPE]=1),占空比不能落到受限范围,否则,在ePWMxA输出会有未定义的行为情况。

4)高分辨率周期。具有类型1的ePWM模块的器件支持通过TBPRDHR(M)寄存器支持采用MEP逻辑的高分辨率周期控制。

注意:当使能高分辨率周期控制时,ePWMxB输出在增计数模式具有±1个TBCLK周期抖动,而减计数模式具有±2个TBCLK周期抖动。

978-7-111-57271-8-Chapter07-184.jpg

图7-33 高占空比范围限制示例(HRPCTL[HRPE]=0)

978-7-111-57271-8-Chapter07-185.jpg

图7-34 增计数占空比范围限制示例(HRPCTL[HRPE]=1)

978-7-111-57271-8-Chapter07-186.jpg

图7-35 减计数占空比范围限制示例(HRPCTL[HRPE]=1)

上述对于占空比的定标过程也可用于高分辨率周期。

本例假定:

系统时钟SYSCLKOUT =16.67ns(60MHz)

要求的PWM频率 =175kHz(周期342.857)

每一个180ps粗步的MEP步数 =93(16.67ns/180ps)

(MEP_ScaleFactor)

在1~255范围内保持的TBPRDHR =0.5(0080hQ8格式)

值和小数圆整常数(默认值)

问题:

在增计数模式:

若TBPRD=342,那么PWM频率 =174.93kHz(周期=(342+1)∗TTBCLK)

TBPRD=341,那么PWM频率 =175.44kHz(周期=(341+1)∗TTBCLK)

在减计数模式:

若TBPRD=172,那么PWM频率=174.42kHz(周期=(172∗2)∗TTBCLK)

TBPRD=171,那么PWM频率=175.44kHz(周期=(171∗2)∗TTBCLK)

解决方案

每一个180ps粗步有93个MEP步:

第一步:TBPRD寄存器的百分比整数周期值

整数周期值 =342∗TTBCLK

=int(342.857)∗TTBCLK

=int(PWMperiod)∗TTBCLK

在增计数模式:

TBPRD寄存器值 =341(TBPRD=周期值-1)

=0155h

在减计数模式:

TBPRD寄存器值 =171(TBPRD=周期值/2)

=00ABh

第一步:TBPRD寄存器的百分比小数值

TBPRDHR寄存器值 =(frac(PWMperiod)∗MEP_ScaleFactor+0.5)

(移位TBPRDHR高字节)

如果使能自动转换且HRMSTEP=

MEP_ScaleFactor值(93) :=frac(PWMperiod)<<8

TBPRDHR寄存器值=frac(342.857)<<8

=0.857×256

=DB00h

自动转换将自动完成计算 =((TBPRDHR(15:0)>>8)×HRMSTEP+80h)>>8

这样TBPRDHRMEP延迟

由硬件定标:

=(00DBh×93+80h)>>8

=(500Fh)>>8

周期MEP延迟=0050hMEP步

对高分辨率周期进行如下配置。

为使用高分辨率周期,ePWMx模块应当按下述严格顺序初始化

①使能ePWMx时钟。

②禁止TBCLKSYNC。

③配置ePWMx寄存器AQ、TBPRD、CC等。

●ePWMx可以配置为增计数或减计数模式。高分辨率周期不兼容减计数模式。

●TBCLK必须等于SYSCLKOUT。

●TBPRD与CC寄存器必须配置影子装入。

●CMPCTL[LOADAMODE]。

●增计数模式:CMPCTL[LOADAMODE]=1(在CTR=PRD时装入)。

在减计数模式:CMPCTL[LOADAMODE]=2(在CTR=0或CTR=PRD时装入)。

④配置HRPWM寄存器:

●HRCNFG[HRLOAD]=2(在CTR=0或CTR=PRD时装入)。

●HRCNFG[AUTOCONV]=1(使能自动转换)。

●HRCNFG[EDGMODE]=3(双沿MEP控制)。

⑤对于TBPHS:TBPHSHR用高分辨率周期同步,设置HRPCTL[TBPSHRLOADE]=1和TBCTL[PHSEN]=1。在减计数模式不论TBPHSHR的内容,这两位都设为1。

⑥使能高分辨率周期控制(HRPCTL[HRPE]=1)。

⑦使能TBCLKSYNC。

⑧TBCTL[SWFSYNC]=1。

⑨由于自动使能自动转换,HRMSTEP必须包含一个精确的MEP定标系数(每一个SYSCLKOUT粗步的MEP步数)。MEP定标系数能通过SFO()函数获得。

⑩为控制高分辨率周期,写入TBPRDHR(M)寄存器。

注意:当使能高分辨率周期时,一个EPWMxSYNC脉冲会为PWM引入±1~2个周期的抖动(增计数模式下±1周期,减计数模式下±2周期)。因此,TBCTL[SYNCOSEL]不应设为1(CTR=0是EPWMxSYNCO的源)或2(CTR=CMPB是EPWMxSYNCO的源)。不然,抖动会随同步脉冲发生在每一个PWM周期。

当TBCTL[SYNCOSEL]=0(EPWMxSYNCI是EPWMxSYNCO的源),一个软件同步脉冲将在高分辨率周期初始化时只产生一次。在PWM运行时,如果施加一个软件同步脉冲,在有同步脉冲时PWM输出将会出现抖动。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈