F2833x介绍 - ePWM(4)

2020-05-12 08:16

数,产生递增、递减或者连续增减的“三角波”。加引号是因为,无论ePWM计数的分辨率多高,总是要受制于时钟频率的,因此实际的三角波是由一系列的台阶波形逼近得来的。载波的一个重要参数就是载波周期,关联到PWM上即PWM的开关频率(的倒数)。PWM的开关频率在ePWM实现时,由时基周期寄存器的值和ePWM模块的时钟周期共同决定。所以,在开关频率和时钟周期已知的情况下,需要的ePWM周期寄存器的值为:

非对称PWM波形(例如递增、递减)

周期寄存器的值=开关周期/时钟周期-1

对称PWM波形(例如连续增/减)

周期寄存器的值=开关周期/2倍时钟周期

可以看到在开关频率相同的情况下,对称PWM波形的周期寄存器的值是非对称PWM波形情况下的一半。这是因为在连续的增、减计数模式下,计数器的值递增计数到周期值后又会递减到0,所以只需要一半值。

在一些与电机控制有关的芯片发布会上,厂商在提到与PWM功能相关的特性时,往往有个指标叫“PWM分辨率”。初学者听到之后可能会一头雾水:PWM就是电平的高低切换,怎么会有个分辨率的指标呢?

从数字实现的角度来看,这个就不难理解了。上次提到PWM调制中的载波是由ePWM里的硬件电路产生的,但它不是纯粹的模拟电路(模拟、连续信号),而是由多个高分辨率的计数器来计数产生“三角波”的。PWM的分辨率,与A/D采样电路的分辨率是类似的概念,即一个信号是由多少位数字信号来逼近的。28335的ePWM的分辨率是10位的,这就意味着从0计数到计满16位的ePWM周期寄存器(65535),其分辨率是:

非对称PWM波形:10位的分辨率意味着一个信号由2^10=1024位来逼近65536个数,即计数器的最小分辨率是65536/1024=64个数。

对称PWM波形:分辨率只有非对称波形的一半,即9位,意味着由2^9=1512位来逼近65536个数,即计数器的最小分辨率是65536/512=128个数。

在理解PWM的基本方法,确定PWM的载波频率(周期值)之后,就可以根据需要的占空比来计算出ePWM比较寄存器中的值。在每个周期中,只有当三角波与比较器中的值匹配之后,才会产生相应的比较事件。非对称PWM和对称PWM波形的比较值的计算方法相同,都是:

ePWM比较寄存器器的值=(100%-占空比)*周期寄存器的值

举几个例子来说明ePWM调制中周期寄存器和比较寄存器值的计算。

1. 以对称载波的PWM波形为例。假设载波周期(PWM开关周期)为150kHz,占空比为25%,ePWM的时基频率为150MHz为例,并设定动作限定子模块中PWM的开关动作为软件强制高,则有:

周期寄存器的值TBPRD=ePWM时基频率fTBCLK /(2 * PWM载波频率fPWM)

=150MHz /(2 *150kHz)= 500

比较寄存器的值CMPA =(100% - 占空比)* TBPRD

=(100% - 25%)* 500 =375

如果需要很低的载波频率,例如1kHz的话,怎么办? 若此时ePWM的时基频率仍为150MHz,则有

TBPRD = 150MHz /(2 *1kHz)=75000

但是TBPRD是个16位的寄存器,用16位无符号的整数表示时最大只能表示到65535。这时就需要对ePWM时基频率进行处理,比如2分频,则表示1kHz只需要用到37500。 2. 以非对称载波的PWM波形为例。此时仍假设载波周期为150kHz,占空比为25%,ePWM的时基频率为150MHz,设定动作限定子模块中PWM的开关动作为软件强制高,则有:

TBPRD= fTBCLK / fPWM – 1 =150MHz / 150kHz – 1 = 999 CMPA =(100% - 占空比)*(TBPRD + 1)- 1

=(100% - 25%)* 5(999+1)- 1 =749

因为是从0开始计数,所以非对称载波的PWM在计算时实际计算出的值总要减去1才能得到正确的周期寄存器和比较寄存器的值,这里一定要注意。对比也可以看出,非对称载波的PWM需要的周期值和比较值是同等载波频率、时基频率和占空比情况下对称载波的接近2倍(2倍 - 1)。这样如果非对称载波PWM想同样输出一个1kHz甚至更低载波频率的情况下,就需要对ePWM的时钟频率进行更高次的分频才能正确赋值给周期寄存器。

在PWM波形的产生中,需要人为对脉冲加入死区时间。因为开关器件例如IGBT的开通和关断都不可能是立即完成的,而是因为寄生电容等原因,从关闭状态到开通状态需要一定的时间,从开通状态到关闭状态需要更长的时间(目前的技术是1微秒以上),即IGBT的拖尾效应。而逆变器的控制中,上下桥臂的开关器件一般是互补状态,在开关状态切换的时候,就存在一个管子还没有完全关闭,而另一个又在开通的过程中的情况,这样就造成直流母线的电压直接短路,在微秒级别的时间内就可以击穿开关器件,造成永久损坏。(当然,IGBT在短时间内(20微秒)可以承受几倍的过流,但这一般是在极端情况下测试时用的,且直流母线短路的话电流就不只是几倍的过流。)

死区的插入方式一般有2种:

一是单边死区,即在死区时间内,本来应该开通的开关管暂时不开通,等待需要关闭的开关管关闭的安全时间之后再开通,即被关闭的开关管状态不受影响,被开通的开关管将延时开通。

另一种是双边死区,即被关闭的开关管提前关断,被开通的开关管延时开通,这样显然更保险,当然死区越多,造成的实际输出波形与理想值的偏差越多,输出电流的畸变也会越大。在这种死区插入模式下,可以让开通和关断的死区时间一样,即对称的波形,也可以根据器件的特性,让提前关断的死区时间小于延时开通的死区时间,因为拖尾效应的影响,关断比开通要慢的多。

将死区时间插入到输出的脉冲中,在硬件实现上对计数器的精度和时钟频率上的要求都比较高。幸好在ePWM模块中,我们只需要写入死区寄存器的值和开关方式就可以,如图所示。

上面提到在PWM变换器中需要插入死区时间,是因为器件关闭时存在拖尾效应,关闭的时间往往大于开通的时间,而PWM变换器又一般采用上下桥臂互补的状态,所以要用死区来避免直通造成的短路。

插入死区的方法一般有两种,第一种是控制开关器件驱动电路中的门极电阻(或者改变门极电容等),如图所示。门极电阻和门极上的寄生电容相当于组成一个低通滤波电路,这样的话改变电阻就可以改变开通电路的时间常数,从而增加开关器件开通所用的时间,使得开通的时间大于关断时间,造成同样的死区效果。这种方法在设计门极驱动电路的时候就可以计算好,合适的话可以直接改变门极电阻。但是缺点也不少,一方面是要增加额外的旁路二极管,造成门极寄生电容和电感参数的改变;一方面是电阻的精度不高,且存在参数偏移等,另外电阻的值未必那么合适(如果选择固定规格电阻的话,无法做到可以选取任意值);另一方面是死区时间无法灵活改变。在早期PWM专用的驱动控制芯片较少的时候,这种方法还是有一定的应用场合的,而且那时候的开关频率因器件的限制也无法做很高,对门极驱动电路的计算参数不是特别敏感。

另一种方法则方便的多,就是直接改变脉冲的宽度,比如开通延时,关断正常的方法,就是直接对开通脉冲的上升沿(PWM正逻辑的情况下)进行延时,用触发器和计数器相配合很容易实现。

ePWM死区电路的原理框图如图所示。

上面提到的死区插入方法有两种;一种是插入电阻和旁路二极管,方法比较简单,但是参数无法灵活调整,另外因为电路参数漂移而造成参数的不精确。另一种则是直接对PWM脉冲进行处理,例如把开通的脉冲缩短需要的死区时间,这个时间经常叫做死区、死时或者“dead-band”等。2833x的ePWM模块的死区时间是在软件中可配置的,其硬件处理则是使用芯片的内部电路,因此死区时间的处理不需要占用CPU资源。

ePWM中与死区时间相关的寄存器有两个:

10位的上升沿延时寄存器:EPwmxRegs.DBRED 10位的下降沿延时寄存器:EPwmxRegs.DBFED 实际的死区时间为:

上升沿延时=TBCLK x DBRED 下降沿延时=TBCLK x DBFED

简化起见,给出常用的死区时间与寄存器的配置:

典型延时时间配置,SYSCLKOUT=150MHz


F2833x介绍 - ePWM(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:化学反应的表示方法教学设计反思

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: