28x系列DSP ePWM模块主要的参数设置实例

[复制链接]
1049|1
手机看帖
扫描二维码
随时随地手机跟帖
qwe890asd|  楼主 | 2017-10-12 16:59 | 显示全部楼层 |阅读模式
28x系列DSP ePWM模块主要的参数设置实例


利用ePWMAePWMB产生互补的带有死区的PWM波对,关键点在设置比较动作(AQ)和死区(DB)
在实验的一开始,我对(AQ)和(DB)都进行了设置,发现不管怎样设置比较动作都没有办法得到互补的PWM波;后来禁用死区,得到了互补的PWM波。从这里得知,在MATLAB中产生PWM波,(DB)的设置对PWM波的极性是有影响的,但具体是如何影响的,从简单的几个波形并没有办法得到结论。因此,在后面我对每一种参数的设置对产生的代码和波形的影响进行了一一的观察。
一、AQ的设置
ePWM模块主要的参数分为如图的下面几个部分,其中General中主要对应的是28335中的TB模块,ePWMA和ePWMB主要对应的是CC和AQ,其他的部分如其名依次对应。

图1.主要的参数以及General参数
General中参数如上面示,从其字面意思可以直观的理解。
ePWMA和ePWMB模块的参数如下图所示,红色框出的部分主要是比较器的设置,对应28335的CC,包括比较器A、B的单位选择、比较值的来源(通过输入口或内部提供)、比较初始值(通过输入);下半部分是比较动作设置,对应28335的AQ,不论是ePWMA还是ePWMB都包含六个counter等于zero、PRD、CAU、CAD、CBU、CBD。
图2. ePWMA和ePWMB的参数
由于ePWMA和ePWMB都包含CAU、CAD、CBU、CBD四个比较动作,经过分析可知,产生互补的PWM波有以下两种设置方法:
1. 仅使用一个比较值(包括设置了CMPA、禁用CMPB,CPMA、CPMB均设置值、但仅用一个),可以在ePWMA和ePWMB中,都设置CAU、CAD的动作,两个部分的CBU、CBD均不动作(Do nothing)。如上面的图中的设置就是使用这种方法产生互补的PWM波。
2. 使用两个比较值,则在ePWMA中设置动作CAU、CAD,在ePWMB中设置动作CBU、CBD,两者的动作相反。同样也可在ePWMA中设置动作CBU、CBD,在ePWMA中设置动作CBU、CBD,两者动作相反。

二、DB的设置
对应上面的互补的PWM波的产生方法,死区的产生也具有两种方法:
1. CMPA=CMPB,或者仅使用一个比较值,可以使用死区发生器(DB)来设置死区的大小。下面将对死区参数的设置进行具体的介绍。
2. CMPA和CMPB设置不同的比较值,当比较匹配时,通过控制比较动作来产生死区。这种方法不需要使用DB模块。

图3.死区产生方法1
下面几个图表示的是DB的参数设置框图:
图4.DB参数设置
如上图4所示,单独选择Use deadband for ePWMA或Use deadband for ePWMB主要的参数有四个:死区延时的极性(Positive or negative)、RED/FED的信号源(ePWMA or ePWMB)、死区值来源(外部输入或内部提供)以及死区值。Use deadband for ePWMA和Use deadband for ePWMB全部选择的参数有所变化,死区极性为:AH、AL、AHC、ALC,这与28335中是对应的。
这里,死区延时的极性(Positive or negative)、RED/FED的信号源(ePWMA or ePWMB)对产生的PWM波的极性是有影响的,对应于28335的死区的寄存器——IN_MODE、POLSEL、OUT_MODE是有影响,但其规律比较复杂。为了搞清楚这几个参数对产生的代码及波形的影响,下面对各种情况进行了分析,以找到规律。
1. 仅选择Use deadband for ePWMA /ePWMB
产生的代码:
EPwm1Params.DBCTL_OUT_MODE = 2;
EPwm1Params.DBCTL_IN_MODE = 1;
EPwm1Params.DBCTL_POLSEL = 1;
EPwm1Params.DBRED = 10.0;
EPwm1Params.DBFED = 0.0;
可以产生互补波形,BRED,相当于A的提前关断

相关帖子

barry6| | 2017-10-24 21:20 | 显示全部楼层
楼主,C语言中怎样设置上下两个MOS管的死区时间的?

使用特权

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

本版积分规则

455

主题

583

帖子

5

粉丝