paradoxfx

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

0
阅读(5192)

每路ePWM的比较功能子模块在控制上相对而言比较容易,包含了两个存储比较值的寄存器即EPwmxRegs.CMPA和EPwmxRegs.CMPB,CMPx寄存器中的值始终与时间基准计数器TBCTR中的值做比较,当两者相等时,比较功能子模块将产生一次“TBCTR=CMPB”事件,并输送到功能限定子模块AQ中,从而产生相应的动作。另外有一个包含位控制的控制寄存器EPwmxRegs.CMPCTL.all,其各位的定义为:

15~10: 目前用作保留位

9: SHDWBFULL,即CMPB映射寄存器满状态标志位

       0CMPB映射寄存器未满

       1CMPB映射寄存器满,此时CPU的写操作将会覆盖原来的值

8: SHDWAFULL    CMPA映射寄存器满状态标志位

       0CMPA映射寄存器未满

       1CMPA映射寄存器满,此时CPU的写操作将会覆盖原来的值

7: 目前用作保留位

6: SHDWBMODE  CMPB寄存器工作模式选择

       0:使用映射模式,读写操作将直接作用于CMPB映射寄存器

       1:使用立即模式,读写操作将直接作用于CMPB当前寄存器

5: 目前用作保留位

4: SHDWAMODE  CMPA寄存器工作模式选择

       0:使用映射模式,读写操作将直接作用于CMPA映射寄存器

       1:使用立即模式,读写操作将直接作用于CMPA当前寄存器

3~2: LOADBMODE      决定CMPB映射寄存器何时向当前寄存器装载数据

       00:在TBCTR=0时装载

       01:在TBCTR=TBPRD时装载

       10:既在TBCTR=0时装载,也在TBCTR=TBPRD时装载

       11:禁止装载

1~0: LOADAMODE,决定CMPA映射寄存器何时向当前寄存器装载数据CMPACMPB寄存器都有相应的映射单元,分别通过CMPCTL[SHDWAMODE]位及CMPCTL[SHDWBMODE]位控制,上次已经提到。通过对相应的控制位清零可以使能比较寄存器的映射单元,默认情况下映射寄存器是使能的。