TI中文支持网
TI专业的中文技术问题搜集分享网站

Digital Compare (DC) Submodule中的Event Filtering的疑惑。

我们现在有项目中有用到epwm的DC模块和tz模块来实现直流电机电流的控制,使用的是tz模块的cbc模式,在一种极端模式下,期望电流为零,此时ADC Compare单元一直处于限流状态,也就是Digital Compare模块的输入一直都是限流保护状态。

按理讲,即使在整个时间段段都有过流事件发生,我通过设置Event Filtering窗口,无论如何在Event Filtering这段时间内,pwm应该在从ctr = 0这个时间点恢复,持续Event Filtering time后再关闭。但是事实上。通过以下的程序段是无法对事件有效屏蔽,pwm没有在ctr =0时恢复,整个过程中pwm都没有输出。

EPwm1Regs.tbprd = 2500;

EALLOW; \
EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP1OUT; \
EPwm1Regs.TZDCSEL.bit.DCAEVT2 = TZ_DCAH_HI; \
EPwm1Regs.DCACTL.bit.EVT2SRCSEL = DC_EVT_FLT; \
EPwm1Regs.DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_SYNC; \
EPwm1Regs.DCFCTL.bit.PULSESEL = DC_PULSESEL_PRD; \
EPwm1Regs.DCFCTL.bit.SRCSEL = DC_SRC_DCAEVT2; \
EPwm1Regs.DCFCTL.bit.BLANKE = DC_BLANK_ENABLE; \
EPwm1Regs.DCFCTL.bit.BLANKINV = DC_BLANK_NOTINV; \
EPwm1Regs.DCFOFFSET = 0; \
EPwm1Regs.DCFWINDOW = NOISE_WINDOW; \
EPwm1Regs.TZSEL.bit.DCAEVT2 = 1; \

EDIS;\

然而我把更改以下程序:

EPwm1Regs.DCFOFFSET = 0;  更改为EPwm1Regs.DCFOFFSET = 2495;

就能够输出了。从程序的意义上讲,意思就是说,需要在需要在ctr = 0 之前 5个周期就要开始屏蔽才会生效。

那么我有2个问题:

1,以上我对Event Filtering的理解是否正确?

2,如果我的理解正确,DCFOFFSET设成多少是合适的,我现在在这个平台上是要提前5个才行,会不会其他平台需要更多才行呢,这里是否成为了一个不可靠因素了。

forever xu:

我觉得上面说得太啰嗦了,我决定精炼一下.

我感觉DC模块中的Event Filtering不能对一种情况有效过滤,这种情况就是“整个时间段内事件都一直存在”。

请ti的工作同志解释一下。

我们现在有项目中有用到epwm的DC模块和tz模块来实现直流电机电流的控制,使用的是tz模块的cbc模式,在一种极端模式下,期望电流为零,此时ADC Compare单元一直处于限流状态,也就是Digital Compare模块的输入一直都是限流保护状态。

按理讲,即使在整个时间段段都有过流事件发生,我通过设置Event Filtering窗口,无论如何在Event Filtering这段时间内,pwm应该在从ctr = 0这个时间点恢复,持续Event Filtering time后再关闭。但是事实上。通过以下的程序段是无法对事件有效屏蔽,pwm没有在ctr =0时恢复,整个过程中pwm都没有输出。

EPwm1Regs.tbprd = 2500;

EALLOW; \
EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP1OUT; \
EPwm1Regs.TZDCSEL.bit.DCAEVT2 = TZ_DCAH_HI; \
EPwm1Regs.DCACTL.bit.EVT2SRCSEL = DC_EVT_FLT; \
EPwm1Regs.DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_SYNC; \
EPwm1Regs.DCFCTL.bit.PULSESEL = DC_PULSESEL_PRD; \
EPwm1Regs.DCFCTL.bit.SRCSEL = DC_SRC_DCAEVT2; \
EPwm1Regs.DCFCTL.bit.BLANKE = DC_BLANK_ENABLE; \
EPwm1Regs.DCFCTL.bit.BLANKINV = DC_BLANK_NOTINV; \
EPwm1Regs.DCFOFFSET = 0; \
EPwm1Regs.DCFWINDOW = NOISE_WINDOW; \
EPwm1Regs.TZSEL.bit.DCAEVT2 = 1; \

EDIS;\

然而我把更改以下程序:

EPwm1Regs.DCFOFFSET = 0;  更改为EPwm1Regs.DCFOFFSET = 2495;

就能够输出了。从程序的意义上讲,意思就是说,需要在需要在ctr = 0 之前 5个周期就要开始屏蔽才会生效。

那么我有2个问题:

1,以上我对Event Filtering的理解是否正确?

2,如果我的理解正确,DCFOFFSET设成多少是合适的,我现在在这个平台上是要提前5个才行,会不会其他平台需要更多才行呢,这里是否成为了一个不可靠因素了。

Yong Meng:

回复 forever xu:

我也遇到了和您一样的问题,请问您解决了吗?搞明白了吗?

赞(0)
未经允许不得转载:TI中文支持网 » Digital Compare (DC) Submodule中的Event Filtering的疑惑。
分享到: 更多 (0)