Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have built an h-bridge from 4 MOSFETS (PHP21N06LT) shown below. This bridge is used for motor speed control in either direction and fast stop. I have a dev board with C8051F020 microcontroller on board. I have noticed that if I provide 6V to the gate of the mosfets the motor runs much faster than providing 3.3V (same as output from microcontroller GPIO) to the gate and the motor does not run as fast.

enter image description here

I need to somehow pull up the gate voltage to 6V when microcontroller GPIO goes high and vice versa. I tried the circuit below but it does not do what I intend to do.

enter image description here

Am I going in the right direction? Can someone suggest something?

share|improve this question
In what way does the circuit not do what you want? You should have a series resistor on the base (something like 4.7K would do) but it should work. – Spehro Pefhany Feb 11 '14 at 22:41
@SpehroPefhany I think he means that the logic is inverted. With his last setup, the MOSFET gate goes to GND instead of 6V when the GPIO goes up to 3.3V. I think he needs a high side drive to invert the GPIO logic connected to the BJT base. – Ricardo Feb 11 '14 at 22:50
@SpehroPefhany, I reckon I did something wrong while connecting on breadboard. It works but as Ricardo puts it the logic is inverted. It would be good if the logic stayed logical and when 3.3V is supplied to the transistor the LED turns ON. – David Norman Feb 11 '14 at 22:55
@Ricardo, you are right, the circuit works now but I need the logic to 'not' be inverted – David Norman Feb 11 '14 at 22:56
invert the gpio that drives the upper transistors via the NPN BJT. – Andy aka Feb 11 '14 at 23:13
up vote 2 down vote accepted

You could just cascade two transistors like this:


simulate this circuit – Schematic created using CircuitLab

Ah I see you're using n-channel MOSFETs on the high side .. If true you either need more than the bridge supply by 5V (depending on the MOSFET) or to use p-channel MOSFETs on the high side.

share|improve this answer

The low side mosfets will work fine with 6v to the gate but driving the upper mosfets with 6v is going to cause problems.
In a N-mosfet bridge, driving the upper mosfets with the same voltage level as the drain voltage (6v in this case) will overheat them because they will operate in a semi-conductive state.

When you apply 6v to the gate of the upper mosfet then you apply a Vgs of 6v BUT as soon as the mosfet starts to conduct the voltage at the source rises (becomes more positive) and as it rises Vgs gets lower and lower (since Vgs is referenced to the source and not the ground) until the mosfet reaches a balance. That balance point is related to the Vgs-th and will keep the mosfet in a half open state.
There are two forces that keep this balance, if the mosfet tries to conduct more then the source will become more positive and Vgs will decrease, if on the other hand it tries to conduct less then Vgs will increase.

To avoid this problem with a N-mosfet as a high side switch you must either use an isolated power supply that will be applied between source and gate and will add over the existing voltage or a higher voltage from the one that is connected to the drain (if not available it can be generated with a bootstrap circuit).

Since you have 6v to the gate it would be a good idea to use about 6v+5v to the gate of the upper mosfets. A 12v source would be very convenient if available.

Another option is to use P-mosfets as high side switches in the bridge.

A level translator using a single transistor (non inverting action) is like:


simulate this circuit – Schematic created using CircuitLab

And there is also the mosfet solution (also non inverting)


simulate this circuit

share|improve this answer
Thanks for your answer. I do not have a 12V. A question about the second circuit. When you are supplying 3.3V to the gate of the mosfet (M2) isn't it conducting all the time thereby switching on mosfet M1? or am I looking at it the wrong way? – David Norman Feb 12 '14 at 19:00
@DavidNorman When the MCU I/O is 0 then Vgs=-3.3v so M2 turns on and pulls the M1 gate down to 0 (off). When I/O is 3.3v then Vgs=0 so M2 turns off and M1 gate is pulled high by R6, this turns M1 on. – alexan_e Feb 12 '14 at 19:06

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.