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.

DRV8301-69-KIT Damage

Other Parts Discussed in Thread: DRV8301, MOTORWARE

 

Hello,

Yester day, one of our two DRV-69M kits died

We followed the labs in the documentation to find the motor parameters, the ADC offsets etc. and used lab5b (speed loop PI) as the beginning of our 'user project'. We added some code to implement the isolated SPI slave controller, to be able to control the motorcontroller externally. We use a custom made BLDC hubmotor.

While calibrating the PI loops (we temporarily removed the SPI code), we changed the SpeedRef from a certain value to 0 and back to the original value. The only load on the motor was the inertia of the spinning wheel (~2kg), around the hubmotor. Because the maximum accelleration is limited by the controller, we expected that the speed of the motor changed gradually, as seen in previous results. Instead, the DRV8301 suddenly chip 'exploded' (sparks, smoke..). The current was limited within the code (user.h) ánd our power supply (30V, 2.5A). Just before this happened 

Does anyone has any idea why this happened? And what to do now so we doesn't burn our second, backup print.

robinl

 ps. I wanted tot open a new thread, but this button disappeard.. (I'm using Opera right now, other browsers like firefox, IE, chrome give a ''Validation error" when I try to login to the forum)

 

  • robini,

    first, I have to say I'm surprised. We have thousands of these in the field and I completely abuse my kit and it always self protects.  But it sounds like you are probably running near the rails of the voltage limit already, and when the motor was generating a large Bemf and you gave it a step control command it went over the limit of the DRV8301.  That's the only thing I can think of.

    But then you say you were only at 30V.  What is the Bemf of the motor? What did Motor ID identify as the flux of the motor?  We can than calculate a potential Bemf Voltage that may have been seen.

    One point, the MAX_CURRENT in user.h is NOT a system current fault.  It is the maximum Iq allowed at the Iq PI controller only.  It does not protect the hardware, it is only a limit in the control system.  Your issue was voltage though, not current.

    I'll also send this to the DRV team to see if they have thoughts.

     

  •  Hi,

    Thank you for your reaction. This are the identified parameters:


     

    #elif (USER_MOTOR == MI_120393) // Name must match the motor #define
    #define USER_MOTOR_TYPE MOTOR_Type_Pm // Motor_Type_Pm (All Synchronous: BLDC, PMSM, SMPM, IPM) or Motor_Type_Induction (Asynchronous ACI)
    #define USER_MOTOR_NUM_POLE_PAIRS (7) // PAIRS, not total poles. Used to calculate user RPM from rotor Hz only
    #define USER_MOTOR_Rr (NULL) // Induction motors only, else NULL
    #define USER_MOTOR_Rs (0.3282813) // Identified phase to neutral in a Y equivalent circuit (Ohms, float)
    #define USER_MOTOR_Ls_d (0.001847617) // For PM, Identified average stator inductance (Henry, float)
    #define USER_MOTOR_Ls_q (0.001847617) // For PM, Identified average stator inductance (Henry, float)
    #define USER_MOTOR_RATED_FLUX (0.5479262) // Identified TOTAL flux linkage between the rotor and the stator (Webers = Volts* Seconds)
    #define USER_MOTOR_MAGNETIZING_CURRENT (NULL) // Induction motors only, else NULL
    #define USER_MOTOR_RES_EST_CURRENT (2.5) // During Motor ID, maximum current (Amperes, float) used for Rs estimation, 10-20% rated current
    #define USER_MOTOR_IND_EST_CURRENT (-2) // During Motor ID, maximum current (negative Amperes, float) used for Ls estimation, use just enough to enable rotation
    #define USER_MOTOR_MAX_CURRENT (2.0) // TEST! // CRITICAL: Used during ID and run-time, sets a limit on the maximum current command output of the provided Speed PI Controller to the Iq controller
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (17.0) // During Motor ID, maximum commanded speed (Hz, float), ~10% rated


     

     

     

     

  • Robini,

    The only sure way to damage the DRV8301 would be a voltage spike on any of the supply pins, sense pins (SH_x, SL_x) or gate drivers themselves.  Any spikes over 60V have the potential to blow up the driver.  As Chris noted, BEMF could pump up the supply voltage to levels unexpected. 

    Try reducing voltage to 24V for debug purposes. 

  • 30V, 14 pole synchronous motor

    Rs = 0.328 ohm, Ls = 1.847 mH, Flux = 0.5479 V/Hz = 547.9mV/Hz; /2pi = 87.17mVs/rad

    R/L = 177 Hz

    Bemf @ 177 Hz = 0.5479 * 177 = 96.98V

    Isc = Flux Vs/rad / Ls = 87.17 / 1.847 = 47.2A

    It looks like you have told me that Irated ~= 20A.

    Isc = 2 x Irated

    1. These values all look very good and make sense.  Motor is well designed for the application.

    2. You need to set this much higher to get any dynamic performance or you will clip yourself at 2A: USER_MOTOR_MAX_CURRENT (19.0)

    I wouldn't set it at 20A with this hardware because the full scale current reading is 40A through the external OPA circuitry, so give yourself some head room.

    3. This  motor has a very large Bemf and produces a very large voltage as seen on the terminals. This value is certainly overflowing if left in the default value:

    #define USER_IQ_FULL_SCALE_VOLTAGE_V      (48.0)

    I would set this at (300)

    and set #define USER_IQ_FULL_SCALE_FREQ_Hz        (200.0) 

     4. You are going to need to take special caution when working with a motor like this, especially in dealing with what happens at high speed.  If power is pulled from the system what do you do?  Do you allow the machine to be completely shut-off at speed or do you force a dynamic braking and dump some of the power into the Id axis? Do you have HW design with a brake resistor to burn the power? These are system level decisions that you will have to proactively design for.

     

  • dear ChrisClearman

    please till me what are the parameters which i need for protect hv kit! with your ACI wnd when i worked from 220v ac as input to kit

    and where these paremeters in the programmes

    yours

    ahmed

  • Ahmed,

    Not sure what parameters you are asking about. With an induction motor the default IQ_VOLTAGE used should be fine.  Just set your MAX_CURRENT to the correct value for the motor. Most induction motors in this range are <3A.  All of these setting are in the user.h file in the MotorWare directories.

    We do need to check and see if we are using the hardware trip zones / fault protection on the HVKIT and DRV8301.  We probably need to make this more robust...I submitted a bug on this and hopefully we'll roll something out in a revision in the next couple months.