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.

CCS/BOOSTXL-DRV8320S: Cannot make LAUNCHXL-F280049C + DRV8320RS work with Anaheim_BLY172S_24V motor either!

Part Number: BOOSTXL-DRV8320S
Other Parts Discussed in Thread: DRV8320, DRV8305, MOTORWARE, LAUNCHXL-F280049C

Tool/software: Code Composer Studio


I've been stuck for two weeks now trying to get our fan motor to run at high speed (1400 Hz) but it always trips over current around 400 Hz .. 500 Hz.

I've tried too different types of motors, several different motor units, several LAUNCHXL and BOOSTXL  units, nothing makes a difference.

It is NOT nFAULT from DRV8320, I've maxed out the motorVars.dacValH and motorVars.dacValL values from  255-3841 to 1-4094.

The motor is not observably using excessive current, the motorControl instaspin foc variables indicate 5-6Amps at around 6-7 Volts which matches the measure input carrent of 24 V / 2 amps pretty much.

One more data point, the motor has trouble starting. I set the initial speed at 20 Hz and the motor seldom reaches that but hovers and hesitates at -15 ... +10 Hz.

So in my desperation I hooked up the Anaheim_BLY172S_24V and with the TI user.h parameters that too has problems starting!!

And the Anahaim does not reach 400 Hz, maxes out at around 320 Hz and does not run smoohtly, I can hear and feel vibrations which have no discernible pattern or frequency.

As I think we can rule out hardware fault this must be some sort of systematic software issue, that is my guess.

Or can this be that the DRV8320RS (as it is configured in hardware) is not suited to these small motors?

I run the motor ID for Anaheim_BLY172S_24V and it produced values that are very much in line with what I can find in the user.h file, my values as comments:

#define USER_MOTOR_Rs_Ohm (0.4) // 0.373

#define USER_MOTOR_Ls_d_H (0.0007190173) // 0.000625

#define USER_MOTOR_Ls_q_H (0.0007190173) // 0.000625

#define USER_MOTOR_RATED_FLUX_VpHz (0.0327013217) // 0.0359

I'm at loss how to proceed and this has became a showstopper for the hole project.

We have had great success with BOOSTXL-F28027 + DRV8305 + MotorWare/instaspin FOC  with number of motors,

No luck so far with with LAUNCHXL-F280049C + DRV8320RS / MotorControl SDK 3.0 Instaspin FOC with any motor.


  • Hello Kustaa,

    Thanks for posting on the forum again. I see you've been posting quite a bit over the last few weeks, as your post points out.

    Note that a lot of these have been moved to the applicable instaspin team and they are looking at them. I absolutely agree that this a maddening affair so I'll ask for your patience while they parse out the questions.

    Having generally reviewed the posts, I agree that software seems to be the "issue" but I'd be curious to see if you have any oscilloscope shots or data showing that the overcurrent is falsely or correctly triggered. Overcurrent faults are usually meant to show transient responses, so observing generally supply currents aren't too helpful as they are generally RMS or averaged measurements.

    Therefore, I would expect that you'd be able to correlate the actual motor phase currents or the output of the current sense amplifiers that are used for the algorithm. I'm sure this will be helpful drilling down the true root cause of the issue.



  • You might follow the steps below to add the library and code into your project. And you should increase the dc bus voltage or implement the filed weakening control as lab13 if the motor can't still run-up to the high speed without fault.

    1. Add the patch library (fluxHF_coff.lib or fluxHF_eabi.lib ) into the project, and include the header file (fluxHF.h) in the file (labs.h) of the project

    2. Add the codes below after “EST_setFlag_enableRsRecalc(estHandle, motorVars.flagEnableRsRecalc);” in main file. 

    // set the scale factor for high frequency motor

     EST_setOneOverFluxGain_sf(estHandle, &userParams, USER_EST_FLUX_HF_SF)

    EST_setFreqLFP_sf(estHandle, &userParams, USER_EST_FREQ_HF_SF);

    EST_setBemf_sf(estHandle, &userParams, USER_EST_BEMF_HF_SF);


    3. Add the macro definitions below in user.h

    //! \brief Defines the scale factor for the flux estimation

    //! the default value is 1.0f, change the value between 0.1f and 1.25f

    #define USER_EST_FLUX_HF_SF                     ((float32_t)(0.125f))


    //! \brief Defines the scale factor for the frequency estimation

    //! the default value is 1.0f, change the value between 0.5f and 1.5f

    #define USER_EST_FREQ_HF_SF                     ((float32_t)(1.0f))


    //! \brief Defines the scale factor for the bemf estimation

    //! the default value is 1.0f, change the value between 0.50f and 1.25f

    #define USER_EST_BEMF_HF_SF                    ((float32_t)(1.0f))