H Bridge Troubles

Thread Starter

mclaughlindj1

Joined Jul 26, 2012
3
Hello, I'm in process of creating my first h bridge and i am having some difficulties. I have already fried a transistor or two so I think I may need some assistance.

I'm trying to run a 18V drill motor off of an 18V Li ion battery using an Arduino, N Channel MOSFET bridge, and an Allegro A3941 bridge driver.

I checked and validated that everything is correct on the Arduino side, and made sure the wiring is the same as the schematic (attached).

I checked the gate voltages and the high side default to 18V and the low side to 0V. The 0% PWM is supposed to be 'brake', but I thought that 18V wasn't enough to saturate the MOSFET.

The last time I ran the circuit, I pushed the button to run the motor and it had difficulty trying to run. I'm not sure if this is because I was trying to use jumper wires with a drill motor. I pushed the same button again for a few seconds and the low B side transistor went up in smoke. This transistor was supposed to be held open during the PWM. Also, the high B side transistor was very hot as well.

I would appreciate any help that you could give me.


I have attached the data sheets for the N channel MOSFETs and bridge driver I used as well as my wiring diagram.
 

Attachments

crutschow

Joined Mar 14, 2008
34,460
What "button" did you push? That circuit needs a PWM oscillating signal for the bridge driver to generate the bootstrap high gate voltage to turn on the top MOSFETs. What PWM signal do you have (if any)?
 

Thread Starter

mclaughlindj1

Joined Jul 26, 2012
3
I have two tactile buttons on my breadboard. One sets the direction of the motor forward and the other in reverse by changing the PHASE from high to low. Both buttons will PWM their respective high side gate and open the opposite low side gate thru the Arduino and driver.

These inputs were sent to the driver.
SR: high
RESET: high
PWML: 255
PWMH: 50
PHASE: high
 

Thread Starter

mclaughlindj1

Joined Jul 26, 2012
3
The PWM pins operate at 490Hz. The Arduino analog output operates between values of 0-255. 0 being 0% duty cycle and 255 being 100% duty cycle.

The lower gate is to be completely open (100%,255) while the upper gate is switching (20% duty cycle, 50).
I arbitrarily picked the 20% in my code.
 
Top