Building H-Bridge with MOSFETs - P-Channel question

Hey Guys,

for a school project, I have to build a discrete H-Bridge using MOSFETs to drive a 12V DC-Motor in both directions. I haven't had a chance to measure the motor yet, but I guess starting (and blocking) current will be about 20-30 A'ish and continuous current will be below 5A

It will be used for educational purposes, so it should be as simple as possible. I would like to avoid separate drivers and drive all the FETs directly from the 5V Arduino Nano.

For the low side, I want to use IRLIZ44n, because I already have them here and I've worked with them before. They are real logic-level devices and can be used with PWM. So if i decide to maybe include some smooth start for the motor, I can PWM them on the low side and dont need to care for that on the p-channel side.

I'm looking for p-channel MOSFETs for the high side. Preferably these should be in TO220 packages as well. So far I found these two:

NDP6020P
which is a real logic-level device.
Datasheet:

and

FQP27P06
which is sold by Adafruit and Sparkfun for usage with micro controllers. It is not a real logic level device but has a better source-gate voltage rating for my project (I think).
Datasheet:
https://cdn-shop.adafruit.com/datasheets/1794datasheet.pdf

I never used p-channel before, so I'm really not sure, which ones to get.
In post #3 in this threat link the guy says, that for p-channel MOSFETs the gate level is less important than the source-gate voltage.

So, I really dont know how to decide, can you help me out?

No need to use logic level p-channel fets high-side, because you have 12volt gate drive available there.
The NDP6020 has a max Vgs of 8volt !
Post a diagram.
Leo..

Yeah, thats what I meant. So the NDP6020 will not do, because vgs will be 12V when i apply a low signal to the gate, right?

So you got a reconmendation for high side FETs?

Any p-channel with a low Rds(on) will do.
You might run into switching loss problems with fets with high gate charge.
Keep PWM frequency low if you don't want to use a gate driver chip.
Leo..

I would like to avoid separate drivers and drive all the FETs directly from the 5V Arduino Nano.

So your motor supply is 5V?

Remember that to turn the high side P mosfets off you must give them a gate voltage equal to the supply voltage. An N mosfet and a pullup resistor can do this but I don't know if that violates your "no drivers" rule.

You can't drive 12V high-side p-FETs from a 5V Arduino without some sort of driver - like a NPN transistor
as a level shifter.

Thank you guys for your input. Anyway, there is a change of plan. I need galvanic isolation. So I will have to use opto couples.

I found that, but to be honest, i have no idea, hot the part between the MCU and the bridge works:

So I guess, wenn "C" is LOW, voltage from VCC to the left FET on the HIGH side of the bridge, turning it "OFF" and the lower one "ON".
While, wenn "C" is "HIGH", voltage from VCC is drained through the optocouple and the gates on the FETs discharge and do the opposite? Is that right?

Also, I guess, its not possible to PWM this thing, right?

You have classic problem of shoot-through with that circuit - both top and bottom FETs will be on
for a brief instant during switching and create a big current spike from the supply through them.
I'd drive each FET separately so you can properly sequence the switching with "dead time" between
switching one off and its partner on.

Your circuit claims galvanic isolation but you've shared the same ground in the diagram - I presume
you don't mean that.

Normal opto-couplers (photo-transistor based) are slow enough that PWM isn't going to work except for
very low rates (though the default Arduino PWM is pretty slow, note).

Faster opto-couplers are available for logic speeds, they generally need 5V power on both sides as
they have signal conditioning circuitry for transmitting and receiving to improve the speed. Internally
they use photodiodes, not photo-transistors.

MarkT:
You have classic problem of shoot-through with that circuit - both top and bottom FETs will be on
[...]

Your circuit claims galvanic isolation but you've shared the same ground in the diagram - I presume
you don't mean that.

Yeah, thats what I thought, but with four opto-couplers I could do it? So, with these, I wouldn't need gate drivers, because I could just drive all the the gates from the 12V?

Its not my schematic, its from the webb adress i postet. But yes, i guess the guy didnt mean to have same GND on both sides.

The concept of a H bridge is very simple. That diagram is very simple. Making it really work at non-audible PWM frequency is not simple.

Does this actually have to work for a long period under different conditions? Or do you just demonstrate it to the teacher? If it is demo only then build that circuit.

If you actually do want to use this in a project that will run for a long time then buy a chip like the VNH5019.

Haha, i know there are loads of ICs out there, but my teacher wants it discrete :wink:

Well, its supposed to work for a couple of yeara to open a hatch in a cupboard. Its a noisy room, so its not really important if it makes a PWM sound.

Will 4n35 optocouples work?

Ok, good information.

So why is galvanic isolation important? It will be much more robust with mosfets instead of optos.

You can buy dedicated mosfet drivers that take away most of the gate drive problems. They are able to switch the mosfets very fast and you could probably find a chip with 4 drivers and built-in shoot-through protection.

MorganS:
Ok, good information.

So why is galvanic isolation important? It will be much more robust with mosfets instead of optos.

To be honest, because my teacher says so :wink: I dont think its really necessary, I would use a step down module to drive the Arduino from the 12 Volt PSU and have no galvanic isolation if it was my decision but my teacher insists on having everything neat and tidy separated. To use two separated PSUs and so on..

I will order some 4n35 and some PC817 and see how it works out in real life. Arduinos PWM isnt that high anyway (I hope). I will use FQP27P06 for the HIGH side (There is not to much to choose from when it comes to P-MOSFETs, and these ones seems to be the top seller on mouser).
You guys have a recommendation for the N-MOSFETs? Or can I just stick to the IRLIZ44 even though I will be driving them with 12V?

Yes most or all logic level mosfets can be driven by 12V. Most of them will have a Vgs maximum of 20V. Look for this in the section of the datasheet that says "Absolute Maximum Ratings".

One nice feature of galvanic isolation is that if you blow up MOSFETs you don't risk blowing up the
Arduino as well. The downside is the sluggish response of standard(*) optoisolators.

(*) those with photo-transistor outputs.

Alright, now I got almost all the info I need to make my big order :wink:

I got one more question about freewheeling diodes. Both' FETs datasheets speak about body diode characteristics, so do these have freewheeling diodes built-in? Or should I add external ones as well? If so, which ones? I got loads of n4001 lying around, but I guess 1A is not enough, even though it will be only for a splitsecond, right? Or shoul I go for Zeners (which)?

Power MOSFETs happen to have body diodes as an integral part of their high-current handling structure.

If, and only if, you have a bridge with both high and low-side MOSFETs, each one can be the diode
for the other. If you only have a single switching MOSFET, the load will need a diode across it, since
the MOSFET diode is no use in that situation.

For more efficiency you can add schottky external diodes.

I made a schematic, please dont laugh, its my first time with KiCAD...

I'm not sure about the Resistors between 12V and the GATES. should these be different on the P and N Channel FETs?

Also, how to determine the Value for these Resistors?

You don't need those diodes. Look inside the mosfet symbols to see the body diodes.

The resistors must charge the mosfet inherent gate capacitance quickly enough to support your PWM speed. The gate capacitance is complex but the datasheet should give you a headline number to work with.

Or copy the resistor value from someone else's similar project.

What about the position of the resistor? From what I saw here: MOSFET DC Relays Using Photovoltaic Drivers
the ones on the HIGH Side are right, but on the LOW site, they need to go between GATE an SOURCE, is that correct?

I edited it on the right side in the new schematic, so you can see what I mean.

How would I calculate the value? Datasheets mention "Input Capacitance", "Coss Output Capacitance", "Crss Reverse Transfer Capacitance" and "Drain to Sink Capacitance".

So the gate and the resistor form an RC network, which is bad for fast switching, but what equation gives me the ideal value for R?