TMS320x2833x的ePWM模块简要介绍

导读

TI的C2000系列的DSP的ePWM子模块功能很强大,但是模块挺多的,毕竟也不是每天都会用着的东西,所以在这里记录下大致内容,若已经生疏了那么可以帮助快速回想起来,回去看Technical Document也会更方便一些,如果可以帮助到一些初学的读者那就更好了。

一点看法

在这里先说一些个人的拙见。有关TI的DSP的书籍挺多的,但是个人感觉挺少写的好的(也有可能是我找的书籍的问题),有一些书籍明显是翻译过来的,而且给人感觉直接是机翻技术手册过来的,语句读起来都挺奇怪的。普中给的DSP资料感觉挺不错的,起码可以感觉得到作者确实将自己的一些理解写了进去,翻译也感觉是按自己理解翻译的,然后配置的步骤的也有详细的介绍,但是个人感觉ePWM模块那部分也还是有点不太清楚,其实感觉TI有关ePWM模块的介绍条理清楚明了,不如直接全按TI技术手册里面那样书写的结构来写,说不定会让人豁然开朗。而且有些地方还是有一些错误让人摸不着头脑来着(或许教学视频里面会进行纠正?)。比如207页的框图:
在这里插入图片描述
对比下官网的技术手册,如果是按照这个流程图是debug的话,应该是会debug半天都不知道哪里有问题了。
在这里插入图片描述
再比如237页的这个:
在这里插入图片描述
官网的技术手册是这样说的:所有PIE模块寄存器均可被访问 即使 PIE单元被禁止。
在这里插入图片描述
意思是不是不太一样呢?
这样的错误个人找到几处。所以总体给我的感觉是TI的中文相关的资料好像没有ST的那样丰富且撰写的清晰正确。
兜兜转转最后发现TI的技术手册才是最适合不断阅读的资料。所以在这里还是建议各位读者起码TI的技术手册总得备在旁边作为对照,万一中文书籍有哪些地方你觉得不太能理解回去看看技术手册可能也就清晰明了了。
TI的技术手册挺多的,如果你查看TI的官网的Technical Document部分,比如28335芯片配套的Technical Document,足足有67项呢!但是其实TI给了阅读建议了(在《TMS320x2833x, TMS320x2823x Technical Reference Manual》中的Preface中有提到): 《TMS320x2833x, TMS320x2823x Technical Reference Manual》 (介绍了TMS320x2833x, TMS320x2823x系列的所有相关硬件相关内容,包括时钟框架,所有子模块,如ePWM,洋洋洒洒868页甚为细致)+特定芯片的数据手册(比如28335数据手册,毕竟Technical Reference Manual是讲一个系列,各个芯片难免会有些不同)+ 《TMS320C28x CPU and Instruction Set Reference Guide》《 TMS320C28x Floating Point Unit and Instruction Set Reference Guide 》 (这两个的是因为里面有介绍一些指令,比如EINT是啥意思,在《TMS320C28x CPU and Instruction Set Reference Guide》中便可以查找得到)。按照TI的建议,备好这四个基本都可以满足应用要求了。

ePWM模块的简要介绍

在这里插入图片描述

TMS320x2833x的ePWM模块如上图所示,有七个模块:Time-Base submodule(时基子模块);Counter Compare submodule(比较子模块);Action Qualifier submodule(动作限定子模块);Dead Band submodule(死区子模块);PWM-chopper submodule(斩波子模块);Trip Zone submodule(错误联防子模块)(其实我觉得如果翻译成错误跳匝子模块会不会一眼就更能理解这个子模块是什么意思了);Event Trigger submodule(事件触发子模块),同时具有两路输出EPWMxA和EPWMxB。

时基子模块

在这里插入图片描述

时基子模块 对系统时钟信号进行分频得到ePWM的时钟信号,同时它也决定了输出的PWM波的频率,时基子模块中的计数器有三种计数模式:向上计数、向下计数、向上-向下计数模式。在技术手册中提供了PWM波形的计算公式(注意不是说这里面的波形是输出的PWM的波形,只是时基子模块中的计数器计数数值与时间之间关系的一种直观图像表示而已):
在这里插入图片描述
可以看出时基子模块输出了三个信号给AQ动作限定模块,分别为 CTR=PRD (时基子模块的计数器计数值=时基子模块周期寄存器值)时输出的一个信号;CTR=0(时基子模块的计数器计数值=0)时输出的一个信号;同时还输出 CTR_Dir 信号,即告诉AQ此时计数器的计数方向是向下还是向上(EPWMxSYNCI与EPWMxSYNCO用于各个ePWM模块进行同步,这里不再赘述)。

比较子模块

在这里插入图片描述

比较子模块 中有两个比较寄存器 CMPA与CMPB,用户可以分别设定这两个寄存器的值。比较寄存器用于输出两个信号给AQ动作限定模块,分别为 CTR=CMPA (时基子模块的计数器计数值=比较寄存器A的值)以及 CTR=CMPB (时基子模块的计数器计数值=比较寄存器B的值)(后面可以看到改变两个比较寄存器 CMPA与CMPB可以改变占空比,所以可以是比较寄存器控制了PWM的占空比)。

动作限定子模块

在这里插入图片描述

接下来就是 动作限定子模块 ,它利用上述提到的时基子模块和比较子模块提供的五个信号决定了PWM波形的最终生成。具体可以看使用技术手册中提供的一个图即可:
在这里插入图片描述
这个时候时基计数器的计数方式为先向上再向下计数方式。拿EPWMxA波形的产生为例,EPWMxA以低电平开始,时基计数器开始向上计数(动作限定子模块是通过时基子模块提供的 CTR_Dir 信号知道这个时候时基计数器是向上还是向下计数),当计数值等于比较寄存器A的值时 (图中记为CA),这个时候动作限定模块令EPWMxA开始变为高电平 ,接着计数器计数值达到最高峰时(即计数值=时基子模块中的周期寄存器中的值TBPRD,TBPRD的值由用户自己设定),开始变为向下计数,当计数值再一次等于比较寄存器A的值时,动作限定模块令EPWMxA变为高电平,依次往复就产生了具有一定频率、一定占空比的PWM波形。EPWMxB波形的产生也是一样的。TI的Technical Reference Manual中还有很多这样的例子可供参考,从248页图3.22到255页图3.27,不仅给出了图示还给出了配置代码,囊括了所有的经典配置方法。 读者自行查阅即可。
这里贴上TI提供的上述配置所需要的代码:

// Initialization Time
// = = = = = = = = = = = = = = = = = = = = = = = =
EPwm1Regs.TBPRD = 600; // Period = 2´600 TBCLK counts
EPwm1Regs.CMPA.half.CMPA = 400; // Compare A = 400 TBCLK counts
EPwm1Regs.CMPB = 500; // Compare B = 500 TBCLK counts
EPwm1Regs.TBPHS = 0; // Set Phase register to zero
EPwm1Regs.TBCTR = 0; // clear TB counter
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Symmetric
xEPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Phase loading disabled
xEPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // TBCLK = SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // load on CTR = Zero
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // load on CTR = Zero
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;
EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR;
//
// Run Time
// = = = = = = = = = = = = = = = = = = = = = = = =
EPwm1Regs.CMPA.half.CMPA = Duty1A; // adjust duty for output EPWM1A
EPwm1Regs.CMPB = Duty1B; // adjust duty for output EPWM1B

TI技术手册中那么多例子之所以拿出上面的例子来是因为如果仔细观察图像我们发现,通过上述纯软件的方式,我们已经配置出死区了。所以其实到这里想要的PWM已经可以生成了,甚至是死区的设置。 那么接下来的几个模块基本都是起到如虎添翼的作用。你可以使用也可以不使用这些子模块。

死区子模块

在这里插入图片描述

死区子模块,就是通过纯硬件的方式产生PWM的死区。TI给了一个图作为示意:
在这里插入图片描述
第一个波形为原始波形,即动作限定子模块输出的PWM波形,第二个波形即为上升沿延迟一段时间下降沿不变的PWM波形,第三个波形即为上升沿不变而下降沿延迟一段时间的PWM波形。如果将第三个波形进行反相,那么和第二个波形一起就可以构成第三组波形,这组波形为带死区的一组互补波形。通过其他设置也可以得到余下波形。具体操作技术手册中有很详细的讲解,读者查阅即可。

PWM斩波子模块

在这里插入图片描述

接下来的 PWM斩波子模块 ,它的功能可以用以下图形表示:
在这里插入图片描述
对比第一个波形和第四个波形,也就是说他可以对EPWMxA再进行进一步的斩波。因为还没有使用过该功能,笔者个人也不太了解,所以对于为什么要进行这一步操作,这里仅复制一些信息给大家有个概念,知道的笔者应该一看就知道咋回事了。数据手册中是这么说的:如果您需要基于脉冲变压器的栅极驱动器来控制电源开关元件,则此功能非常重要。

根据参考文献[1],基于脉冲变压器的栅极驱动器是这样的(该驱动电路相当于一种降压电路,所以我认为这是作者将其命名为BUCK变换器原理图的原因):
在这里插入图片描述
工作原理如下所示:
在这里插入图片描述
普中DSP资料中是这么说的:经斩波后, ePWMxA 的占用能量和平均电压均可以通过占空
比等设置进行调整, 对于一些功率器件而言, 可以降低开通期间的功耗。
博客[https://blog.csdn.net/xiao2005new/article/details/10484511]中是这么说的:当PWM的周期较长,用高频变压器作驱动器,就会达不到目的,并有可能烧坏器件。使用PC模块可以将PWM波经过“再调制”后的高频波作驱动就可以解决这个问题。

错误联防子模块

在这里插入图片描述

错误联防子模块有六个输入信号,可以用于在一些错误条件下,如短路或者过流,强制改变PWM输出状态:拉高PWM波形;拉低PWM波形;输出为高阻抗状态;不对PWM波形做任何更改(即不理会错误状态)。

事件触发模块

在这里插入图片描述

从模块框图可以看到它有五个输入信号,它的作用就是在这些输入信号到来时,可以配置为产生相应中断事件或者启动ADC模块。

到这里ePWM模块的所有部分已经简要介绍完毕了。具体配置、相关注意事项以及相关寄存器还是得在技术手册中进行查阅。

参考文献

[1] 林丘练,王英武,王俊峰. 脉冲变压器MOSFET栅极驱动电路分析与仿真[J]. 微电子学与计算机,2008,25(11):185-187.

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TMS320F2833x是德州仪器公司推出的一种数字信号处理器(DSP)。它的主要应用领域是控制系统、自动化、能源、医疗设备、消费电子等电子领域。TMS320F2833x DSP原理与应用教程PDF是一本详细介绍TMS320F2833x DSP的图书,主要包括以下内容: 第一章介绍TMS320F2833x DSP的基本概念、应用领域、特点和优势。 第二章介绍TMS320F2833x DSP的体系结构、寄存器、指令系统、存储器等方面的知识。 第三章介绍TMS320F2833x DSP的编程方式,包括汇编语言、C语言、DSP BIOS等编程方式。 第四章介绍TMS320F2833x DSP的数字信号处理技术,包括离散傅里叶变换、滤波器、FFT、IIR滤波器、自适应滤波器等方面的内容。 第五章介绍TMS320F2833x DSP的应用设计,以例子和实验为基础,详细介绍TMS320F2833x DSP在控制系统、自动化、能源、医疗设备、消费电子等应用领域的具体应用。 总之,TMS320F2833x DSP原理与应用教程PDF是一本非常实用且详细的图书,对于从事DSP开发的工程师、研究人员以及对TMS320F2833x DSP感兴趣的读者都具有较高的参考价值。 ### 回答2: TMS320F2833x DSP原理与应用教程是一本介绍数字信号处理器(TMS320F2833x DSP)的使用方法和应用案例的书籍。本书的目标读者主要是从事数字信号处理、控制系统开发、模拟电路设计等领域的工程师和研究人员。 此书首先介绍TMS320F2833x DSP的基本原理和架构,包括它的各种寄存器、指令集、存储器等。接着,本书以实例的方式详细介绍了如何使用TMS320F2833x DSP进行数字信号处理、电机控制、电力电子控制等应用。书中经过详细和实践性的介绍,可以帮助读者快速上手、深入了解TMS320F2833x DSP的应用。 此外,本书还介绍TMS320F2833x DSP开发工具和环境的搭建过程,包括代码编译、下载、调试等方面的知识。这些方面的介绍也使得读者可以更加深入地理解TMS320F2833x DSP的应用,从而更好地应用于实际工程中。 总之,TMS320F2833x DSP原理与应用教程是一本非常实用的技术书籍,不仅具备理论知识的深入阐述,更具备实际应用的经验总结,是掌握TMS320F2833x DSP开发的必备工具书之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值