Active Power Supply Load Tester

I am creating an ATX power supply load tester to check the quality of power supplies with an Oscilliscope, etc... Before I begin the full project, I am trying to work out the fundamental concepts of the project. I am trying to seek the advice of the forum members to ensure I am doing it correctly.

Basically I am using a MOSFET with a PWM duty cycle from my Adruino to control the amount of load I want to put on the 300W 0.5Ohm resistor. For now, let's keep things simple and assume this is the 12V rail on the power supply that can provide up to 100Amps. With the 0.5Ohm resistor, it should be able to pull a maximum of 24 Amps on a 12V source.

Here's a link to two of the crucial items for this circuit:

MOSFET: http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=en&site=US&WT.z_homepage_link=hp_go_button&KeyWords=HUF75345P3-ND

RESISTOR: http://search.digikey.com/scripts/DkSearch/dksus.dll?lang=en&site=US&WT.z_homepage_link=hp_go_button&KeyWords=0+FVE300-.50-ND+

Here is also my schematic:

Did I do it correctly? ::slight_smile: I was curious about the 10K resistor there, my friend said I need it because a MOSFET usually holds a charge, and also what about the PWM frequency being only around 500MHz (I know I can increase it by changing the timers) but do I need to?

what about the PWM frequency being only around 500MHz

:o :o :o

No you don't mean that. The arduino runs at only 16MHz so there is no way the PWM could be 500MHz, You might mean 500Hz only six orders of magnitude out.

I would also put a 100R resistor in series with the gate to protect the arduino's output against current surges. Otherwise it looks OK in theory.
In practice of course switching such large currents you will hit trouble with interference to the arduino unless you get the wiring right. That is the layout is critical here.

Thank you for the quick reply. I had some questions:

  1. Did you mean a 100K resistor in series?
  2. Would it be better to connect Arduino ground to the actual main power supply ground instead such as the chassis then to prevent issues?
  3. Oops! I mean the stock PWM frequency. You can change it however from what I know, all the way up to 62500Hz : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1235060559/4

Did you mean a 100K resistor in series?

No. The gate of a fet looks like an uncharged capacitor, a 100R resistor is enough to limit the inrush current to a level that will not damage the arduino output.

Would it be better to connect Arduino ground to the actual main power supply ground instead

No. Try and keep all the heavy current carrying wires as short and direct as possible.

You can change it however from what I know, all the way up to 62500Hz

Yes :slight_smile:
But there is not much need.
The only problem I see with this approach of testing a power supply is that by applying a PWM load you are drawing a large amount of ripple current from the final capacitors in the supply under test.
Exceeding the ripple current of capacitors is a good way to make them over heat and go bang.

I don't think ATX power supplies are designed for such rapidly-varying high-current loads. As mentioned above, you are going to be testing the capacitors in the power supply more than anything else.

If you really want to test the power supply under varying current load conditions you will need to operate the MOSFET in its linear mode by tightly controlling the gate voltage, and ensuring plenty of heat removal from it (forced-air cooling+heat sink).

--
The Quick Shield: breakout all 28 pins to quick-connect terminals

Wow! I would have made a big mistake. I am not trying to test the capacitors. You guys are correct. How can I tightly control the voltage output of the Arduino 1v-5v without using PWM then? From what I know the PWM output ports are the only ones that can vary the voltage on the arduino...

Also, for linear mode, did i get the right MOSFET for this project?

Interesting thread. I have used programmable load testers many many years ago but never acquired or built one for personal use. The thing I don't see mentioned is the need (or perhaps desirable) to have a current feedback measurement to the Arduino to set and control the desired current draw level?

Loads can and do often change resistance with time and heat and setting the desired current level with no feedback control seems could lead to damage to the load and/or the load tester, esp at higher current draws?

PS: I also recall using a few times a real primitive load tester at my refinery decades ago that the electric shop had. It was a foot long assembly that had maybe a dozen 4" X 4" x 1/4" carbon plates in a row with a screw knob that would adjust the pressure on the plates that would change the load adjustment desired. To say it was very tricky to accurately set is an understatement. :wink:

PSS: I also recall frequently needing to load test 5vdc @60 amp power supplies after repairing them at work. We finally settled on just using long lengths (60ft maybe) of number 10 wire. The wire insulation would get hot and start smoking if left on too long, but it was fine for a quick go/no go load for the power supplies.

Lefty

Thanks guys! But you guys didn't answer my questions? ::slight_smile:

How can I tightly control the voltage output of the Arduino 1v-5v without using PWM then?

You can use PWM followed by an RC filter to get an analog voltage. But....that's not what you're trying to control. You are trying to control power supply current. Which means you have to measure this current then adjust the MOSFET's resistance (through PWM+RC filter) to achieve the desired current. Complicating this is a) temperature dependence, and b) a transconductance curve (gate voltage vs. MOSFET resistance) that is very steep and therefore very sensitive to noise, temperature, and the phase of the moon.

In other words, this looks good on paper but will be tough to get right in practice :slight_smile:

The MOSFET you selected is OK, but really the key is going to be in getting the heat away from it. Its Rds(on) value doesn't matter much because you're not going to be operating in it's fully-on mode. Choice of packaging is more important to improve thermal transfer. For example, this device is a little better because it has lower thermal resistance (you'll still need a heat sink and cooling):

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, light sensor, potentiometers, pushbuttons

You all made valid points. What if I followed this schematic:

http://www.xbitlabs.com/articles/cases/display/psu-methodology2_12.html

Yes, that's worth a shot. Layout will be critical as that circuit has a definite possibility of oscillation....I'd make sure there's a fuse in series with the power supply :slight_smile:

--
Need a custom shield? Let us design and build one for you.

Considering you're working at low voltages which are galvanically isolated from the mains system you might want to consider the cooling of the mosfet by immersion in a bath of running water. With a trickle of running water the mosfet temperature will remain fairly constant. Yes, in the longer term there might be some problems with corrosion but certainly not for a test of an hour or so.

If you want to test your supply at the full 100amp load you will need 0.12 ohms of resistance, ie four of your mentioned resistors in parallel. heat output will be 1.2KW so you will also need to consider how to dissipate this heat - again a running water bath might be worthwhile.

Everyone thank you for the feedback! I'll show you guys the progress of this project once I get this issue ironed out.

Richard Crowley, do you any thing you can link me to in terms of a schematic or something where I can have the Arduino adjust the resistor? Or are you talking about having the Arduino pass a PWM to Analog voltage to the MOSFET?

I would consider dropping PWM and just using a real DAC. Even that article recommended it.

If I do run the MOSFET in this manner, I wouldn't need the 300W resistor then right since all of the power drain is being sent to the MOSFET.

Right, the MOSFET is the load resistance now.

You can, however, leave some resistance there to "spread the load", hence the heat. For the same current, the MOSFET will need lower resistance thus dissipate less power. You'll have to calculate the resistor value based on the maximum current you want to measure.

--
The Quick Shield: breakout all 28 pins to quick-connect terminals

Understood. I believe the best thing for me to do is control the MOSFET with a Digital Potentiometer controlled via Arduino -> SPI and use the Arduino to monitor the current on the load and adjust the Digital Potentiometer to keep current stable.

That would get me away from PWM and such. What do you guys say to that?

Also, I am trying to look on Digikey for a MOSFET that would be best for linear use I assume (for the Digital Potentiometer) method. Would this still be a logic level MOSFET? Or should I select a different one? Also, I was thinking of still using the 300W resistors I purchased. I purchased four of the 0.5Ohm models (300W each) and I was thinking on combination with the MOSFET and Digital Potentiometer, I could split the load among the two? I would be using a total of four MOSFET's for the 12V rail. Theoretical 24Amp Load X 4 = 96Amps. I got the 24Amps from (12V/0.5Ohm).

Perfect! Thank you everyone for the help. Much appreciated! :slight_smile: