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.

[参考译文] BOOSTXL-DRV8323RH:电机状态保持在 MOTOR_CL_RUNNING 上

Guru**** 2455860 points


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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1330459/boostxl-drv8323rh-motorstate-stay-on-motor_cl_running

器件型号:BOOSTXL-DRV8323RH

您好!

我修改了 具有外部节气门开关的 USAL_MOTORCONTROL_Lab_f28002x 项目以控制 IsSet_A 进行电流控制、禁用速度控制 、令人奇怪的是 、每次上电复位后应用节气门(IsSet_A >0)前几次没有响应、因为 MOTORState 保持在 MOTOR_CL_RUNNING 上。

查看下面的调试屏幕截图  

0:02秒-节气门启动操作、IsSet_A > 0、motorState 在 MOTOR_CL_RUNNING 处停止、SPEED_Hz 保持为零、无故障
0:05秒-再次节气门动作、发生了同样的事情、SPEED_Hz 保持为零
0:14秒-再次节气门动作、这次 motorState 可达到 MOTOR_CTRL_RUN、SPEED_Hz 增加

e2e.ti.com/.../video_2D00_01.mov

下面的视频显示了电机响应...  

e2e.ti.com/.../video_2D00_02.mov

我还尝试了不同的值、甚至删除了 fwcTimeDelay、以查看 CL_runing 是否可以立即更改为 MOTOR_CTRL_run、但运气不好!  

if(obj->motorState == MOTOR_CL_RUNNING)
{
   obj->stateRunTimeCnt++;

    if(obj->stateRunTimeCnt == obj->fwcTimeDelay) /* 2.0s */
    {
         obj->Idq_out_A.value[0] = 0.0f;
        obj->motorState = MOTOR_CTRL_RUN;
    }
}

编辑: 2024年02月29日 PM 10:34  

我刚刚发现、当  obj->flagEnableRsRecalc 设置为 true 时、将发生上述 motorState 响应、如果设置为 false、则上电重启、 然后应用油门(IsSet_A > 0)、motorState 可一直到 MOTOR_CTRL_run  

因此、想要知道 flagEnableRsRecalc 导致该中断的原因是什么以及如何防止它?  

丹尼  

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

    Danny:

    flagEnableRsRecalc 作为输入传递给函数:

    EST_setFlag_enableRsRecalc ()

    有关此函数的说明、请参阅 est.h:

    不应在运行时执行 RS 重新计算、如中所述。

    此致、
    杰森·奥斯博尔恩

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

    大家好、Jason、

    运行时不应执行 rs recalc,如所述。

    如果不是在运行时执行、 我就不会得到它、我应该何时 调用?  

    还是我在 将 IsSet_A 设置为对之前调用并等待它完成信号?  

    是否有任何函数可以判断 rsinverate 何时完成?  

    还尝试 EST_getFlag_enableRsOnLine 类似效果。

    丹尼