1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
---
title: MOSFETs
date: 2025-06-22
author: W. D. Sadeep Madurange
layout: post
---
Recently, I needed a low-power circuit for one of my battery-operated projects.
Much of the system's power savings depended on its ability to switch off power
to components, such as servos, electronically when not needed. That's how I
stumbled upon MOSFETs, transistors capable of controlling circuits operating at
voltages far above their own.
## Acknowledgments
This article is a summary of what I learnt about using transistors as switches.
I'm not an electronics engineer, and this is not an authoritative guide. The
circuits in this post must be considered within the context in which I've used
them. All credits for the schematics belong to <a
href="https://electronics.stackexchange.com/users/292884/simon-fitch"
class="external" target="_blank" rel="noopener noreferrer">Simon Fitch</a>.
## Preamble
For a typical MOSFET-based switch, we can connect a GPIO pin of a
microcontroller to the gate of a logic-level N-channel MOSFET placed on the low
side of the load and tie the gate and the drain pins of the MOSFET with a
pull-down resistor. This would work as long as the power supplies of the
microcontroller and the load don't share a common ground. Things become more
complicated when they do (e.g., controlling power to a component driven by the
same microcontroller).
In that scenario, the source potential visible to the load is the difference
between the gate and the threshold potentials of the MOSFET. For example, when
the gate and the threshold potentials are 3.3 V and 1.5 V, the potential the
load sees is 1.8 V. So, to use a low-side N-channel MOSFET, we need the gate
potential to be higher than the source potential, which may not always be
practical. The alternative would be a hide-side switch.
## P-channel high-side switch
The following schematic shows how a high-side P-channel MOSFET (M1) could
switch power to a 6 V servo driven by a 3.3 V MCU.

When the microcontroller outputs low, the M2 N-channel MOSFET stops conducting.
The R1 resistor pulls the gate of the M1 P-channel MOSFET up to +6 V, switching
the servo off. When the microcontroller outputs high on the GPIO pin, M2's
source-drain connection starts conducting, causing M1's gate potential to drop
to 0 V, which switches on power to the servo.
## N-channel high-side switch
The P-channel high-side switch would be the typical architecture for our use
case. However, if we have access to a potential high enough to safely raise the
gate potential above the threshold such that their difference outputs the source
potential required to drive the load, we can switch on the high side using an
N-channel MOSFET:

In the schematic, both M1 and M2 are N-channel MOSFETs. When the
microcontroller output is low, M2 stops conducting. This causes the M1's gate
potential to rise above the threshold, turning the servo on. Conversely, a high
output on the GPIO line switches M2 on, which lowers M1's gate potential. This
switches the servo off. The R2 pull-up resistor prevents the high impedance of
the output pins at power-up from switching the servo on.
Both topologies require M2 to act as a level converter between circuits
containing the microcontroller and the servo, converting between 0 V and +6 V
or +9 V. M2 is a low-power signal converter carrying less than a milliamp of
current. The gate-source threshold voltage of M2 must be lower than the MCU's
supply voltage. 2N7000, 2N7002, and BSS138 are popular choices for M2.
The D1 flyback diodes used in the two topologies safeguard the MOSFET from
voltage spikes caused by inductive loads such as servos.
## A BJT alternative
A Bipolar Junction Transistor (BJT) is a simpler, cheaper, and more widely
available type of transistor that can be used as a switch.

In the schematic, when the MCU outputs high, Q2 starts conducting. Q2 amplifies
Q1's base current. Unlike MOSFETs, which are voltage-driven, BJTs are driven by
base current. Resistors R3 and R4 must be chosen carefully to output the
desired base currents. <a
href="https://teachmetomake.wordpress.com/how-to-use-a-transistor-as-a-switch/"
class="external" target="_blank" rel="noopener noreferrer">"How to choose a
transistor as a switch"</a> is an excellent guide on using BJTs as electronic
switches.
## Which topology to choose?
The professional community appears to prefer MOSFETs over BJTs. MOSFETs are
more efficient when the switch is on. However, they are more challenging to
drive, especially with a 3.3 V MCU, due to the V<sub>GS</sub> potentials
required to achieve specified R<sub>DS(on)</sub> values (i.e., to turn them on
fully).
N-channel MOSFETs have lower on-resistance values, making them more efficient
than P-channel ones. They are also cheaper. However, they are harder to drive
on the high side as their gate potential must be higher than the source
potential. This often requires extra circuitry such as MOSFET drivers.
## Further reading
- <a href="https://www.embeddedrelated.com/showarticle/98.php"
class="external" target="_blank" rel="noopener noreferrer">Different MOSFET
topologies</a>
- <a href="https://www.embeddedrelated.com/showarticle/809.php"
class="external" target="_blank" rel="noopener noreferrer">How to read
MOSFET datasheets</a>
- <a src="https://teachmetomake.wordpress.com/how-to-use-a-transistor-as-a-switch/"
class="external" target="_blank" rel="noopener noreferrer">How to use a
transistor as a switch</a>
- <a src="https://forum.digikey.com/t/guide-to-selecting-and-controlling-a-mosfet-for-3-3-vdc-logic-applications/42606"
class="external" target="_blank" rel="noopener noreferrer">Guide to
selecting and controlling a MOSFET for 3.3 VDC logic applications</a>
- <a src="https://forum.digikey.com/t/driving-a-large-relay-from-a-3-3-vdc-microcontroller-using-an-npn-darlington-transistor/41751"
class="external" target="_blank" rel="noopener noreferrer">Driving a large
relay from a 3.3 VDC microcontroller using an NPN Darlington transistor</a>
|