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

关于HVACI_Sensorless中SVPWM问题,请指教

您好,我在HVACI_Sensorless中看到:

(*ePWM[ch1]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC1)+ v.HalfPerMax;  

 (*ePWM[ch2]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC2)+ v.HalfPerMax; 

 (*ePWM[ch3]).CMPA.half.CMPA = _IQmpy(v.HalfPerMax,v.MfuncC3)+ v.HalfPerMax;

当我将(*ePWM[ch1]).CMPA.half.CMPA =0时,在示波器中我看到PWM1A一直为低,PWM1B一直为高

当我将(*ePWM[ch1]).CMPA.half.CMPA =v.PeriodMax+1时,我发现PWM1A一直为高,PWM1B一直为低

请问:1、当(*ePWM[ch1]).CMPA.half.CMPA =0时,在0处不是要产生触发吗?为什么一直是低?

在文档中我看到,当比较值大于周期值得时候,对于增减模式,CMPA>=TBPRD周期,则比较匹配时(TBCTR=TBPRD)发生触发事件。

那么当(*ePWM[ch1]).CMPA.half.CMPA =v.PeriodMax+1时,在v.PeriodMax不是也要产生触发吗?为什么一直为高?

2、请问在程序中,当比较寄存器赋完值之后,什么时候才进行比较?在下一个中断到来的时候吗?为什么?

谢谢!!!

 

Jay:

你好,

1. 当CMPA=0时,在TBCTR值为0时发生比较事件;当CMPA=TBPRD+1时,比较事件永远不发生。那么,比较事件发生后对应引脚的电平变化,是由AQ子模块来决定的,你需要查看AQ子模块的相关寄器。

2. 比较寄存器赋值后,什么时候有效有两种情况。如果你使用了影子寄存器,那么从影子寄存器装入活动寄存器的时间是可以配置的,如果没有使用影子寄存器,那么写入后就立即有效了。

建议仔细阅读一下ePWM模块的用户手册。

赞(0)
未经允许不得转载:TI中文支持网 » 关于HVACI_Sensorless中SVPWM问题,请指教
分享到: 更多 (0)