【原创】TI C2833x介绍---HRPWM(3)
0赞上次提到了HRPW使用基于微边沿定位(micro edge positioner,MEP)的技术来提高输出的PWM分辨率。MEP技术将一个时钟周期分解为许多个更小的步长,叫“微步长”,它的典型值是150ps。在SYSCLKOUT=(60-150MHz)时,MEP的步长在150-310ps之间。MEP的详细特性在HRPWM的用户指南里是没有的,要到28335的datasheet里面去找。针对MEP的步长,器件手册中提到:
最大MEP步长基于最差情况过程、最大温度和最大电压。MEP步长将随着低电压和高温度而增加,随着电压和冷却温度而降低。使用HRPWM特性的应用应该使用MEP缩放因子优化器(SFO)近似软件函数。在最终应用中使用SFO函数的细节请见TI软件库。SFO函数有助于在HRPWM运行时动态地估计每个SYSCLKOUT周期内的MEP步数量。
MEP的原理可以从下图中分析得出:
图1 MEP的原理
图1中最上面、周期最大的波形为正常情况下需要输出的PWM脉冲,第二行波形为器件的时钟脉冲,第3行的竖线条则为每个器件时钟脉冲的下降沿(或者上升沿)。MEP的用武之地就在于,将每个下降沿(上升沿)之间的时间间隔,又分成了以MEP步长为间隔的校正逻辑,如下图所示:
图2 MEP校正逻辑
在图2中,我们就可以分析出普通PWM和HRPWM的区别了。
普通PWM的产生中,使用了一个相对稀疏(coarse)的步长,其个数为:
稀疏步长的个数=取整(PWM占空比*PWM周期值)
对应的16位的比较寄存器CMPA的值就等于稀疏步长的个数。
HRPWM的产生中,使用了MEP技术,其个数为:
MEP的个数=取小数部分(PWM占空比*PWM周期值)*MEP定标因子
这里的MEP定标因子为一个稀疏步长中MEP步长的个数。
对应的16位的比较寄存器CMPAHR的值为:
CMPAHR=( MEP的个数+1.5)<<8
这里左移8位是在以Q8格式进行转换的时候使用的。