大家好!
我使用的是C28x芯片,利用其中2组PWM(共4路PWM输出口)作为驱动信号。我的设置方式为:
EPWMxA与EPWMxB之间有死区,死区方式为DB_ACTV_HIC。
然后我发现,如果在程序运行时点HALT,EPWM 的A/B两个输出中一定有一个是输出为高的(即一高一低)。但是这样对我的硬件会造成损害。
我的理解是,因为我把EPWM配置成了互补的方式,所以当程序停下来的时候两者仍是处于互补状态的,所以一定是A/B两个口一个为高一个为低。
我的问题是,有没有办法在我HALT的时候,让EPWM输出全部归零? 或者如果是现实中假设电路出于保护的原因需要封闭PWM输出,那么我要如何设置才能使所有的PWM A/B口都为0,而不是一高一低地停下来?
谢谢各位!
Forrest:
我有一个比较笨的办法,抛砖引玉一下。
连续设置2个breakpoint,第一个breakpoint的properties中选择execute expression,在GEL中,利用GEL修改EPwm1Regs.TZFRC,利用TZ让PWM在breakpoint的时候置低。
第二个breakpoint进行HALT.
大家好!
我使用的是C28x芯片,利用其中2组PWM(共4路PWM输出口)作为驱动信号。我的设置方式为:
EPWMxA与EPWMxB之间有死区,死区方式为DB_ACTV_HIC。
然后我发现,如果在程序运行时点HALT,EPWM 的A/B两个输出中一定有一个是输出为高的(即一高一低)。但是这样对我的硬件会造成损害。
我的理解是,因为我把EPWM配置成了互补的方式,所以当程序停下来的时候两者仍是处于互补状态的,所以一定是A/B两个口一个为高一个为低。
我的问题是,有没有办法在我HALT的时候,让EPWM输出全部归零? 或者如果是现实中假设电路出于保护的原因需要封闭PWM输出,那么我要如何设置才能使所有的PWM A/B口都为0,而不是一高一低地停下来?
谢谢各位!
10#:
1. 建议使用pause而不用halt;
2. 尝试使用TBCTL的FREE,SOFT位设置看看。
大家好!
我使用的是C28x芯片,利用其中2组PWM(共4路PWM输出口)作为驱动信号。我的设置方式为:
EPWMxA与EPWMxB之间有死区,死区方式为DB_ACTV_HIC。
然后我发现,如果在程序运行时点HALT,EPWM 的A/B两个输出中一定有一个是输出为高的(即一高一低)。但是这样对我的硬件会造成损害。
我的理解是,因为我把EPWM配置成了互补的方式,所以当程序停下来的时候两者仍是处于互补状态的,所以一定是A/B两个口一个为高一个为低。
我的问题是,有没有办法在我HALT的时候,让EPWM输出全部归零? 或者如果是现实中假设电路出于保护的原因需要封闭PWM输出,那么我要如何设置才能使所有的PWM A/B口都为0,而不是一高一低地停下来?
谢谢各位!
violet han:
回复 Forrest:
谢谢你,我用的是CCS4,好像没有看到breakpoint可以设置properties。 能不能请你告诉我在哪里设?给个截图也行。
谢谢。
或者换个方式说,如果我的EPWM正在正常输出,我突然来个中断需要把EPWM输出全部置0(在已设置为A/B路为互补的情况下),在软件上如何实现呢?我试过关断EPWM的时钟,不过好像不起作用。
大家好!
我使用的是C28x芯片,利用其中2组PWM(共4路PWM输出口)作为驱动信号。我的设置方式为:
EPWMxA与EPWMxB之间有死区,死区方式为DB_ACTV_HIC。
然后我发现,如果在程序运行时点HALT,EPWM 的A/B两个输出中一定有一个是输出为高的(即一高一低)。但是这样对我的硬件会造成损害。
我的理解是,因为我把EPWM配置成了互补的方式,所以当程序停下来的时候两者仍是处于互补状态的,所以一定是A/B两个口一个为高一个为低。
我的问题是,有没有办法在我HALT的时候,让EPWM输出全部归零? 或者如果是现实中假设电路出于保护的原因需要封闭PWM输出,那么我要如何设置才能使所有的PWM A/B口都为0,而不是一高一低地停下来?
谢谢各位!
violet han:
回复 10#:
谢谢,我用的是CCS4,好像软件里没有PAUSE这一项,只有HALT。
TBCTL的FREE-SOFT位我试过了,没有作用。我感觉是因为A/B被设成了互补的原因,所以无论什么状态下软件停下来,两路输出总会是一高一低的。
大家还有没有其它建议可以让我试试? 谢谢咯
大家好!
我使用的是C28x芯片,利用其中2组PWM(共4路PWM输出口)作为驱动信号。我的设置方式为:
EPWMxA与EPWMxB之间有死区,死区方式为DB_ACTV_HIC。
然后我发现,如果在程序运行时点HALT,EPWM 的A/B两个输出中一定有一个是输出为高的(即一高一低)。但是这样对我的硬件会造成损害。
我的理解是,因为我把EPWM配置成了互补的方式,所以当程序停下来的时候两者仍是处于互补状态的,所以一定是A/B两个口一个为高一个为低。
我的问题是,有没有办法在我HALT的时候,让EPWM输出全部归零? 或者如果是现实中假设电路出于保护的原因需要封闭PWM输出,那么我要如何设置才能使所有的PWM A/B口都为0,而不是一高一低地停下来?
谢谢各位!
violet han:
回复 10#:
谢谢你。这下解决了
TI中文支持网



