Part Number:DRV8320
Hello everyone,
Thank you for taking the time to read this post. In short, my problem is that I cannot my sensored brushless DC motor to spin with the DRV8320S chip. I have already gone through around 4-5 chips (exploded due to various settings I set), and at this point it is getting very frustrating to get anything to work. Let me describe to you in point form what I have done, and when my result is.
This whole testing is being conducted on a breadboard. Before jumping to conclusions, at one point in time I had my motor spinning on this breadboard. The only difference, was that it was being powered by a DRV8320H chip, not the SPI (S) version. At some point in time that configuration stopped working (while I was making the conversion over to the SPI chip version).
SO here we are. I am powering everything with a 35v source 5a power supply. I have over 1000uF of bulk capacitance between my ground and VM lines. I use the required ceramic capacitors for the circuit, as indicated on the DRV8320 datasheet, page 22, figure 11. My motor is connected as it should be to the SHA, SHB, and SHC lines.
The DRV8320S works flawlessly with SPI, everything from setting registers, to reading registers. In my code, I write to all registers twice to make sure that the SDO on the second write is the same as SDI (data in the current register is shifted out when new data is written). This is the case.
These are my setting for the Chip:
//Register 3
SPI0DAT = 0b0_0011_011; //first 8 bits
SPI0DAT = 0b0010_0010; //next 8 bits
waitms(1);
//Register 2
SPI0DAT = 0b0_0010_000;
SPI0DAT = 0b0100_0000;
//Register 4
SPI0DAT = 0b0_0100_101;
SPI0DAT = 0b0010_0010;
//Register 5
SPI0DAT = 0b0_0101_0111;
SPI0DAT = 0b0110_1001;
Basically as my N-Fets are very low Rds (0.018 ohms), I can get away with using a pretty low drive current. I use 1x PWM mode as I have the feedback from my motor hall sensors (which output correctly).
The chip reads no errors until I turn on the PWM (the signal is 40% duty cycle at 10khz from a 3.3v pin). The motor makes a brief small noise during the time (1/4 second), and then stops making the noise and the chip faults. At this point I get an error on register 0 and 1. Register 0 reads 0b0000010110000000 (FAULT, GDF, UVLO) and Register 1 reads 0b000000000010100 (VGS_LB and VGS_LA).
When I scope the pins of my mosfets (for the frist 1/4 second while it makes noise), I get the following: GHA = 35v GSA = 35v , GLA = 0v then some time passes after which GHA = 0v GSA = 0v , GLA = 12v and then back to GHA = 35v GSA = 35v , GLA = 0v.
I do not know what my problem is. Please help.