On-by-default P channel MOSFET

Hi all,

I feel like I'm having somewhat of a mental block this afternoon, I'm looking for a way to have a high side switched P-FET on by default.

Most drive circuits of course will have a pull down on the driving BJT to ensure that the circuit is off before any controlling MCU powers up, however - I need the FET to be ON by default, i.e. on before the MCU powers up.

Any ideas?

Have a pull-up on the base of the BJT.

Is the power supply for the P FET greater than +5V?

You need a pull down resistor, that will ensure it is always on.

But if you put a pull-down on the pFET you can't programmatically turn it off!

5V pull up to the NPN BJT base, whose collector wired to the p-FET gate (which
has its own gate-source resistor of course).

MarkT:
But if you put a pull-down on the pFET you can’t programmatically turn it off!

Yes you can if the gate is connected to an arduino pin which powers up as an input and so floats with the FET on. Then you change the pin to an output and turn it on and off by putting the pin LOW and HIGH.

I wasn't assuming the high-side voltage being switched was 5V - the presence of a BJT
suggested it might be higher.

So if the attached image was being used how would you change it to have the PFET be on at power up?
The Arduino would be connected to the input.

So if the attached image was being used how would you change it to have the PFET be on at power up?

Take the end of R16 connected to ground in that diagram and connect it instead to +5V. I would make its value 10K instead of 1K.

Grumpy_Mike:

So if the attached image was being used how would you change it to have the PFET be on at power up?

Take the end of R16 connected to ground in that diagram and connect it instead to +5V. I would make its value 10K instead of 1K.

I've got this schematic working no problem now - however, why is a BJT always used? Why not an n-channel FET, as then devices that come in a complementary N + P pair could be used?

Is it a technical, or typically cost driven choice?

The BJT is needed to switch the required gate voltage (12V) when a standard MOSFET is used as a power switch. If a "logic Level" MOSFET is used then it is likely you can omit the BJT and replace it with a pulldown since the gate (full on state) can be reached at 5V which is what makes it a logic level MOSFET. (Notice my desire to avoid technical jargon). A small signal bjt can usually be purchased for less than $0.03 (3 cents) and is "good enough" to solve the problem. There is not huge reason a 2N7000 could not be used in place of the bjt... but they still cost more.

Now, if you had a logic level P-Channel mosfet you would only need a 10K or higher pulldown... unless you still wanted/needed the logic inversion (1 becomes a 0 and 0 becomes a 1), you would still keep the BJT... or just do the inversion in your code. Using the BJT in this circuit you have what is called a logic "inverter". When the arduino pin is Logic "1", the collector is pulled toward GND potential... making the gate voltage low... making the MOSFET turn on. When the BJT is off, the gate voltage goes high (towards 12V via the pullup resistor) and shuts off the flowing current to the drain pin.

Note: I feel that the 1K Pullup and 1K pulldown are really too low a resistance value here... making this circuit use more current than needed.

Very good.

2014-02-25_10-28-16.jpg