This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] INSTASPIN-BLDC:在EST_getFm_PU (estHandle)中看不到更新

Guru**** 2558250 points
Other Parts Discussed in Thread: DRV8301

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/632401/instaspin-bldc-cant-see-update-in-est_getfm_pu-esthandle

部件号:INSTASPIN-BLDC
主题中讨论的其他部件:DRV8301

您好,

我正在使用lab11e (在BLDC电机上使用霍尔传感器进行快速转换)。 引用的项目是为EVM套件构建的。

我在DRV8301上开发了驱动板(基于bootxl),我可以成功运行电机标识,也可以在霍尔传感器上运行项目。

在程序中

	如果(gFlagBldc & gFlag120){
			SWITCH (gHallState){
案例5:{
PWM_setOneShotTrip (hal.pwmHandle[PWM_NUMBER_1]);
PWM_clearOneShotTrip (hal.pwmHandle[PWM_NUMBER_2]);
PWM_clearOneShotTrip (hal.pwmHandle[PWM_NUMBER_3]);

gPwmData.TABC.Value[0]=_IQ (0.0);
gPwmData.TABC.Value[1]=-gDuty;
gPwmData.TABC.Value[2]= gDuty;

中断;
} 

如果我将上述位设置为真,我可以旋转马达以改变gDuty (_IQ (0.0)-_IQ (0.5))的值;

但这里所写的逻辑是:

如果(_IQabs (speed_PU)<_IQpumpy (gBldcToFastSpd_low,gSpeed_Krpm _to_Pu_SF){<-这永远不是事实
gFlagBldc =真;
angle_PU = gHallAngle;
}
// else
//{
////
gFlagBldc = FALSE;
// angle_PU = angle_est_PU;
//}
否则{
//禁用PWM
HAL_DisablePwm (halHandle);

//将PWM设置为50 % 占空比
gPwmData.TABC.Value[0]=_IQ (0.0);
gPwmData.TABC.Value[1]=_IQ (0.0);
gPwmData.TABC.Value[2]=_IQ (0.0);
} 


我也无法得到正确的speedkRPM值。 当我进一步访问资源时,我发现这是一个问题

EST_getFm_PU (estHandle);未返回任何值。

请为我提供 有关此问题的资源。

希望尽快回复!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当使用霍尔传感器时,电动机正在梯形模式下运行,因此FAST不起作用,无法使EST_getFm_PU()获得正确的速度反馈值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能为我提供一些获得正确反馈的资源吗?
    测试反馈值的任何步骤。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    与实验室文件中的代码一样,速度是根据 霍尔传感器运行时的霍尔信号时间计算的,即使 快速估算器同时运行。 使用霍尔传感器的此速度执行速度关闭回路控制并切换至无传感器控制,然后使用EST_getFm_PU从快速到无传感器控制运行电机的速度。