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.

TMS320F280049C: FW + RsRecalc enable = drv8320 mayhem

Guru 55913 points
Part Number: TMS320F280049C
Other Parts Discussed in Thread: DRV8320, CSD88599Q5DC, BOOSTXL-DRV8320RS

I just got XL booster launchpad kit few weeks ago and completed LAB10 (OnLine Recalibration). Spent last two days in LAB13 experimenting with CCS debug jscript settings, LAB guide page 117 step 5. When I first enable RsRecalc during FW mode it switched to off state perhaps after disabling FW, I can't be sure. The next time FW was disabled and again enable RsRecalc the drv8320 catches on fire burns traces near U1. This really freaks me out as trying to pull power plugs firmly seated with bright light sizzling black smoke and later fire almost pulling analog scope onto the cement floor it finally stops burning.

It seems the x49c launch pad is ok but the drv8320rs is a complete loss, burned the PCB and blew NexFET half off PCB near A phase.  I'd remove the motorVars.flagEnableRsRecalc function as it should not have burned the PCB with out tripping PWM faults. Can TI store please replace my drv8320rs under warranty I have pictures if they need them.

Thanks for help. 

  • Hi,

    I just want to let you know that we are looking for an expert for this issue and he/she will give a response as soon as possible.

    Best,

    John

  • HI John,

    The odd part is the DC power supply can only deliver 9 amps peak 42vdc. The NexFET CSD88599Q5DC is rated 40A 60v and the maximum user motor voltage peak was set 48v max. The CCS real time monitor indicated 6-7 amps during that time.

    Anyway I won't be turning on the OnlineRsRecalc switch ever again during FW or MTPA being enabled. Perhaps that combination can lead to generating high voltage on phase A since NexFET has 400 amp pulse peak. If anyone needs to know about cold fusion power generation the white blinding light lasted for at least 5 second burn time. The drv8320 gate drive traces leading to phase A NexFET are burned off the PCB. 

    I'd really like to get a TI store credit to purchase another and return the BoostXL-DRV8320RS unit ASAP.

    Thanks

  • We don't recommend to implement OnlineRsRecalc if the FW or MTPA is enabled in this lab, and there is no such steps to show this operation as you did in guide as well. 

    The DRV8320RS and the control code should have over-current protection to turn off the PWM output in the example lab, that should avoid the board to be damaged even though you did this operation to enable OnlineRsRecalc and FW simultaneously.

    You might try to contact the TI eStore supporting to see if you can return this board and get a new one. 

  • Yanming Luo said:
    We don't recommend to implement OnlineRsRecalc if the FW or MTPA is enabled in this lab

    Perhaps this should be documented since OnlineRsRecalc enable switch is part of lab13.js. Why would we not enable  OnlineRsRecalc as instructed in lab10? It recommends add into loop for countermeasure wire/stator temperature changes? TI engineers fail to practice in lab13 what it just preached being vital in lab10 is somewhat hypocritical is it not?

    The text infers the we should make a call to this subroutine during the ISR loops. OnlineRsRecalc text has no place even for MTPA, seems a high reach contrary to the stated facts!

    Yanming Luo said:
    The DRV8320RS and the control code should have over-current protection to turn off the PWM output in the example lab

    I have informed c2000 forum several times PWM outputs remain high even when DAC force tripped the results are the same. We don't have this problem on EKTM4C1294NCPDT PWM module and are quite knowledgeable of how PWM faulting should behave. Again the x49c SW driver lib has some kind of bug or errata exists in the trip zone sub module. The PWM A/B output should become low when forced to disable, not stay high. Yet the motorVars.faultNow.bit often has/had nFault flag bit set and no RED fault led ever came on drv8320rs and the inverter drives remained high state. That is not proper fault handling!

  • Looked over kit well before purchase and post question drv8320rs forum about NexFET warning. Also check burned PCB today and there are 10nf caps on each Vin. Yet the second warning suggest snubber should have been installed at factory to this kit. At minimal the fault system must drive PWM outputs LOW during fault conditions and latch Tz2 via drv8320rs configured nFault retry but does not on this kit board, perhaps not others?

    (1) Up to 42-V input use one capacitor per phase, MLCC 10 nF, 100 V, X7S, 0402, PN: C1005X7S2A103K050BB from VIN to GND return. Between 42-V to 54-V input operation, add RC switch-node snubber as described in the Electrical Performance section of this datasheet.

    2.1 Hardware Connections Overview – DRV8320RS + TMS320F28004xC The BOOSTXLDRV8320RS is designed for an input supply from 6 to 54 V and up to 15-A drive current.

  • Yanming Luo said:
    We don't recommend to implement OnlineRsRecalc if the FW or MTPA is enabled in this lab, and there is no such steps to show this operation as you did in guide as well.

    Lab13 includes Lab10 lower functions on purpose so users can enable OnlineRsRecalc for current angle to be made more stable PM/IPM motor. Otherwise incorrect inductance leads rotation angle encroaching higher MTPA loop and rotor become unstable as it did. Rapid inductance change seems to follow current rises wire heats up, resistance changes.

    Yet still no rotor speed up and  rotor only has stable PI speed versus crashing FW loop when OnlineRsRecalc was NOT enabled. It seems there is a timing issue in FW/MTPA loop that leads to secondary crash of RsOnlinecalc, is my take on the situation. Typical plan would require to enable OnlineRsRecalc during MTPA/FW loop as the recommended procedure. Lab10 states should be added for all running motors to maintain correct inductance, e.g. Fig.76 in mainISR ROM loop!

    Step 5. To run the motor with FW and MTPA functions:

     To enable FW, set “motorVars.flagEnableFWC” to “1”.
    o Tune control parameters for FW by setting motorVars.Kp_fwc, motorVars.Ki_fwc, and motorVars.angleMax_fwc_rad.
     To enable MTPA, set “motorVars.flagEnableMTPA” to “1”.

  • As the introduction in both InstaSPIN lab and user's guide, instaSPIN-FOC only supports Rs online re-calibration if the motorVars.flagEnableRsOnLine is set to 1. We don't mention that InstaSPIN-FOC can support online inductance calibration.

    As replied to you above. Generally, the Rs online re-calibration has to inject a changing Id and FWC needs to inject a negative current always, both features are not implemented at the same time in most cases. We will add such notes in the late lab guide. Thanks!

    BTW, the FWC only works when the conditions are met even though you enable it. As replied to you, the lab should work well even though FWC, MTPA and Rs_online are enabled at the same time. We can't repeat the problem you mentioned above.

  • Yanming Luo said:
    BTW, the FWC only works when the conditions are met even though you enable it. As replied to you, the lab should work well even though FWC, MTPA and Rs_online are enabled at the same time. We can't repeat the problem you mentioned above.

    They did not stay enabled at the same time as RS went offline when FW was enabled. The SW flow seems to have only worked once, RS online did not disable on second attempt after FW was enabled. This was being done when the motor speed was only 150Hz. The generator would produce >60v if commutation was interrupted for several microseconds.

    You would have to hook drv8320rs to our motor to see it burn up. Small motors do not produce the same emf of a larger PM rotor. What seems to have occurred is voltage >60v broke down the NexFET shorting it out. The NexFET snubber circuit IS required but was ignored by production QC! 

    Yanming Luo said:
    We don't mention that InstaSPIN-FOC can support online inductance calibration.

    Yet the wire resistance is a part of inductance value and text infers LC being effected by temperature changes in the stator wire. As the wire heats the inductance decreases, result of higher wire resistance. Hence the need to recalculate so LC is then updated for FAST estimator (user.h) static value has changed!

  • More work needs to be done in SDK labs software to make them higher quality, robust for industrial designs without entire code rewrites by the customer!  ST seems to have that worked out in their motor SDK producing code from the GUI.

  • Add simple patch into lab 13 to stop mayhem from destroying drv8320rs & NexFET.

                /* Do not enable FW/MTPA with RSOnline enabled  */
               if(motorVars.flagEnableRsOnLine == false)
               {
    				//
    				// enable/disable Field Weakening Control (FWC)
    				//
    				FWC_setFlagEnable(fwcHandle, motorVars.flagEnableFWC);
    
    				//
    				// enable/disable maximum torque per ampere control (MTPA)
    				//
    				MTPA_setFlagEnable(mtpaHandle, motorVars.flagEnableMTPA);
               }

  • The odd part of mayhem being internal drv8320rs VDS gate drive fault system did not disable the PWM drives as expected. Previously noticed nFault drive pin condition viewed from GUI was configured (retry on fault) versus OSHT. Order of mayhem 1st being NextFET shorted and drv8320rs kept driving NexFET gate several seconds, 2ndly driver catches on fire FR4 burns. And 3rdly the NexFET lifted off the PCB then goes bang. 

    Perhaps drv8320rs gate VDS fault detect should have disabled all 6 gate drives as gate current exceeded >2 amps. Instead it obviously kept driving a shorted NexFET when it should have known better no matter what the target was doing! 

  • You might change motorVars.dacValH and motorVars.dacValL using the on-chip comparators to limit the phase peak current of the motor. And you need to change drvSPI8320Vars.Ctrl_Reg_05.VDS_LVL if you want to use the nFault from DRV8320RS.