I wanted to test a pc power supply
At first I was messing about with some big resistors but then I decided it would be nice to have an “active load” that you can set to a particular current. You can buy these things for quite some money but I decided to design and build myself a simple one using components and tools I have lying around. I decided to go analog, no digital stuff this time. Commercial loads can have different modes such as constant current, constant voltage, constant resistance and constant power, but mine will only have constant current.
- Constant current only
- Current settable between 0A and 10A
- Maximum power 120W
- Maximum voltage 200V
- Power supply 12V
Bill of materials
- IRFP250 MOSFET
- LM358 opamp
- TL431A voltage reference (or zener diode 2.5V)
- 100nF capacitor
- 20k trimmer resistor, 10 turns (lin or log)
- 0.1 Ω, 10W shunt resistor, cement
- 1kΩ resistor
- pcb size 10 × 11 cm
- a salvaged aluminium cpu cooler with 12V fan
- 4 pin header
- 2 pin header (×2)
Theory of operation
The IRFP250 MOSFET that I use, will dissipate most of the power. It can dissipate a maximum power of 190W (under ideal circumstances, but not in real life). It will heat up to, say, 75 °C and at that temperature, the maximum power it can dissipate is still 115W. It is therefore of great importance to keep the MOSFET cool, because the higher the temperature, the lower the allowable power. Therefore, we will use a salvaged pc cooler, which is a big chunk of aluminium with lots of cooling fins and a fan to keep it cool. Open up that unused pc in the attic and remove its cpu cooler!
Together with an opamp, the LM358, it forms a current sink that can be set at a constant current based on negative feedback. Refer to the circuit diagram. The TL431A delivers a constant voltage of 2.5V. Ten turn trimmer resistor R3 can put any voltage between 0 and 2.5V on the positive input of the LM358. Lets say it’s set at 1V. The opamp will try to keep the voltage on its negative input equal to the voltage on its positive input. Therefore, the voltage over R1is also 1V. Because the value of R1 is 0.1Ω, the current will be 10A.
How does the opamp keep the current constant? That is because of negative feedback. Let’s say that the current through R1 is a little bit too high. Then, the voltage on the negative input of the opamp will be a little bit higher than the voltage on its positive input. Because the opamp has a high amplicication, the voltage on its output will drop a bit. Therefore, the voltage on the gate of the MOSFET will drop, which makes the MOSFET a little less conductive and therefore the current will decrease.
The LM358 is suitable for single supply, in other words no negative supply is needed, which basically means it accepts inputs as low as 0V and can also output (almost) 0V.
I made a pcb design in Cadsoft Eagle. Because the cooler is already 10×10cm, the pcb had to be 10×11cm. But the free edition of Eagle doesn’t allow pcb’s bigger than 10cm! It turns out that you can actually make pcb’s bigger than 10cm with Eagle, as long as the reference points (centers) of the components are within 8×10cm. Traces, drill holes etc. can be outside these boundaries!
I fabricated the single-sided pcb myself using a cheap cnc router from Banggood. There is a User Language Program (ULP) called pcb-gcode for Eagle, which churns out gcode, which then can be imported into grblControl.
The MOSFET is put flat, with the metal side up and squashed between the pcb and the cooler with some thermal paste.
I have had the Active Load run for an hour or so on 11V, 10A. The MOSFET gets warm, but R1 goes to 130°C. That’s because I didn’t have a 10W resistor so I used a 5W type.
Because the reference voltage is 2.5V and the shunt resistor is 0.1Ω, you can theoretically set a current up to 25A. I have tested the active load for a short period up to 12A, but the shunt resistor quickly heats up to 180°C. This could be solved by putting in a shunt resistor with a smaller value, e.g. 0.02Ω, but at some point the MOSFET will become the weakest point and give up. I haven’t tried this (yet). Especially at lower voltages, e.g. 5V this could be useful, because the power dissipated in the MOSFET is U × I, so for example 20A×5V=100W, which should be OK.
Several people have pointed out to me that an IRFP250 is a MOSFET intended for switching, not for linar operation. Why this is not ideal, is explained very well in this Youtube video by Kerry Wong. Unfortunately, linear MOSFETs are much more expensive than an IRFP250. A reasonably priced one is IXTH30N50L2 by Ixys for about €12. This beast can handle 12V×20A=240W. Cheaper are FDL100N50 on Aliexpress for €14 per 5 pieces. These can handle 180W DC, as specified in the SOA diagram.
The shunt resistor (0.1Ω) should be a smaller value, like 0.02Ω. Now it gets too hot. Also, at 10A it takes 1V away, which limits the ability of the active load to do its job at low voltages, e.g. for draining a battery.
Reverse polarity or AC will probably kill this active load. A 10A fuse would prevent that.
A 1k resistor between the gate of the MOSFET and the opamp might save the opamp in case the MOSFET dies.
Add a 1 μF capacitor in parallel to the potmeter to suppress noise.
Thanks Watson Fixer for your suggestions.
Thanks Cliff Matthews for all your feedback.
Thanks Jack Heuft for all your encouragements on the DIY forum on facebook.