总览
由下图可以看到,TB子模块可以接受DC子模块的信号输入,然后输出给CC/AQ子模块和其他外设。
逻辑功能框图
下图是TB模块内部的框图。可以看到:
1)对系统时钟分频后得到tbclk,用于计数
2)由各种事件通过选择,用于生成EPWMxSYNCPER / EPWMxSYNCO同步事件
3)TBCTR可以初值为0,也可以设置为TBPHS相位值。counter可以向上/向下/上下计数,计数到TBPRD。
波形
以下图上下计数模式来看,TB模块会产生CTR=PRD CTR=ZERO事件,还有CTR_DIR方向信号。在相位加载时,计数方向是可设置的。
全局加载和一次性加载
TB模块中还包含了全局加载和一次性加载,是在需要更改周期/占空比/相位时使用,以及需要多路epwm同时加载不同值时使用。使用时需要小心设置。
寄存器
TBCTL寄存器中常用的有:
CTRMODE: 向上/向下/上下计数
PRDLD:周期影子寄存器加载或直接加载
PHSEN, PHSDIR:使能相位,相位同步后向上或向下计数
SYNCOSEL:同步信号输出选择
TBCTL2中常用的有OHTSYNC和OSHTSYNCMODE,用于一次性加载时设置。
TBCTR就是TB COUNTER。
TBSTS中常用的有CTRDIR,标志着此时向上或向下计数。
TBPRD TBPRDHR TBPHS寄存器分别用于设置周期和相位。
下面的全局加载控制和配置寄存器。
GLDCTL中常用的是bit0-5,用于控制全局加载和一次性加载。
参考文档:
TMS320F28004x Real-Time Microcontrollers Technical Reference Manual (Rev. G)
提问:
TB模块为什么要有向上/向下/上下 三种计数模式呢?向上模式一种不就够用了嘛?
拟回答:的确向上模式是可以实现全部功能的。在低谐波失真拓扑环境中一般要求用上下模式。三种不同模式能够提供多种选择,使得在一些场景下节省软件动作。