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.

Motor Identification Failure

Other Parts Discussed in Thread: LAUNCHXL-F28069M, BOOSTXL-DRV8301

Hello -

I recently purchased the LAUNCHXL-F28069M controller/BOOSTXL-DRV8301 drive.  I am using both to control a small BLDC blower (12V, 6A). 

I have run through most of the lab examples without problems.  Today I was working with Lab5e and decided to re-identify the motor.  I set the EnableUserParams to 0 and then set EnableSys and Run_Identify to 1.  The system then either miss identified the Ls value (1.33mH vice 133uH) or got stuck in the Rs identify routine.  Stuck as in the ISR LED was blinking but no updates/changes were occurring in CCS. 

After this occurred and after repeating a couple times, I went back to Lab2a and was able to identify the motor without problems.  I was also able to run Lab5e with EnableUserParams set to 1 without issue.

Any suggestions on where I am going wrong?  Do I need to do something different since I am using SpinTAC in Lab5e?

Thanks in advance!

Brett

  • Brett,

    The InstaSPIN-FOC & InstaSPIN-MOTION labs use different user.h files.  It is possible that some changes didn't get completely copied over.  

    That being said, I don't know of a reason why motor id wouldn't work in lab 05e.  I've never tried it in that lab but I didn't do anything to disable it.

    For the InstaSPIN-MOTION labs 05c is setup to perform motor parameter id in the same way that lab 02c does it.  I've tested that fairly extensively.

  • Hey Adam - thanks for responding.

    I looked at 5c and compared to 5e. The issue appears to be in the call where speed control is disabled.

    I was able to work around the issue by adding the following code in the while(gMotorVars.Flag_enableSys) loop:

    if ((gMotorVars.Flag_Run_Identify == true) &&
    ((gMotorVars.Flag_enableUserParams == true) || (gMotorVars.Flag_MotorIdentified == true)))
    {
    CTRL_setFlag_enableSpeedCtrl(ctrlHandle, false);
    }
    else
    {
    CTRL_setFlag_enableSpeedCtrl(ctrlHandle, true);
    }

    This seems to work fine.

    Does this make sense?

    Thanks again for your help!

    Bret
  • Bret,

    That makes sense to me.  I believe that the motor identification relies on the speed control in order to do the Ls & Flux identifications.

  • I just ran into this issue in lab13c, MW 1.01.00.17. I had thought all the motion labs just couldnt recalulate Ls, Flux etc.

    is this going to be fixed in future lab's ?
  • As far as I know there are no plans to update the 13x labs so that they can complete a motor parameter identification due to speed controller integration.

    You can always use one of the other labs (02a/02c/ or 05c) to complete the motor parameter identification.

    Since all of the interface code is open source, you could modify the code so that it can proceed through the motor parameter identification.
  • Ok, I've got my code working but just thinking of the next guy that might hit this limit.

    I had just spent hours making lab2b FOC run side by side to the lab13x motion controller since i need to ID in the end product. I then hit the issue of "CTRL_setFlag_enableSpeedCtrl" which i googled and got here. Now I've fixed it using the above code i only need the motion lab13 code.