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 faulting immediately on start-up

Other Parts Discussed in Thread: DRV8301, CONTROLSUITE

I am experimenting with the DVR8301-HC2 kit.  I was able to work my through the basic GUI and then the Build steps with the code getting my motor to spin at the right steps. I started to add some code to the existing BLDC_Int project to read the potentiometer to set the speed.   I started getting a driver fault as soon as I enable the motor.  All the fault bits report "1". I've gone back to the stock code and I get the same result. I've done numerous power cycles to the same effect.  So it looks like I did something to the DRV8301 driver.  I am kind of baffled by all of the faults being set, unless this just means the driver chip has been damaged.  Where should I start looking to confirm what happened?

  • Joe,

     

    If you go back to the original code that shipped with the EVM and GUI, do you have the FAULT problem?  If so, I would say the chip might be damaged.  

     

    What is the revision of your board?  We originally distributed some REVB versions of the board that were sensitive to GND noise on the DVDD and AVDD decoupling and FAULTs would occur.  We add "blue wire" fixes on the board.  If you have a REVC version, the PCB was fixed to address this.  

     

    Finally, please check that you have a delay between ENABLING the DRV8301 with EN_GATE and sending PWM commands.  This is specified in the datasheet as 10ms.  If you do not wait this amount of time, faults can occur.  

     

     

  • Ryan,

    Thanks for the response. I went back to the original code and have the fault occurring,  I check the revision of the board it appears to be a rev C board per the silkscreen on the top of the board.

    I verified that the the stock delay is still present.  currently the delay is 10ms.  I even increased the delay to no effect. The fault LED starts to light as soon as the EN_GATE signal is brought high.  I added some breakpoints and found the following:

    • The fault LED lights as soon as teh EN_GATE signal is brought high
    • checking the return value from the two SPI write calls indicate a fault condition of a overcurrent on FET High-B and FET High-A
    • checking the return value after writing cntrl_reg2, indicates an overcurrent on FET high-A
    • If I let the code run, and force reading of the two stat registers, I see the fault bit set, without any of the other fault bits set in either of the stat registers
    • Sometimes I see the fault bit set, but the status registes do not contain a set fault bit.

    This last set of tests I did not have a motor connected and was doing the build level 1.  I don't understand why/how I am seeing overcurrent faults without a motor attached.

    Any other ideas to look at?

  • Joe,

     

    In control register 1 (address 0x02), what is your setting for bits D6-D10?  This sets your OC level per table 9 in the datasheet.  

     

    Also, we can completely rule out some "false" OC reporting by disabling this protection.  Write D4-D5 = 1 in Control Register 1 (Address 0x02) to disable OC sensing and reporting.  If you are still getting a fault, then we need to look somewhere else.

     

     

  • Ryan,

    The OC limit is switch Vds=.358V (which was the default setting from the original code).  I disabled the OC protection.  The fault LED flickers the I am unalbe to get the motor to spin.  The status registers both read all ones.

  • Joe,

     

    At this point, I would like to try a new IC on the board.  Do you have the tools to replace the IC?  You can order some free samples from our website.  

     

  • How do you view the faults on the drv8301.  Is there an area in the GUI that specifies which problem triggered the fault?

  • use the watch window with real-time mode on

    DRV8301_stat_reg1.all
    DRV8301_stat_reg2.all

  • I'm trying to run through the 7 steps using the PM sensorless project for FOC control.  My program continues to get caught in a while loop (located below) and I don't see how it will ever get out.  How do I set EnableFlag to TRUE?  Do you use the GUI when running from RAM or is that only when running in FLASH.  is there a FOC program that I can load into flash for the drv8301?  Is there any better documentation for running the PM Senserless program (FOC) than "DRV830x-HC-C2_kit" How to Run Guide? 

    // Call Flash Initialization to setup flash waitstates

    // This function must reside in RAM

    InitFlash();

    // Call the flash wrapper init function

    #endif

    //(FLASH)

    // Waiting for enable flag set

    while (EnableFlag==FALSE)

    {

    BackTicker++;

    }

  • read

    C:\ti\controlSUITE\development_kits\DRV830x-HC-C2-KIT_v104\PM_Sensorless\~Doc\Sensorless FOC of PMSM.pdf

    I think your world will get more clear....

  • That helps a lot but after building level 1, I disable the realtime option, rebuild the project (level 2 which automaticle updates the program on the chip because I didn't disconect), reset the CPU, reset the program and then re-enable the realtime option and the real time doesn't seem to work.  Am I missing a step in there?  The weird thing is when I go to disable the realtime option, the watch window appears to update although it says "could not read memory location" next to every variable but I can see the window updating.  I had this problem yesterday and I completely restarted my project over and deleted my workspace and it seemed to fix it for level 1 but when I try to move to level 2, it acts up again.

  • I fixed the problem above by connecting to the target and loading the .out file separetly.  At level 1, I am not seeing the signals output on channel A, B , and C like I should to verify that the signal is indeed outputing before connecting the motor in level 2.  Any thoughts?