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

2833X_Sensorless 工程几个问题

目录:C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x

OffsetISR函数下有这两句:

#ifdef DSP2833x_DEVICE_H
offsetA= K1*offsetA + K2*(AdcMirror.ADCRESULT1)*0.00024414; //Phase A offset
offsetB= K1*offsetB + K2*(AdcMirror.ADCRESULT2)*0.00024414; //Phase B offset
offsetC= K1*offsetC + K2*(AdcMirror.ADCRESULT3)*0.00024414; ; //Phase C offset
#endif

这两句只执行一次,没有问题的,K1是IQ格式,K1*offsetA 也是IQ格式的,但问题是这句会执行10000多次,就是会乘2^24 的10000多次…早溢出了

再看MainISR函数的

#ifdef DSP2833x_DEVICE_H
clarke1.As=((AdcMirror.ADCRESULT1)*0.00024414-offsetA)*2*0.909; // Phase A curr.
clarke1.Bs=((AdcMirror.ADCRESULT2)*0.00024414-offsetB)*2*0.909; // Phase B curr.
#endif

AdcMirror.ADCRESULT1*0.00024414,AD采样结果除4096,那样这个肯定是个小数,但offSetA是IQ格式的.你让一个小数减去offset是无意义的。

这里要么把AdcMirror.ADCRESULT1*0.00024414转成IQ格式,要么把offsetA还原成真实值

如果开启宏DSP2803x_DEVICE_H,而不打开DSP2833x_DEVICE_H宏,工程可能是对的

开启宏DSP2833x_DEVICE_H,好多编译错误,比如在AD初始化那里就错误,因为2833X的AD寄存器和2803X的不一样,2803X有的寄存器,2833X未必有。

 

调试中有个问题,调电机需要PWM控制,发现重新下载电机程序时,在下载程序的过程中,还有PWM输出,我也调用了HVDMC_Protection函数,但无效果。

哪个寄存器控制这些:

1重新下载程序过程中,PWM引脚电平可控变成低电平,而不是继续上次下载的程序的PWM输出,这样会短路的

2调试程序下断点时,PWM引脚电平自动都变成低电平,

我也调用了HVDMC_Protection函数,但无效果

Eric Ma:

这个例程中的IQ格式是浮点的方式,你看一下IQMATH的头文件吧,IQ24其实就是float类型,和定点不一样。

PWM保护关断的,要启动TZ6信号保护,就是当下载或是暂停的时候,产生保护信号关断PWM。

ERIC

赞(0)
未经允许不得转载:TI中文支持网 » 2833X_Sensorless 工程几个问题
分享到: 更多 (0)