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.

LAUNCHXL-F28069M: Run Identify step in Lab 5A

Part Number: LAUNCHXL-F28069M

Hello TI experts, 

I have reached lab 5A, torque control, and the results are pretty good till now in aspects of startup, acoustic noise, and efficiency. 

There is a flag "Run Identify" which when enabled starts motor ID. The motor does not start until this is finished (around 5 to 10 seconds).

My question is, when we have already identified motor parameters and enabled the flag "enableUserParams", why this step is performed at every power ON? 

Thanks. 

 

  • Hi,

    Which project / board are you using below?

    If flag_enableUserMotorParams is set then the project will use the User Params in user.h file. 

    Maybe the delay you're seeing is from the wait time below in CTRL_updateState().

    if(counter_ctrlState >= waitTime)

    Best,

    Kevin

  • Hello Kevin, 

    I am using BOOSTXL-DRV8305 board with this F28069M kit. I have below questions now: 

    1. Could you please tell me where can I find this variable to reduce startup time? if(counter_ctrlState >= waitTime)

    2. Is there any way to indicate CPU load? 

    Thanks. 

  • Hi Rahul,

    1. Could you please tell me where can I find this variable to reduce startup time? if(counter_ctrlState >= waitTime)

    I believe the init code below in USER_setParams() function is what you'd want to change. Everything is default to 0 except OffLine state however.

      pUserParams->ctrlWaitTime[CTRL_State_Error]         = 0;
      pUserParams->ctrlWaitTime[CTRL_State_Idle]          = 0;
      pUserParams->ctrlWaitTime[CTRL_State_OffLine]       = (uint_least32_t)( 5.0 * USER_CTRL_FREQ_Hz);
      pUserParams->ctrlWaitTime[CTRL_State_OnLine]        = 0;

    There are some other wait times that could be affecting your start-up time:

      uint_least32_t  ctrlWaitTime[CTRL_numStates]; //!< Defines the wait times for each controller state, estimator ticks
      uint_least32_t  estWaitTime[EST_numStates];   //!< Defines the wait times for each estimator state, estimator ticks
      uint_least32_t  FluxWaitTime[EST_Flux_numStates]; //!< Defines the wait times for each Ls estimator, estimator ticks
      uint_least32_t  LsWaitTime[EST_Ls_numStates]; //!< Defines the wait times for each Ls estimator, estimator ticks
      uint_least32_t  RsWaitTime[EST_Rs_numStates]; //!< Defines the wait times for each Rs estimator, estimator ticks

    2. Is there any way to indicate CPU load? 

    There are profiling techniques documented here: https://software-dl.ti.com/C2000/docs/optimization_guide/phase2.html 

    Best,

    Kevin