paradoxfx

【原创】TI C2833x介绍---ePWM(25)

0
阅读(5918)

ePWM的事件触发子模块(event-triggerET,是ePWM里面负责产生各种“事件”的核心部分。这些事件的触发源,或者叫“导火索”,都是由计数器和比较单元来一起产生的,为了简化说明,用下面一个图例来说明:

 

这些触发源无非就是计数器下溢计数到0,计数值=周期值(也叫计数值和周期值匹配),计数值增(U)或者减(D)计数等于比较寄存器的值等等。至于可以由它们触发所产生的事件,则可以在ET的事件触发子模块EPwmxRegs.ETSEL各个位的含义中比较容易地观察出:

ETSEL1511位是SOC使能位,前面的A/D模块中也提到过,即由计数器和比较器产生的触发事件来启动A/D模块的采样与转换工作SOC。位写1是使能,写0自然是禁止。

既然SOC可以由ePWM的多个事件源来触发,那自然就需要给我们一个方法来选择具体使用那个事件源来触发。位14-12和位10-8就是用来选择的,其含义是:

000 = reserved   001 = CTR = 0   010 = CTR = PRD

011 = reserved   100 = CTRU = CMPA   101 = CTRD = CMPA

110 = CTRU = CMPB   111 = CTRD = CMPB

7-4是保留位,目前用不到。

3是用来使能或者禁止EPWMx_INT中断的,位写1是使能,写0是禁止。位2-0则按照同样的道理,用来选择触发EPWMx_INT中断的事件,其选择的事件源与位14-12和位10-8的相同,就不再重复了。根据对各个ePWM的使用情况,可以配置使能多个EPWMx_INT中断。当然,对于三相逆变器这种场合,至少有6ePWM管脚是工作在同一个三角波下的,这时候只需要配置一个EPWMx_INT定时中断就可以完成PWM产生和相关的控制算法了。