Electronics > Projects, Designs, and Technical Stuff
Programmable dummy load
bauto601:
Hello everyone,
I am working on a project to design a programmable dummy load to test power supplies, batteries or even (cpu) coolers.
For this i use a fdl100n50f mosfet to dissipate the heat. This mosfet has got a thermal resistance of 0.15*C/W from junction to sink and is specced to work under continuous DC load, not only for switching. It is cooled with a 6 heatpipe 92mm cpu cooler that keeps the case of the mosfet at just under 60 degrees at a 200w load. Adding the thermal resistance of 30*C i get a junction temperature of 90 degrees, which is is specced at a maximum of 150 degrees.
I control the gate of the mosfet using an Arduino Nano. I connected a MCP4725 12 bit DAC to the I2C bus to control the gate voltage. The output of the DAC is directly connected to a LM324 opamp with gain 1 to offset the voltage from the DAC to give an output voltage between around 3.5 to 7.5v. The opamp has been configured with 100K resistors and one 33K resistor.
The feedback to regulate the current going through the mosfet comes from a INA220B 12bit power meter, also connected to the I2C bus of the Arduino. I calibrated it nicely using a Fluke27 DMM. (the old one) At the moment i use a 20cm piece of 15AWG wire to sense the current. I calculated that it would give a 75mv voltage drop at 30A of current. The gain is set to a 80mv range. The current shunt is connected to the high side and the VBUS voltage pin is connected to the high side of the high side current shunt.
All this is fed by an 13.8V laboratory PSU (not a switching one) and a 7805 voltage regulator for the 5V rail. All chips have got 56nf polymer bypass capacitors on the power pins. The 7805 has got a 1000uF 16V low-esr capacitor on the input side and a 1uF polymer capacitor on the output side. I also connected a 10K pull-down resistor and a 56nf polymer capacitor between the gate and the source right at the mosfet.
The software has got the following workflow to control the current:
1. set the desired current (setcurrent)
2. read the real current from the INA220B (mosfetcurrent)
3.
if setcurrent > mosfetcurrent -> increase the gate voltage by 1 dac value
if setcurrent < mosfetcurrent -> decrease the gate voltage by 1 dac value
4. set the new dac value
5. wait 5ms.
6. go to step 2
Now i know that a piece of copper wire doesn't give any good accuracy over the whole range, but the precision must be quite good. My problem is that the current swings around for about 1% of the set current. When i look at the readings from the INA220B chip, sometimes the current is a bit lower than set (with a maximum of about -0.5%) and sometimes the current is a bit higher than set (with a maximum of about +0.5%)
I want to make the regulation more precise. I was thinking about upgrading the chips to 16 bit precision chips to decrease the step size of the regulation. I'm also not that happy with the MCP4725 DAC because it has some areas where it is far from linear.
What do you guys recommend to do at this stage? Improve the regulation algorithm, upgrade the cips to 16 bit ones, maybe add some bypass capacitors?
EDIT:
I've added the datasheets of the components:
LM324:
http://www.ti.com/lit/ds/snosc16d/snosc16d.pdf
MCP4725:
https://www.sparkfun.com/datasheets/BreakoutBoards/MCP4725.pdf
INA220B:
http://www.ti.com/lit/ds/symlink/ina220.pdf
nAyPDJ:
Can you provide a schematic? If I'm reading this right, you're driving both inputs of the opamp with your DACs? Might be better have your feedback loop be fully analog.
5ms wait time is pretty long, as well.
bauto601:
--- Quote from: nAyPDJ on April 21, 2019, 08:59:29 pm ---Can you provide a schematic? If I'm reading this right, you're driving both inputs of the opamp with your DACs? Might be better have your feedback loop be fully analog.
5ms wait time is pretty long, as well.
--- End quote ---
I will make a schematic tomorrow, altough it is a very basic circuit. I am using the following circuit for the opamp:
Where R1, R2 and R3 are 100K resistors. R4 is a 39K resistor. I am using a 4 channel opamp and DAC because i want to scale it up later to 8 channels.
V1 comes straight from the dac, V2 comes directly from the 13.8 laboratory PSU. Maybe V2 needs to be connected to a more stable power source?
ocset:
Yes sorry but I also think this sounds like a job better done with analog…you are wanting to adjust the current to whatever value?
In that case I would set up an analog error amplifier, (an op amp integrator) and simply adjust the reference voltage into it, as the way of adjusting the current.
By all means have the DAC give the reference voltage that’s required
nAyPDJ:
Take a look at the schematics this person used, and see if you can draw inspiration:
https://www.eevblog.com/forum/projects/programmable-electronic-load-0-5a/msg2216673/#msg2216673
Navigation
[0] Message Index
[#] Next page
Go to full version