daily怎么读-grades
28335 ePWM模块中产生PWM的必要配置
1
一个ePWM
module包括Time-base (TB) module,Counter-compare (CC)
module,
Action-qualifier (AQ) module,Dead-band
(DB) module,PWM-chopper (PC) module,
Event-
trigger (ET) module,Trip-zone (TZ) module等七个模块。正常的
发出PWM波要配
置TB(定时器模块)、CC(比较计数器模块)、AQ(比较方式预设模块)、DB
(死区模
块)、ET(事件触发模块)等五个模块。
2
Time-base (TB) module
Time-base (TB) module为定时器模块,有
TBCTL(控制寄存器)配置定时器的时钟、计数模式、同步模式
TBSTS(状态寄存器)
TBPHSHR(高速PWM用)
TBPHS(相位寄
存器)计数器的起始计数位置,例如寄存器为0x0100则计数器从
0x0100开始计数
TBCTR(计数器)
TBPRD(周期寄存器)设置计数器的计数周期。只有TBPRD(
周期寄存器)有影子寄
存器。
本程序的设置为count-up-and-down
mode计数模式,相位为零,ePWM2 、ePWM3、
ePWM4、 ePWM5、
ePWM6,通过ePWM1的计数器到零时进行同步,计数周期为0.5ms。
3
Counter-compare (CC) module
Counter-compare (CC)
module为比较器模块有
CMPCTL (比较控制寄存器)设置CMPA、CMPB的重载模式
CMPAHR(高速PWM用),
CMPA(比较值寄存器A)设置EPWMxA的比较值,有影子寄存器。
CMPB(比较值寄存器B)设置EPWMxB的比较值,有影子寄存器。
本程序只应用了CMPA,设置计数器到零时重载CMPA。
4
Action-qualifier (AQ) module
Action-qualifier (AQ) module比较方式预设模块
AQCTLA (输出A比较方式控制寄存器)设置EPWMA的比较方式有CBD、CBU、
CAD、CAU、PRD、ZRO,无影子寄存器,立即装载
AQCTLB (输出B比较方式控制寄
存器)设置EPWMB的比较方式有CBD、CBU、
CAD、CAU、PRD、ZRO,无影子寄存器
,立即装载
AQSFRC (软件强制控制寄存器)设置AQCSFRC重载方式(RLDCSF),
通过
(OTSFB、ACTSFB)设置EPWMB、(OTSFA、ACTSFA)设置EPWMA启
动一次强制
置位无效、置零、置高、反向,当OTSFB、OTSFA被写1时,动作一次,写0无效,
无
影子寄存器
AQCSFRC (软件连续强制控制寄存器)可以强制EPWMA、EPWM
B的输出为low
或high或AQCSFRC不起作用,有影子寄存器,当寄存期被加载后的第二个时
钟开始作用,
如TBCLK=0时加载,TBCLK=1时开始起作用
说明:
CB
D为TBCTR(计数器)与CMPB在down计数时相等使输出为low或high或反向
或不动作
CBU为TBCTR(计数器)与CMPB在up计数时相等使输出为low或high或反向或
5
不动作
CAD为TBCTR(计数器)与CMPA在dow
n计数时相等使输出为low或high或反向
或不动作
CAU为TBCTR(计数器)与C
MPA在up计数时相等使输出为low或high或反向或
不动作
PRD为TBCTR(计
数器)与TBPRD(周期寄存器)相等时使输出为low或high或反
向或不动作
ZRO为TBCTR(计数器)计到零时使输出为low或high或反向或不动作
注意:以
上均是相等时起作用,其它时间不管,只有AQCSFRC(软件连续强制控制
寄存器)持续起作用
如同时出现比较则优先级如图
例:CMPA=100,CMPB=100,up计数,EPW
MA初始为低,CAU设置高,CBU设
置低,当TBCTR计到100时,CAU、CBU同时作用,
根据优先级,EPWMA输出低。
当CMPA=100,CMPB=110,其它不变,当TBCTR
计到100时,EPWMA输出高,
计到110时EPWMA输出低。
本程序只应用了EPWMA输出通过Dead-band (DB)
module产生互补的PWM波形。
6
Action-
qualifier (AQ) module比较方式预设模块配置如下:AQCTLA
(输出A比较方式控
制寄存器)的CAU置高,CAD置低,其它无效。在初始化中配置。
AQCSFRC (软件连续强制控制寄存器)通过AQSFRC(软件强制控制寄存器)的
R
LDCSF配置为TBCTR(计数器)计到零时装载,根据需要每次中断配置CSFA置高、置
低或软
件连续强制无效。其优先级最高,强制时CAU置高,CAD置低不起作用,无效时
CAU置高,CAD
置低起作用。
AQSFRC(软件强制控制寄存器)的ACTSFA配置为置低,当本周期软件连续强
制无
效时,向OTSFA写1,保证有效高周期的起始是低状态,防止上一周期结束时为高。
7
Dead-band (DB)
module
Dead-band (DB) module
死区模块
DBCTL(死区控制寄存器)设置S5,S4,S3,S2,S1,S0开关选择的
DBRED(死区上升沿延时)上升沿延时时间
DBFED(死区下降沿延时)下降沿延时时间
本程序的设置为S5=0,S4=0,S3=
1,S2=0,S1=1,S0=1;延时时间为5us。EPWMxA=
EPWMxA
in,EPWMxB为EPWMxA in的反向。
8
Event-trigger (ET) module
Event-trigger (ET) module中断事件模块
ETSEL
(中断选择寄存器)使能及事件源选择(SOCA触发ADC转换,SOCB触发
ADC转换,中断)
ETPS(中断预设寄存器)xxxCNT记录时间发生次数,当与xxxPRD相等时,发出中
断信号,xxxCNT停止计数,当标志为清除时xxxCNT置零重新计数
ETFLG(中断标志寄存器)状态标志位,中断时为1
ETCLR(中断标志清除寄存器)写1清除相应标志位
ETFRC(强制中断寄存器)写1强制相应中断发生
本程序选择SOCA触发ADC转换,TBCTR=0位中断事件源,xxxPRD为1。
TMS320F280X系列DSP的EPWM讨论
我们大家知道.2812,2407等系
列的模
块等能产生丰富的PWM波型.但是要作为一个
系列的话.我还是推荐大检查使用280
X系列.
一个主要原因是它们的引脚可以完全共用.这
就为我们研发从低到高的产品提供了一个
通用
平台.2809好象百元左右吧.2808是80RMB.小
袖珍的热门DSP28016
可能也就超不过30RMB.
那可是32位60M主频的带全基本上的接口.我
觉的280X系
列从价位和封装上为我们提供了
灵活的选择余地.
- 9 -
但是现在280X的资料好象很少.看了一下他们
的EPWM模块有
些没弄明白.比如为使所有EPWM
在一个同步时基上工作.他们的EPWMXSYNCI和
E
PWMXSYNCO是不是要级联起来.但是好象没看
见EPWM1-EPWM6有外接这么多同步时钟
接口
啊.是不是在软件里Writing a 1 to the
TBCTL[SWFSYNC] control bit invokes a
software forced synchronization. This
pulse is ORed with the synchronization
input signal, and therefore has the same
effect as a pulse on
EPWMxSYNCI.就不用管外
设的同步始终接口
EPWMSYNCI和EPWMSYNCO啊.其实多半做PWM控
制的都希
望能用硬件产生有固定时基的时钟信
号啊.再就是有没有类似2407和2812等的影子
寄存
器(同步缓存寄存器).在定时周期中断中
不用担心会在不恰当的时候改变了比较和周期
寄存器
的内容.他们只会在当前执行了前一控
制内容后再执行改变的寄存器内容.避免了时
空错乱啊.
280X有没有类似的设置啊?
TOP
61IC代码工厂*永久免费*所有代码都
通过官方审核,保证代码的完整性.
ikki9899
2
#
大 中 小 发表于 2009-8-9
08:44 只看该作者
This feature enables the
ePWM module to be
automatically synchronized
to the time
新手上路
?
?
base of another
ePWM module. Lead or lag
phase control can
be added to the waveforms
generated by
different ePWM
modules to
synchronize them. In
up-down-count mode, the
TBCTL[PSHDIR] bit
- 10 -
发短消息
加为好友
?
当前离线
configures the
direction of
the time-base counter immediately
after a
synchronization event. The new
direction
is independent of the
direction
prior to the synchronization
event. The TBPHS
bit is ignored in
count-up or count-down
modes.
See Figure 2-7 through Figure 2-10 for
examples.
Clearing the TBCTL[PHSEN]
bit configures
the ePWM to ignore the
synchronization
input pulse. The
synchronization pulse can still be
allowed
to flow-through to the EPWMxSYNCO
and be used
to
synchronize other ePWM modules. In this
way, you can set up a master time-base (for
example, ePWM1)
and downstream modules
(ePWM2 - ePWMx) may
elect to run in
synchronization with the
master. See
the
Application to Power Topologies
Chapter 3 for
more details on
synchronization strategies.
以上是很关键的一段话.大概意思是如果你选
择EPWM1模块的时基,你就可以使
能下游的其
余EPWMX模块和EPWM1有共同的时基.用这些
EPWM可以组成灵活的相位
关系.但是万变不
离其踪.他们有一个共同的时基.所有的相位
和周期都是相对这个时基的增减
关系啊.我们
也不用担心动态改变比较和周期寄存器的内
容会对占空比产生不确定的影响.TI
的工程
师早为我们设计好了同步缓存寄存器的内容.
类似于2812和2407的影子寄存器.
只有在下
- 11 -
一个比较周期里才可以改变占空比的.这个
设
计非常有用的.再就是刘和平老师翻译的影子
寄存器我感觉有些怪异.还是叫同步缓存寄存<
br>器好理解些啊.
cccdv
TOP
3
#
大 中 小 发表于 2009-8-9 08:45 只看该作者
有啊,呵呵,感觉2812和28016不是一个应用场合的东西。2812主要是有
地址和数据总线可以带一大堆东西,flashram,显示器,等等。只要加几
新手上路
个片选信号做一个地址扩展,跟访问内部地址差不多。28016就是做电机控
?
制器用用了,顶多接片LCD,再I2C或spi加个eeprom,不会再有其他东西
发短<
br>了。这种场合,不可能用2812这么贵的芯片了。不过感觉这种场合用28016
还是有点没意
思,100个脚,封装太大了。实际用的又不可能这么多。还有,
消息
?
加为其中AD有16个脚,一般项多用2,3个,电源加上地又有10多个脚,能做
IO口的只有30多
个。管脚利用率太低了。
要不是以前用的有点习惯了,宁可选freescale的dsp
好友
?
当前
离线
shlplato
TOP
4
#
大 中 小 发表于 2009-8-9
08:47 只看该作者
内部是级连的,只需要软件设置一下采用什么同步,比如zero,pr
d等..28016
新手上路
去ti里面找spru791D吧(如果没有记错的话),pwm同步是可以设置的,他们
?
发短
是60m的主频,带can通信,大量应用于低成本的数字电源,2801的
16路ad
口,我觉得一点也不多,总而言之,资源的多少取决于你的期望的设计目标,
需要达
到什么性能.能用28016的绝对不用2801.
消息
?
加为
当前
好友
?
离线
- 12 -
如何用ePWM模块实现0%~100%占空比
控制
上网时间:2007年
11月01日
所属类别:
电源管理
I
电源管理
I
技术方案
I
技术方案
I
技术方案
关键字:
占空比 ePWM PWM 满量程
在某些应用中让占空比控制
达到满量程0%~100%是非常重要的。TMS320x280x系列处理
器使用灵活、配置丰富,是
在整个范围内实现满量程占空比控制的最佳选择。
增强型脉宽调制(ePWM)模块在保证系统开销
最小的前提下可提供0%~100%占空比。这些
模块有三种工作模式:加法计数模式、可逆计数模式和
减法计数模式,本文重点讨论前两种
工作模式。这里对TMS320x280xx28xxx
ePWM的基本使用不做详细介绍,并假设用户已
熟悉TMS320x280xx28xxx
ePWM(SPRU791)的使用。
PWM模块配置
ePWM模块包括以下几个子模块:时基(TB)子模块、计数器-比较器(CC)子模块、动作限定<
br>(AQ)子模块、?死区(DB)发生器子模块、PWM斩波器(PC)子模块、故障断路器(Trip
Zone)
子模块、事件触发器(ET)子模块。图1为PWM模块结构框图。
- 13 -
图
1
:
PWM
模块结构框图。
配
置ePWM模块时需要对上述子模块中的寄存器进行初始化。必须正确配置控制寄存器,
以便ePWM模
块能工作在上述三种模式的任意一种模式中。
在无需0%或100%的占空比的情况下,配置和使用
ePWM模块比较简单,按照TMS320x
280xx28xxx ePWM参考指南给出的程序就可
实现ePWM模块的配置。但0%和或100%
占空比的应用则属于特殊情况,需要按照附加的程序配置
ePWM模块。附加程序在本文的
网络版本中给出。
占空比的满量程调节
通过
执行附加的软件实现满量程的占空比调节,该软件可以跟踪当前占空比值和下一个占空
比值,并充分利用
动作限定子模块所具有的灵活的配置性能。该附加程序代码位于PWM中
断服务例程(ISR)中,如果
要改变下一个周期寄存器的数值,可以在当前ISR中进行设置。
下文描述了在可逆计数模式及加法计数
模式下,该软件的执行过程。
1. 可逆计数模式
当工作在可逆计数模式(PWM波形
对称)时,若加法计数达到的值与CMPA值相匹配,置位
ePWMxA输出;若减法计数达到的值与C
MPA值相匹配,ePWMxA输出复位;如果CMP
A值与计数器的值不匹配,则调用ISR并加载阴
影寄存器。
在这种情况下,向CMPA寄存器加载0实现100%的ePWMxA占空比,向CMP
A寄存器
加载大于或等于周期的数值实现0%的ePWMxA占空比。代码的执行过程如下:
在当前周期的ISR中,计算下一个PWM周期的比较寄存器的值,这样通过当前ISR就可
得知当前
和下一个周期的占空比。获知下一个周期的占空比能更好的了解当前周期,详细描
述如下:
a. 当CMPA值由非零变为零时:
- 14 -
(1)
改变动作确认控制寄存器的值,=AQ_SET。在下一个周期中立即使P
WM引脚置位。
(2)
在下一个周期(实际上是第一个100%占空比)的ISR中,将动作确认寄存器的值变为初
始值。
b. 当CMPA值由零变为非零时:
(1)
改变动作确认控制寄存器的值,=AQ_CLEAR,=A
Q_NO_ACTION。
(2) 改变LOADAMODE位的值,加载零或周期值。
需要注意的是,=AQ_SE
T未发生变化,因此,对于最后一个'CMPA=0'
周期之后的下一个周期,即使CMPA值等于1,
当CMPA值与计数器值一致时,ePWM引
脚也应置为高电平。
将动作确认寄存器和控制
寄存器的值变回到SIR初始时的值,为下一个周期做准备。(实际
上第一个非0%周期或者第一个非零
CMPA周期都跟有一个零CMPA周期。)当CMPA值进
入周期寄存器和返回时无需上述操作。应初
始化为ET_1S
T,即每一事件都产生中断。
2. 加法计数方式
当采用加
法计数模式工作时,若计数器的值与ZRO值匹配,置位ePWMxA输出,若计数
器的值与CMPA值
匹配,则ePWMxA输出复位。CMPA值与计数器的值不匹配时调用IS
R,并加载阴影寄存器。
在这种情况下,向CMPA寄存器加载大于周期的一个值即可实现100%的ePWMxA占空比;向CMPA寄存器加载0实现0%的ePWMxA占空比。代码的执行过程如下:
采用加法计数
模式工作时,在当前周期的ISR中,计算下一个PWM周期的比较寄存器的
值。因此,通过当前ISR
就可得知当前和下一个周期的占空比。获知下一个周期的占空比
能更好的了解当前周期,详细描述如下:
a. 当CMPA的值由非零变为零时:
(1)
改变动作确认控制寄存器的值,=AQ_CLEAR。在下一个周期中立即
清除PWM引脚的状态。
(2)
在下一个周期(实际上是第一个100%占空比)的ISR中,将动作确认寄存器的值变为初
始值。
b. 当CMPA值由零变为非零时:
(1)
改变动作确认控制寄存器的值=AQ_SET。
- 15 -
(2) 改变LOADAMODE位的值,加载零或周期值。
需要注意的是
:=AQ_CLEAR未发生变化。因此,在最后一个CMPA=0
周期后的下一个周期,即使该周期的
CMPA值等于1,在CMPA匹配时也应清除ePWM引
脚的状态。
(3) 将动作确认
寄存器和控制寄存器的值变回到ISR初始值,为下一个周期工作做准备。(实
际上第一个非0%周期或
者第一个非零CMPA周期都跟有一个零CMPA周期)。
当CMPA值进入周期寄存器和返回时无需上述操作。
应初始化为ET_1ST,即每一事
件都产生中断。也应按此
方法配置PWM时基子模块,这样可确保在可逆计数模式下,可在半个PWM周
期内即可执
行完ISR代码;而在加法计数模式下,可在一个PWM周期内执行完ISR代码。
软件流程
代码执行的软件流程图如图2所示。
- 16 -
图
2
:代码执行的软件流程图。
程序代码示例
下列ISR程序代码可用于实现加法计数模式下ePWM模块的0%-100%占空比调节。这些
代码为ePWM1A和ePWM1B提供独立控制,并使ePWM1B对ePWM1A起到补充作用。
- 17 -
- 18 -
图
3
:
ISR
程序代码。
- 19 -
每个的英文-一撮
唱歌的英语怎么读-浓稠的反义词
什么是佣金-escalator
想报托福培训班-无赖的意思
漂亮女孩英文怎么说-吃字
音乐会的英语-does和do的用法区别
千钧一发的发是什么意思-twelve怎么读
戍卒-lovers
-
上一篇:六年级数学上册计算题167145
下一篇:美国金属材料牌号表示方法简介