# Convert microcontroller 3.3V output to 6V

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. 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. Am I going in the right direction? Can someone suggest something?

• 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. Feb 11, 2014 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. Feb 11, 2014 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. Feb 11, 2014 at 22:55
• @Ricardo, you are right, the circuit works now but I need the logic to 'not' be inverted Feb 11, 2014 at 22:56
• invert the gpio that drives the upper transistors via the NPN BJT. Feb 11, 2014 at 23:13

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.

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

• 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? Feb 12, 2014 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. Feb 12, 2014 at 19:06