+初识6748ePWM
时间:10-02
整理:3721RD
点击:
TI的2000系类控制控制型的DSP芯片具有EPWM模块,比如2808、2812等最常用的几款2000系列芯片都有此模块,然而只有TMS320F28335在2000系列里是浮点运算的,也是2000系列最高级的吧。然后我就想着和和TMS320C6748的ePWM模块有什么不同,查阅一下资料,用28335和6748对比学习。
有效的PWM外设必须能够在极低限度的CPU开销或干预下产生复杂的脉冲宽度波形。它需要具备高度 的可编程性和灵活性,同时要容易被理解和使用。ePWM模块的一个完整PWM通道由两个PWM输出组成,即EPWMxA和EPWMxB,每个ePWM模块都具有以下特性(这个应该是TI定义的此模块是通用的,28335资料介绍也是这样的):
每个ePWM模块包括七个子模块:时基模块(TB),计数比较模块模块(CC),动作模块(AQ),死区产生模块(DB),PWM斩波模块(PC),事件触发模块(ET),错误联防模块(TZ)。(28335一共有18个单路PWM,其中包括6组12EPWMA个和6个EPWMA,6748的现在还没有找到,不知道是否一样。)
ePWM 模块使用的主要信号有:1.PWM输出信号(EPWMxA和EPWMxB)。通过在设备的系统控制和中断指南中讲述的GPIO外设,可以使得PWM输出信号在器件外部可用。2.故障区信(TZ1-TZn)[上边应该加个横杠的,表示低电平有效,不知道在这怎么编辑出来],这些输入信号警报ePWM模块有外部故障发生。设备的每个模块可以配置 为使用或忽略任何故障区信号。故障区信号通过GPIO外设配置为异步输入。查看器件数据手册以确 定器件中有多少个故障引脚可用。3.时基同步输入(EPWMxSYNCI)和输出(EPWMxSYNCO)信号。同步信号把各个 ePWM 模块连在 一起。每个模块可以配置为使用或忽略同步输入。时钟同步输入和输出信号仅对ePWM1模块时连接 到管脚。ePWM1同步输出(EPWM1SYNCO)信号也连接到第一个增强型捕获模块(eCAP1)的SYNCI。4.外设总线,外设总线为32位宽,它允许以16位和32位方式写入到ePWM寄存器文件。 单个ePWM模块的子模块和信号的连接:
相对于之前TI的芯片里,在6748里增加了一个高精度PWM(HRPWM),它使能扩展的时间精度,配置更细的时间间隔控制和边沿定位,这个是目前我发现的6748与28335PWM模块最大的区别之处了。
当ePWM外设时钟使能后,因ePWM寄存器没有被正确的初始化而引发的虚假事件有可能会导致中 断标志被置位,6748的ePWM模块正确初始化步骤:
1.屏蔽全局中断(CPUINTMflag)
2.屏蔽ePWM中断
3.初始化外设寄存器
4.清除所有虚假ePWM标志
5.使能ePWM中断
6.使能全局中断
EPWM模块中需要配置的有以下几个模块:
1.TB决定PWM周期(频率),一定要进行配置。主要还是计数方式、周期寄存器、时钟源的分频设置、相位使能等。
2.CC决定了PWM的占空比,一定要配置,主要是配置比较寄存器的比较值,另外需要配置映射还是立即映射。
3.AQ决定了PWM的波形,一定需要配置,主要是PWMA/PWMB的记性或者软件强制等。
4.DB觉得PWM工作 在两个PWMA/PWMB,还是工作在对称互补PWMA/PWMB,而且还可以在边沿加人适当的死区时间,所以也一定需要配置。
5.PC/TZ/ET根据实际需要进行配置。
小结:对EPWM模块的大致介绍基本就这些了吧,手册资料写的很详细,EPWM模块就有一百多页,这个该一遍一遍的细看才能深入学习。创龙6748资料不亏是国内最全的DSP资料,不仅例程多,而且工程师们很很辛苦的把DATASHEET翻译为中文让用户方便查阅,很让人感动,向创龙的工程师们致敬!
有什么不对的地方,还请各位高人指教,谢谢!