TB模块大概要做的事情:
指定ePWM时基计数器(TBCTR)频率或周期,以控制事件发生的频率。
•管理与其他ePWM模块的时基同步。
•与其他ePWM模块保持相位关系。
•将时基计数器设置为向上计数、向下计数或向上计数和向下计数模式。
•生成以下事件:–CTR=PRD:等于指定周期的时基计数器(TBCTR=TBPRD)。
–CTR=零:等于零的时基计数器(TBCTR=0x00)。
•配置时基时钟的速率;ePWM时钟的预定标度版本(EPWMCLK)。这允许时基计数器以较慢的速率递增/递减
配置TB模块需要注意的点:
如果应用程序代码要求在TBCTR计数时通过软件更新TBCTR值,请注意,时基模块至少需要1个TBCLK周期才能实现时基相关事件。因此,对于要实现的事件,可以用TBCTR=PRD-1而不是TBCTR=PRD来写入TBCTR(在计数器向上计数的情况下),并且可以用TBCTR=1而不是TBCTR=0来写入TBCTR(在计数器向下计数的情况下)
//经典老图,很多书上都有这个配置图
EPWMxSYNCI | 时基同步输入。 用于使时基计数器与同步链中较早的ePWM模块的计数器同步的输入脉冲。ePWM外围设备可以被配置为使用或忽略该信号。对于每个同步链中的第一个ePWM模块,该信号可以来自使用输入X-BAR的INPUT5或INPUT6的设备引脚,也可以来自以前的ePWM模块。对于每个链中的后续ePWM模块,该信号从另一个ePWM外围设备传递。例如,EPWM2SYNCI由ePWM1外围设备生成,EPWM3SYNCI由ePWM2生成等等。有关特定设备同步顺序的信息,请参阅第18.4.3.3节 |
EPWMxSYNCO | 时基同步输出。 该输出脉冲用于稍后在同步链中同步ePWM模块的计数器。ePWM模块从三个事件源之一生成此信号: 1。EPWMxSYNCI(同步输入脉冲) 2。CTR=零:时基计数器等于零(TBCTR=0x00)。 3.CTR=CMPB:等于计数器比较B(TBCTR=CMPB)寄存器的时基计数器。 |
EPWMxSYNCPER | 时基外设同步输出。 该输出信号用于将GPDAC和CMPSS同步到EPWM。可以使用HRPCTL寄存器来配置输出信号。注意,该信号与HRPWM没有关系。 |
CTR = PRD | 等于指定周期的时基计数器。 每当计数器值等于有效周期寄存器值时,就会产生该信号。此时TBCTR=TBPRD |
CTR = Zero | 时基计数器等于零每当计数器值为零时,就会产生此信号。也就是说,TBCTR等于0x00。 |
CTR = CMPB |