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

运动控制

请问DSP2808和28335的EQP和ECAP,能否预置32位计数值,假如我用PWM发脉冲,将脉冲引到ECAP计数,当CAP计数到预置值,立即停止相应PWM输出并中断。

Jones Chen:

eCAP和eQEP的时钟都是32bit的。

可以实现您所说的功能,在eCAP的ISR中进行PWM的封波。

请问DSP2808和28335的EQP和ECAP,能否预置32位计数值,假如我用PWM发脉冲,将脉冲引到ECAP计数,当CAP计数到预置值,立即停止相应PWM输出并中断。

LOFTY DVRE:

回复 Jones Chen:

你好!请问你所谓的封波是否指用动作限定软件强制寄存器设置相应PWM脚置高或清零,用来阻塞PWM波,因为在运动控制中多一个脉冲或少一个都是不可接受的。还有就是采用递增递减方式输出的6路PWM方波计数,eCAP和eQEP分别利用哪一个寄存器采用何种方式计数,我们需要的是给定一个预置值,启动PWM,计到预置值立即停止PWM,然后根据条件重复上述步骤。相关文档看了感觉有点迷茫!本来考虑用PWM1A-PWM6A来输出PWM波,用ECAP1-ECAP6来计数,但是因为我另外还要用到两路PWM来做DA输出,所以就用上两路EQEP,腾出两路ECAP工作在APWM模式来输出DA了(DA不需要高精度的)。事实上真正独立可以调频率和占空比的就只有12个PWM通道(算上ECAP工作在APWM模式),对吗?期待解答中。。。谢谢!

请问DSP2808和28335的EQP和ECAP,能否预置32位计数值,假如我用PWM发脉冲,将脉冲引到ECAP计数,当CAP计数到预置值,立即停止相应PWM输出并中断。

Jones Chen:

回复 LOFTY DVRE:

eCAP是可以做APWM来使用,这是没有问题的。

但是F2808和F28335的ePWM的通道数足够多,多于12路,好像不需要eCAP来补充。

另外,也没有eCAP1~6,这么多的CAP。

封波,就是你理解的。

请问DSP2808和28335的EQP和ECAP,能否预置32位计数值,假如我用PWM发脉冲,将脉冲引到ECAP计数,当CAP计数到预置值,立即停止相应PWM输出并中断。

LOFTY DVRE:

回复 Jones Chen:

PWM1A-PWM6A,PWM1B-PWM6B,其实就是6组PWM,PWM1A-和PWM1B共一个时基,是同频率的,不能分别控制PW1A和PWM1B的频率。所以也就是6路能独立调频率了,28335有6个eCAP通道呀!就是不太明白它怎样来计数PWM发出的波,如果计一个中断一次,在中断里面计数PWM这个肯定是没有问题的也容易实现,但关键是那样的话,6路PWM同时发出每路的频率都高达几百K,将大量占用CPU资源,所以我想请教你们专家,有没有办法实现预置计数值,给个一个计数值然后再启动相应PWM通道,计数到立即停止PWM并中断,这样可以大量减少CPU开销,我可以在主程序中实时读取预置值脉冲的完成情况,以此来控制PWM的频率实现加减速曲线控制!

请问DSP2808和28335的EQP和ECAP,能否预置32位计数值,假如我用PWM发脉冲,将脉冲引到ECAP计数,当CAP计数到预置值,立即停止相应PWM输出并中断。

Jones Chen:

回复 LOFTY DVRE:

如果您要输出的6个频率都是不相同的话,就只有6路,因为每个pwm模块所输出的两路pwm是同频率的。

是6个ecap.

这个在ecap的user guide上有详细的计数方式说明。

赞(0)
未经允许不得转载:TI中文支持网 » 运动控制
分享到: 更多 (0)