# MOSFET switch circuit design feedback

I would like to have some feedback on this circuit.

• V1: 0,6A Solenoid
• V1_LED: Arbitrary small LED
• V1_IN: Input signal from Arduino (3.3V, 20mA)

Should I change something?

Is the IRLML2502 suitable? Is there a better choice?

Edit:

• The circuit itself looks good, I see nothing extraneous or needed. About the IRLML2502, what information do YOU have on it? What is its current rating? can you link to a datasheet? Keep in mind when asking questions that you are asking for a favor, you should be showing you've done all the research you can before asking others. – ambitiose_sed_ineptum Oct 13 '16 at 22:13
• What is the role of Q1/R8? – Majenko Oct 13 '16 at 22:59
• ambitiose_sed_ineptum: Sorry, corrected. Mejenko see my comment on answer below. – user3769000 Oct 14 '16 at 5:08

I would:

1. Ditch Q1/R7/R8/D2
2. Drive Q2 direct from the Arduino (maybe with a small resistor to limit inrush current, though not so large as to slow down the switching needlessly)
3. Use a pull-down to GND on the gate
4. Choose a MOSFET with a low enough $R_{DSON}$ at 3.3V
5. Make sure I chose a MOSFET that could happily dissipate enough heat for the current through it.

simulate this circuit – Schematic created using CircuitLab

(Depending on thresholds you may want to move the 10K pull-down resistor to the left of the gate resistor, but it generally doesn't really make any difference. It's only there to keep the FET turned off when the GPIO pin is floating at boot-up.)

Looking at the datasheet it looks like the MOSFET you have chosen may do the job. At 2.5V $V_{GS}$ the $R_{DSON}$ is (typically) 0.05Ω. With 0.6A through it you have 0.018W, which is much less than the 1.25W limit at 25°C.

• Ah, didn't think of that. Was adapting a general MOSFET switch circuit from a google search. Regarding the proposals. Does this provide enough protection for the arduino from voltage spikes? D2 is recommended in other threads for this purpose. – user3769000 Oct 14 '16 at 5:16
• In your circuit Q1/R8 forms an RTL NOT gate running at 12v. That would be fine if a) you wanted to invert the logic of your switch (normally on, drive yiur output HIGH to turn off) and b) the threshold of Q2 was too high to directly drive with 3.3v (e.g., a big 100A power FET). By directly driving the fet from the Arduino you get better isolation than driving a BJT pulled up to 12v since there is no connection to the 12v part of the circuit at all (the gate is like a capacitor). It looks to me like you have taken the classic P-FET high side switch circuit and confused it with the classic ... – Majenko Oct 14 '16 at 8:04
• ... P-FET low-side switch and ended up with something odd. If Q2 were a P-FET and your load between the FET and ground then it would make sense. R8 would hold the gate high keeping the FET off, and Q1 would pull it low to turn it on. – Majenko Oct 14 '16 at 8:06
• Thanks for the answer, but I don't understand the difference in principle from "my" circuit to the one proposed in the answer in this one. electronics.stackexchange.com/questions/124972/… – user3769000 Oct 14 '16 at 15:49
• The first line of that answer is the critical one. When being bitten by the threshold voltage, an option is introducing a simple voltage amplification stage using a NPN BJT. - That circuit is to switch a FET with a higher threshold voltage like I mentioned in my comments. If you need to drive a MOSFET that has a higher threshold than your logic signal then you can use a BJT to switch a higher voltage to switch the FET. If you don't need to use such a MOSFET (which you don't) then why would you bother wasting money on the extra components? – Majenko Oct 14 '16 at 15:58