Go Down

Topic: PWM H-Bridge circuit (Read 32605 times) previous topic - next topic


I have attached an H-Bridge circuit. I chose those Mosfets because I have them on hand. Does anyone see issues in using them together? They are both 12A,100V but one specifically says Logic Level optimized for 5V Gate drive. If this is an issue what would be good to use for a 12V and I guessing 9A power window motor form a car. I have been trying to do my homework on learning about motor drivers but I am still unsure. Should I be using a transistor or something between the inputs and arduino pins or is it that easy? I dont want to go and buy a $100 motor controller because of cost and the learning curve.


You're OK on the N-channel MOSFET's but the P-channel MOSFET's need 12V on the gate to turn them off, and your Arduino will only output 5V.

I recommend an H-bridge driver chip like the TC4428 to act as an interface between the Arduino and the MOSFET bridge.

Also, using 12A MOSFET's for a 9A motor means the MOSFET's are probably going to get pretty hot (the "12A" number is the one the manufacturer specifies as an absolute worst-case cook-your-eggs-on-it type of number).


Are there any good resources for sizing Mosfets to H-Bridge circuits?


How is this? I'm still not exactly sure how to size the fets. I got these form someone using a similar motor (around 10A). But they are rated for 8 and 6.8A. My motor isn't marked but I found documentation that leads me to believe that it is 2.8A no load, < or = 9A, and 28A stall. The app will not require heavy loading and will probably never run at full load or speed. Also have I used the driver properly?


Without heatsinking, my general rule of thumb is to keep power dissipation of TO-220 packages to 1W or less. Find the Rds(on) (i.e., on-resistance) value for your MOSFET's, then compute their power dissipation as P=I*I*R where I is the maximum current they will carry. For example, your RFP12N10L has an on-resistance of 0.2 ohms (pretty high for a MOSFET, actually), so at 9A it will dissipate 81*0.2=16.2W of heat. That is not good. I have some MOSFET recommendations here. The NDP6060L, for example, has an on-resistance of 0.025 ohms so will dissipate 81*0.025=2W which is much more manageable, and should be OK if you add a heat sink.


Not quite...you want one output of the TC4428 to be connected to the same "side" of the H-bridge. Because if the output is high, that means the P-channel MOSFET will be OFF and the N-channel MOSFET will be ON.

Also note the TC4427 and TC4426 are in the same family and offer some options with regards to true/complemented outputs.


I chose the NDP6020P for the p-channel both are logic level type mosfets. So do I still need the driver or will it still be good to reduce noise from the motor. Also are there any good resources on sizing caps to use with the motor?


You do not need a logic-level FET for the P-channel ones because their gate voltage will swing from 0V to 12V. You do not need logic-level FET's for the N-channel ones either if you are going to use a gate driver like the TC4428.

I would keep the TC4428 (or similar) gate driver because FET's with high current handling and low on-resistance will generally have large gate capacitance, which is difficult to drive from a microcontroller and can even damage it over time due to high peak currents.

VDD for the TC4428 should be 12V, not 5V.

I would recommend pull-down resistors at the inputs of the TC4428. In case the Arduino outputs float, you don't want both TC4428 outputs turning on at the same time (that will destroy your MOSFET's very quickly).

There should be a capacitor close to the TC4428 (1uF ceramic or so). A "big" capacitor for the motors....that is less well determined. Some capacitance definitely helps, but I don't know of a definite sizing guide. I generally throw something like 220uF-330uF there.


Here is Rev:4. I appreciate the help I'm a mechanical engineer and I'm still learning alot of electrical principles.  


C2 and C3 are in the wrong place...you need just one 1uF capacitor from VDD to GND for the TC4428. You don't want any extra capacitance on the outputs of the TC4428.


Thank you i will change that and give it a try.


I am pretty sure the power window motors I have seen for sale have been described as "limited duty cycle".  A reduced duty cycle would also reduce your transistor heating...  


The TC4428 has 1 inverting output and 1 non-inverting output. Your schematic shows that you are switching both the HIGH/LOW side fets with the same output. This will create a temporary shoot through state each time you switch that side on/off (as the voltage in the 4428 changes, there will be time when both the N-channel and P-channel will be at around 6-8 volts which will cause both fets on the same side of the h-bridge to be partially open at the same time). Using PWM will multiply this problem. You should use 1 tc4428 to drive each side of the bridge. Input A is Inverting, you should drive the P-channel fets with this, Input B is non-inverting to drive the N-channel fets. You can then tie in both inputs into a single control pin for 2 wire operation. IE, turn on control A, and you will turn on the N-channel of the left side, and the P-channel of the right side (and vise versa).  I will post a schematic that I use when I can.

I am using the FQP47P06 P-channel fets with good success, but they also make a complementary N-channel with or without a logic level gate:



here is a rough schematic... minus the capacitors and such. This turns on opposite legs of the H-bridge on at the same time thereby avoiding the shoot through condition.

Edgars K?rkli?š

Here are some realy good materials - about Field effect transistors, their characteristics (current, thermal..utt.) and "H-bridge's" building with them....

First time on Arduino forum :P sorry for double post - I need 1 "normal" mesage, to be able to post links

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131