【原创】TI C2833x介绍---HRPWM(8)
0赞通过前面的图示和说明,我们已经知道了通过修改CMPA和CMPAHR寄存器的值进行配合,可以尽可能地保证输出PWM波形的精度。图示可能造成一种误区,就是先产生了传统的PWM波形,然后进行MEP修正才产生了HRPWM波形;实际情况是没有这种延迟的,而且为了快速处理,需要我们建立一种映射关系,使得CPU可以把标么值形式(小数值)的占空比映射为最终通过一次寻址就写入32位[CMPA:CMPAHR]的寄存器组合(8位CMPA+8位保留位+16位CMPAHR)。为了完成这种映射,首先来一步步地探究MEP的处理过程。
在软件编程中,为了在不同功率等级的设备间进行移植,例如两个不同功率等级的变频器,控制算法一样,但是额定电流、转矩不同,PWM开关频率不同;又或者具体的、实际数值的单位不同,例如电机转子的位置,表示单位可能是rad/s、圈数、脉冲数甚至是m、cm等;比较好的处理方法是使用标么值或者百分数进行数据的表示,这样我们只要关系所处理的数值相对于基值的比例就行了。在MEP的处理过程中,因为PWM的开关频率、系统的时钟频率都有可能变化,所以最好最省事的办法是也对它们采用归一化处理。这个过程共分两步,我们所使用的例子的参数如下:
系统时钟,即SysClockOut=10ns (100MHz)
PWM开关频率=1.25MHz(1/800ns)
需要的PWM占空比设为0.405(40.5%)
产生传统PWM需要的系统时钟周期数=800ns/10ns=80
180ps分辨率MEP情况下,每个系统时钟周期可以调整的MEP个数=10ns/180ps=55(55.5555555……)
产生传统的PWM脉冲需要的比较寄存器的值为0.405*80=32.4
因为CMPA寄存器的值只能为整数,所以余下的0.4个系统时钟周期宽度的PWM占空比就是MEP的用武之地了。具体的调整步骤下次再说。