打印

关于TI TMS320F28335的EPWM如何采用软件强制开关状态

[复制链接]
519|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Roses|  楼主 | 2017-10-18 10:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于TI TMS320F28335的EPWM如何采用软件强制开关状态


DSP用于电机控制的应用中,有时需要用到强制脉宽调制(PWM)的脉冲开关状态这种操作,比如封锁脉冲以停止电力电子开关管工作;在上电的初始时刻,经常也需要对PWM状态进行一种强制的初始化,比如强制高、强制低等等;一些特殊的PWM算法,如果不是基于三角载波比较法的,如一些SHEPWM、滞环PWM方法等等,也需要直接输出PWM脉冲的状态,此时不能使用比较值与定时器的直接比较来得到开关状态,而且在需要的开关状态已知情况下,直接强制PWM状态,即可得到需要PWM脉冲。  y( N. h; n; @$ d4 B% y

在基于事件管理器(EV)的TI C2000 DSP中,如TMS320LF2407A、F2810、2812中,强制脉冲状态是一件很简单的事情,直接写ACTRx寄存器就可以了,比如:* c9 H: ?; a8 c+ b
  a' F- L, M' u/ Y
EvaRegs.ACTRA.all=0xfff;5 A% {5 Z  {7 R' Z

这样的语句就能强制EVA对应的6个PWM管脚全部为高电平,等于0则可以全部强制低电平,需要强制特定管脚的值只需要修改对应的位即可。( r" n0 K& R9 F0 E
0 R3 i7 t: M+ O% |$ Q7 s
在基于改进的PWM模块的C2000 DSP中,如2833x系列,都使用了新型的增强型PWM模块(EPWM),其每个PWM管脚都可以有单独的配置,这样就造成了PWM配置的复杂性增加了。在网上找了好久,都没有找到如何强制脉冲状态。本来想,换了个新片子,大不了照葫芦画瓢配置一番就行了,于是拿过EPWM的手册,照着AQSFRC寄存器配置了半天,却总是没反应。看名字,AQSFRC是Action-Qualifier Software Force Register,应该是可以force它听话的啊!代码4 \( s/ T; E8 u; I( [3 C7 ~; U
+ m; ]# u6 n3 h6 T) O
EPwm3Regs.AQCSFRC.bit.CSFA = 1;       /* Forcing a continuous Low on output A of EPWM3           */\
EPwm3Regs.AQCSFRC.bit.CSFB = 1;                       /* Forcing a continuous Low on output B of EPWM3           */\) v* a) K6 |8 K" O3 s# ~5 M
! n/ l1 d& O- l
这样子的根本不产生任何效果。. {0 H0 `$ b3 h4 k5 x

后来才发现是研究不深啊,原来真正需要配置的是AQCSFRC:9 [9 k) Z3 y: c5 v& }  D9 `  Z

EPwm1Regs.AQSFRC.all=0xc0;
( g+ S* G' i. B& i& C: R
EPwm1Regs.AQCSFRC.all=state;

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

709

主题

1023

帖子

7

粉丝