Ultra Low Noise Linear Power Supply

3D Render of PSU PCB with SMD Components.

This page covers my adventure designing an ultra low noise linear DC-DC power supply supporting an output voltage of ~4V to ~6V at 3A max; the intended use case is to power my oscilloscope which runs from USB. Yes, it's actually a very cheap FNIRSI 1014D scope, so this power supply is a bit overkill for the application, but on the other hand, the scope needs all the help it can get. I've tried using the scope when powered from several different USB supplies, and they're all so noisy that the scope is useless for measuring anything under 50-100mA or so. When using the power supply described on this page, the scope improves upon this by about a factor of 20.

Some design decisions were made at the beginning which had a major impact on how the project would unfold:

With these design goals in place, I came up with the following design, which I will cover in detail in the overview and four sections presented below.


Schematic Overview:

PSU Schematic Overview

As the power supply has a target output current of 3 Amps, some reasonably-powerful pass device was going to be needed, so I selected the TIP41C NPN silicon transistor with a max current of 6A continuous. These are available everywhere from many different manufacturers and are inexpensive "jelly bean" components. Since this is a linear power supply, the voltage drop across the transistor is going to result in resistive heating, and at 3A, passive cooling is not going to be an option. Brushless DC fans are also electrically quite noisy, so I'd need a separate 5V supply just for the fan, and this could be something simple like an AMS1117-5.0V regulator.

Next I'd need to create a rock-solid voltage reference. I'm quite fond of the TL431, so decided to design around the part; it's used much like a zener diode and is also adjustable via its reference pin. The output voltage of the pass transistor described above is compared against this voltage reference by an op-amp error amplifier, and the result controls the transistor base in such a way as to minimize error in the output voltage.

Add in some filtering in the right places and an output current limiter to protect things during short circuit, and that's about all there is to it.



Unfiltered Fan Power:

Unfiltered Fan Power Schematic

There's not much to this section: it starts with a jack for input power (for the entire power supply), defines the Vcc rail, and uses an AMS1117 to provide 5V at 1A for a small fan. The target is a brushless DC fan, which are electrically noisy, so this section is all on the unfiltered side of the circuit. I used a very small fan that pulls ~200mA.

Unfortunately, when one searches the internet for "linear power supply circuit", the results are frequently pages showing something like the above as the entire design. Maybe they add a capacitor or two, but a simple reference circuit using a VRM is what shows up at the top of search results. We do something much more fun with the design on this page, see the following sections for details.



Voltage Reference:

Voltage Reference Schematic

This is where things start to get interesting. As this design is using a cheap AC-DC "wall wart" to supply input power, the Vcc rail here is going to be very noisy with lots of ripple from the DC adapter's switching power supply with additional noise coming from the brushless DC fan. So the first thing that is done is to create an LC filter to generate the Vclean rail from Vcc. I salvaged a toroidal inductor from an old ATX power supply I found in an e-waste bin to use for L1 here (not a common-mode choke). It actually had two windings, and when they were connected in series (remember to pay attention to the direction of the windings, so they aren't connected backwards which would cancel out any inductance) I measured 0.6mH with a cheap LCR meter. The schematic shows this as a coupled inductor with windings in series for completeness. C1 with 1,000uF is the other half of the LC filter, and it also has a 1 Ohm series resistor R14 to prevent any oscillation when paired with the inductor.

Next, an AMS1117 is used and is boosted to ~6.2V by coupling a portion of its output voltage to its GND pin via a resistor divider. This is a fairly common trick, and I needed something a bit over 5V to give room for adjustment with a trim pot later and also wanted a little headroom for the TL431 voltage reference that follows.

The 1k resistor R4 and 10uF capacitor C4 form the first RC filter stage (net Vfilt1) for the voltage reference. This is also where the TL431 voltage reference comes into play. It operates like an adjustable zener diode, where the resistor divider feeds some voltage back to its reference pin on the Vtrim net, allowing for adjustment. The TL431 tries to maintain its cathode voltage at such a level that the voltage it sees on its reference pin is 2.5V. With the trim pot exactly at the center, this will then output 5V on the Vfilt1 net.

Finally, the voltage reference net Vref is created after two more RC filter stages (R7 & C5 and R8 & C6). This is the voltage reference that will be sent to the op-amp error amplifier for comparison against the output voltage. This design makes the addition of lots of filtering on the reference voltage practical, as the op-amp will pull very little current.



Error Amplifier and Pass Device:

Error Amplifier Schematic

After the voltage reference is generated and filtered as described in the previous section above, the essential part of what follows is the op-amp error amplifier and the pass transistor. I selected the OPA1656 dual op-amp IC, as this is a very low-noise part with rail-to-rail operation and can source 100mA from each of the two op-amps in the package. It was originally designed for low-noise audio applications, and it turns out that these characteristics are a great fit for my power supply as well. The ability to source 200mA current (combined) is also important to hit the design goal of 3A for the power supply. The TIP41C doesn't have a huge current gain when passing 3A (minimum hFE of 15), so being able to drive its base with ~200mA makes this design workable considering part-to-part variation.

The two op-amps are in a leader-follower configuration combined with 10R output resistors to prevent the op-amps from fighting one another. The two op-amps in the package will have slightly different characteristics, and this configuration minimizes any resulting adverse effects. One should avoid the alternative of connecting Vref to the non-inverting input of both of the op-amps.

The leader op-amp is comparing Vout (on its inverting input) to Vref (on its non-inverting input), so whenever the voltage on Vref is higher, it will increase its output voltage, and whenever the voltage on Vout is higher, it will decrease its output voltage; this is an error amplifier. The follower op-amp simply tries to match the output voltage of the leader. This output voltage then goes on to control the TIP41C pass transistor which generates the Vout rail and connects back to the op-amp input completing the feedback loop.

With a solid Vref generated in the previous section and a low noise op-amp used here, the only thing left to consider in this section with respect to noise is how the op-amps are powered. While the op-amps themselves have some ability to reject noise on their power rail, it certainly doesn't hurt to add a little more filtering. My design uses another RC filter circuit with R15 and R16 in parallel to provide a wide power margin given their 0805 SMD package and considering they'll need to pass a max of ~200mA.

Finally, a protection diode (1N4001 in SMA package) is placed across the pass transistor's collector and emitter to protect it in case the output rail has a higher voltage than the input rail, which could happen in some corner cases when the input power is abruptly disconnected.



Output Current Limiter:

Current Limiter and Output Schematic

The final section of my design is a current limiting circuit and some bulk capacitance on the output. The current-sense resistor Ra will have a voltage drop across it which increases as more current flows through it. When the voltage drop gets high enough, this will begin to turn on transistor Q2 (MMBT2222A), which will steal current away from the op-amps / pass device's base, causing the output to begin to turn off. I provide two resistors in parallel in the schematic and PCB to share power dissipation and to make it easier to set the desired current limit. The 100nF capacitor C13 is designed to prevent the current limiting transistor from turning on during brief transients; if you want a very strict current limit, just leave this part unpopulated.



KiCad Design and Gerber Files:

KiCad PCB

The complete KiCad design files are provided below, including the circuit design as well as a PCB layout. The large cut-out seen in the PCB is to make room for the small 5V fan and heat-sink I have. There are a few minor things I would change on this PCB if I were to make revisions, but it's good enough for my application, and I only had one day to lay it out, so it's not too bad all things considered.

All the SMD resistors and capacitors are size 0805 surface-mount components, except for the 22uF cap which is 1206, so all of these are hand-solderable (though I would recommend using solder paste and a stencil).

I had the board manufactured by JLCPCB, where 5 boards and a solder-paste stencil was $15 USD including shipping to Canada. Even including the cost of the components, which might be about $5-$8 USD total from DigiKey, this compares very favorably to prices of pre-built linear power supplies, most of which will have much worse performance.

The ZIP file with "gerber" in the name is the fully-plotted PCB design, so this can be directly uploaded to JLCPCB's "Instant Quote" page without any additional steps if you just want to order a board without any additional effort (enable the stencil option at the bottom of the order page if you want one and do consider selecting a custom stencil size that's slighly larger than the PCB to save on price and shipping vs. the giant default size).

psu-kicad-v1.4-AaronVose.zip
psu-kicad-v1.4-gerber-AaronVose.zip

BOM / Parts List:

Reference Qty Value Footprint
C1,C9,C14 3 1000uF Capacitor_THT:CP_Radial_D10.0mm_P5.00mm
C2,C3,C4,C5,C6,C8,C10,C11 8 10uF Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder
C7,C13 2 100nF Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder
C12 1 22uF Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder
D2 1 1N4001 Diode_SMD:D_SMA
D3 1 VRef LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder
D4 1 VOut LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder
D5 1 VFan LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder
L1 1 1mH Inductor_Custom:L_Toroid_Vertical_L35.6mm_W21mm
Q1 1 TIP41C Package_TO_SOT_THT:TO-220-3_Vertical
Q2 1 MMBT2222A Package_TO_SOT_SMD:SOT-23
R1 1 2.2k Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder
R2,R7,R8 3 560R Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder
R3,R4,R12,R13 4 1k Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder
R5,R6 2 4.7k Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder
R9,R10 2 10R Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder
R11 1 10k Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder
R14 1 1R Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder
R15,R16 2 4.7R Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder
Ra1,Ra2 2 1R Resistor_THT:R_Axial_DIN0414_L11.9mm_D4.5mm_P15.24mm_Horizontal
RV1 1 W502 (5k) Potentiometer_THT:Potentiometer_Bourns_3296W_Vertical
U1,U4 2 AMS1117-5 Package_TO_SOT_SMD:SOT-223-3_TabPin2
U2 1 TL431 Package_TO_SOT_SMD:SOT-23
U3 1 OPA1656 Package_SO:SOIC-8_3.9x4.9mm_P1.27mm