TI E2E Community
Motor Drivers Forum
DRV8301 faulting immediately on start-up
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?
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.
Motor Drive Application Manager
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:
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?
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.
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.
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
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
// Call the flash wrapper init function
// Waiting for enable flag set
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?
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.