P-channel MOSTFET as a high-side switch of a low current load?

I've been using P-channel MOSFETs for high-side switches without problems in many Arduino projects (source connected to +5V and drain connected to the load). However, in a recent project I ran into an issue with this set-up.

The difference this time is that the load current is much smaller, 10uA rather than 20-100mA I usually switch, but it might temporarily shoot up to some mA for short bursts of time. I looked at the output voltage from the FET with an oscilloscope and when the gate goes low to turn on the FET, the output does not go up to 5V and stay there as I had expected, instead it seems to be fluctuating between 2-5V really fast or something like that. I tried connecting a 10Kohm resistor in parallel to my load but that did not solve the problem. Any ideas what could be causing this and what can be done to fix the issue?

Show us a good schematic of your circuit.
Show us a good image of your ‘actual’ wiring.
Give links to components. Posting images:

A schematic would not help in this case. I have a digital pin connected to the gate, the source is connected to 5V, the drain is connected to an IC (load) that is connected to ground. The IC is drawing 8uA in resting mode but can draw more at times. The question is this: Do I need to make special arrangements for a high-side switch if the current is very low? I plan on isolating the issue with some resistors and study the signals vs. time to see if I can replicate the issue. Anyone had this problem too?

“ A schematic would not help in this case. ”

Helps us visualize your application.


8uA. Have not tried to switch a load this small.

Do some experimenting.

Try 220R in parallel with the I.C., do things work okay ?

Use a MOSFET like AO3401.

Yes, I plan on doing some testing to isolate the issue. 220ohm is a good idea (force more current). At first I will substitute the load with high value resistors to ensure that I have a fast switching time and then study the voltage over time. I just wanted to see if I am running into a well-known issue. Seems not and that in itself is a good help as it should work then (I was not sure about that). Thanks!

Which MOSFET are you using ?

I did some quick test with a PNP transistor too that I thought had the same issue. But I am going to revisit that and do experiments with both bipolar and FET transistors too see if there is a difference in switching these small loads. I will share all details in a later post. Until then, please chime in if there is a common issue in these type of applications that you are aware of. Thanks!

No running a low current will not be a issue all unto itself

I suspect your connections are in error or the FET might bad. Can you provide the FET partnumber?

Ran some tests with resistive load i.e. 499K and 5V supply, P channel MOSFET A03401.

All looks as it should.


As before, lets see your wiring :wink:

Across the 499k load.

Yes, you're pulling-up the Gate, larryd.
(No previous mention of that.)

the output does not go up to 5V and stay there as I had expected, instead it seems to be fluctuating between 2-5V really fast or something like that. I tried connecting a 10Kohm resistor in parallel to my load but that did not solve the problem.

Disconnect the arduino, put the 10k from the gate to ground. If the device is functioning the drain should be 5V.

Lot's of good info. I will run my experiments and report back tomorrow. But I think the last comment hit the nail on the head. I am currently not pulling up the gate as I see the problem happen when the gate goes to 0V (turns on). But perhaps that will make a difference after all. I should have tried it as I usually add pull-up/down resistors but here I did not think about it. It is worth trying at least. Good points. Thanks again!

R1 discharges gate; makes no difference for my test as the Arduino goes 5v to 0v.


If the OP is not using a similar driving cct. then the gate may never be discharging, i.e. MOSFET never turns off.


“ A schematic would not help in this case.”

But we don’t need to see the schematic or wiring, go figure . . .

Why that tone? I have read posts about this type of treatment elsewhere which I am sure you have too. This place don't need those type of comments if you ask me. You are very friendly with all your help. But please treat others with respect. Thank you!

Maybe you should try being more cooperative and less critical when seeking free advice from complete strangers.
You DO realize we don't have to answer your question ? If you are going to criticize us why should we ?

“ Why that tone? I have read posts about this type of treatment elsewhere which I am sure you have too. This place don't need those type of comments if you ask me. You are very friendly with all your help. But please treat others with respect. Thank you!”

Assume you have seen: https://forum.arduino.cc/index.php?topic=712202.0


Looks like you have been here a while and know there is posting etiquette that is expected.

When asked for information, the response we got was “A schematic would not help in this case.”

At a minimum a schematic, and when it comes to Arduino, copy of a sketch should ‘always’ be supplied.

We cannot see what hardware/software new people are referring to, that’s why we ask to see what you have.

Shutting us down when we ask for information places road blocks in front of those very volunteers that are trying to help you, volunteers you are asking for help from.

There are examples every day that can be solved quickly if only the OPs would follow posting rules.

Not defining a situation causes responder after responder asking for the same needed information, it makes us guess what you are doing.

As with most here, I will go a long long way to help answer questions, as seen in this post.


It should be pointed out that keying a HIGH Z load is not any different than any other load.

MOSFETS can drive loads from DC to the MHz.

MOSFETS need to be properly connected to get them to provide the results you expect.

Also, if your I.C. has a decoupling capacitor, this can result in unexpected observations.

amaruk:
I've been using P-channel MOSFETs for high-side switches without problems in many Arduino projects (source connected to +5V and drain connected to the load). However, in a recent project I ran into an issue with this set-up.

The difference this time is that the load current is much smaller, 10uA rather than 20-100mA I usually switch, but it might temporarily shoot up to some mA for short bursts of time. I looked at the output voltage from the FET with an oscilloscope and when the gate goes low to turn on the FET, the output does not go up to 5V and stay there as I had expected, instead it seems to be fluctuating between 2-5V really fast or something like that. I tried connecting a 10Kohm resistor in parallel to my load but that did not solve the problem. Any ideas what could be causing this and what can be done to fix the issue?

Power MOSFETs have significant leakage currents, measured in microamps.

For a small load like this a PNP switching transistor is a better choice, leakage measured
in nanoamps.

MarkT:
Power MOSFETs have significant leakage currents, measured in microamps.

For a small load like this a PNP switching transistor is a better choice, leakage measured
in nanoamps.

Thanks for all your inputs! I have done some experiments and I think the main issue was bad contact in my breadboard... as the problem seemed intermittent. However, I did experiment with both MOSFETs and bipolar transistors and just to make sure the issue was not related to my FETs I changed my design to use a bipolar transistors instead (I had an N-channel and a P-channel MOSFET before). It is not a low-power design so it works great (I am using a 2N2222 NPN instead of the N-channel MOSFET and a 2N2907 instead of the P-channel MOSFET). By using the bipolar transistors with 500 ohm base resistors it all seems to work great.
Lessons learned here: Switching a high-impedance load is not harder than a regular load (that was my main concern). Bread-boards might give head-ache at times, and using NPN/PNP transistors is a better choice in this case as I am not aiming for low power consumption or switching high currents. Thank you all!
Yes, I have been here a while and I know that most issues can be solved by looking at a schematic. Having said that, this thread is about switching a high-impedance load in general and what to watch out for. Nothing it seems which is great! That helped me track down the problem as I was not sure about that.
If anyone is curios to what I am designing I can tell that it is an EEPROM programmer. The IC I am programming is not using a lot of current (Io=10uA) but the burn-in process might draw much more in short bursts which had me worried that internal capacitances or even oscillations could be the problem. I am glad it was not. Thanks again!

larryd:
Use a MOSFET like AO3401.

I just wanted to add that the point about the FET itself is a good one for many reasons. As I had mentioned in an earlier post, I decided to use a PNP transistor instead (just in case) and everything works just fine now. The FET I had used before was the IRF5305 which is not a logic level FET but I works great in many 5V applications anyway with an extremely low on-resistance (<0.1ohm). However, the FET mentioned here, A03401, while it might be superior in many aspects, I can’t find it in anything but surface mount versions. That is too bad or I would have purchased some for future projects. I prefer not to use surface mount components unless I really have to as they must be soldered to a PCB module first (can be done but not easy).

amaruk:
I just wanted to add that the point about the FET itself is a good one for many reasons. As I had mentioned in an earlier post, I decided to use a PNP transistor instead (just in case) and everything works just fine now. The FET I had used before was the IRF5305 which is not a logic level FET but I works great in many 5V applications anyway with an extremely low on-resistance (<0.1ohm). However, the FET mentioned here, A03401, while it might be superior in many aspects, I can't find it in anything but surface mount versions. That is too bad or I would have purchased some for future projects. I prefer not to use surface mount components unless I really have to as they must be soldered to a PCB module first (can be done but not easy).

Do not let SMDs scare you off.

See these posts:





FYI

Attached is a PDF of some MOSFETs I use:


Some 800 posts that you might find interesting:

Logic Level MOSFETs 20 07 17.pdf (1.32 MB)

larryd:
Do not let SMDs scare you off.

Yes, I think I will give the SMD's a try one day. I just got a better soldering station but things that small seem scary...
Anyway, for those interested I have now completed my project. It is now using a PNP transistor instead as proposed here. Thank you! Here is a link to a short write-up of the project (Arduino based EEPROM programmer):