DC Electronic Load  - Page 1
Forum section: electronics / projects

author: finos
author_rank: Contributor
timestamp: October 16, 2023, 03:55:14 pm
content: Today, I will present to you a DC electronic load that I designed and built in collaboration with some colleagues from the school!While developing this electronic load, I encountered various concerns and questions, some of which were discussed in detail on thisthread. Thank you for your valuable contributions and time spent answering my questions have been crucial in making this project a reality!During the design and construction of a linear laboratory power supply, I found the need to have a way to draw a constant Voltage/Current value from the circuit under test to evaluate various parameters. This was necessary to assess the stability and noise characteristics.Simultaneously, I needed relatively good control accuracy over this current value. Using power resistors in parallel as the load was not a viable option because it would have been challenging to control the current passing through them, and the required accuracy could not be achieved due to the resistance value changes with temperature.Therefore, I decided to design a DC electronic load. With the integration of digital control, it offers more functionality than just setting the desired current. Some of the instrument's features include:- Voltage: 40VDC / Current: 20A, Maximum Continuous Power: 700W (Peak 800W).- ADC Resolution: 0.01 mV, 0.1 mA.- DAC Resolution: 0.1 mV, 0.1 mA.- Four static modes: CC, CV, CR, CP.- Battery analysis (capacity, internal resistance).- Overvoltage, current, power, and temperature protection.- Integrated LxI/LAN with SCPI command support for data logging from a PC application.The current is shinked by a set of four IRFP3206PBF N-Channel MOSFETs connected in a voltage-controlled resistor arrangement in pairs, creating two control channels.Digital control is handled by two 12-bit MCP4725 DACs. The output from each DAC is connected to the corresponding non-inverting input of the voltage-controlled resistor circuit, providing high precision control at the mA level. Voltage and current feedback are measured using the 16-bit ADC ADS1115. The ACS712 hall-effect sensor is used for current measurement, addressing concerns related heat management, cost, and drift. We knew that a galvanically isolated hall effect sensor was approaching the limits of “overkill” but we had the 30A version of the IC already in the parts bin and upon testing we fount that it was plenty ok for our needs.Managing heat dissipation in this project proved to be a significant challenge. We opted to have direct contact between the MOSFET and the metal heat sink, without any isolation pads for better heat conductivity, but this ment that we had to make sure the heat sink is well insulated from the chassis. Temperature sensors (LM35) were mounted on the heat sinks, and they will trigger safety measures if the temperature rises dangerously. Implementing these protections is crucial for the safety of both the instrument and the device under test.Voltage measurement is achieved through a precision resistor voltage divider, with clamping diodes added to protect the ADC from unwanted or reverse voltages. Additionally, an external voltage sensor option is available to remove the effects of voltage drop along the cables.For the brains of the operation, we used the new ATMega4809 microcontroller, compatible with the Arduino Nano package under the name "Arduino Nano Every," due to its substantially larger RAM and flash memory, which were essential for the project.Schematics, code, and extra photos can be found on the project'sGitHub repository.I'm eager for your feedback, questions, and any suggestions you may have Thank you for your time!

author: Kleinstein
author_rank: Super Contributor
timestamp: October 16, 2023, 04:19:42 pm
content: There are multiple points that are not so great with the design:It is not a good idea to have 2 MOSFETs directly in parallel when used in an analog mode. Current sharing is unlikely and even if it starts OK it tends to be thermally unstable: the hotter FET gets more and more of the current, if not used as a switch. So one either needs relatively large source resistors or a separate control loop per FET.A 2nd point is the choice of the FETs. This type is not suited as the SOA shows a quite drastic drop in the allowed current above some 10 V. The 40 V DC point is not even any more on the graph and would be below 100 mA per FET. So one would stay in the SOA only up to some 280 mA at best, not 20 A. The more suitable MOSFETs are more high voltage (e.g. > 200 V) ones, even of one does no want to specify such a high voltage.With 10 K in series and a huge gate capacitance the regulation would be very slow with possible instablity. There is a good chance that the regulation is oscillating despite the slow LM358.There is not RC snubber or similar on the output - this also help oscillation with a more inductive load.The TO247 is usually good for maybe 100 W at most without gettting getting an expenside heat sink. So 400 W would be a more realistic limit.There is probably more wrong.

author: tom66
author_rank: Super Contributor
timestamp: October 16, 2023, 04:38:13 pm
content: An interesting project. I will try not to be too critical as it is a student project, and I have been-there-done-that with things like this, and made plenty of mistakes in my time!As @Kleinstein points out, the paralleled MOSFETs are a bad idea. I have a very cheap Chinese electronic load kit - must have been under 30 euros - and one FET gets really hot whilst the other runs quite cool. The problem is that they are in parallel. And as the Vgs(th) of MOSFETs decreases with temperature, the characteristic is a hotter FET in analog mode will conduct more current for any given gate voltage. (Note: this is quite different to their behaviour when acting as switches. There, RDS(on) tends to increase with temperature, so the FETs balance current reasonably equally.)Another issue is your control loop - I would strongly recommend a feed-forward capacitor across the opamp if you do not require fast transient response. This cap goes from your error signal to output and you can choose the value by simulation or experimentation. As it is, the cap load from the opamp output risks turning the opamp into an oscillator. The 10k series here is probably doing more harm than good. I would keep that lower, around 100 ohms or so. Adding feedforward will tend to stabilise the loop at penalty of slowing the response time down. This can create an overcurrent risk if the voltage across the FET varies quickly as the current will not necessarily be in regulation for a period of time.Using the ACS-device to sense current and having an independent current regulation circuit is a little odd. Why would you not just use the voltage across the shunt? Also note that hall effect sensor ICs tend to be cross-sensitive (magnetic fields influence them), so you have to keep distinct channels well apart (I didn't see a PCB layout to see if you did that or not.)It's a good idea to use 4-wire sensing for any precision current sense application. It also allows you to keep your power ground (with high return currents) away from anything too sensitive.Overall, it's better than many mid-term university projects I've seen, keep hacking at it and you'll get better.

author: Hexley
author_rank: Regular Contributor
timestamp: October 16, 2023, 06:24:49 pm
content: While the most critical design issues have been well addressed by Kleinstein and tom66, I suggest there are some additional learning opportunities to be found. These fall into the category of "the devil is in the details".In particular, the details of the schematic and the BOM, while possibly boring, are really quite important to keep straight. Some comments on these areas (along with some minor electrical issues) follows:It is good practice to put complete part numbers in the schematic; and certainly they should be present in the BOM. The ACS712, for example, comes in three varieties -- 5A, 20A, and 30A. While you mention the chosen type in your write-up, it is not shown in the schematic or BOM part numbers -- they only have a generic name "ACS712". This makes it a little harder for the reviewer to understand your design. And when you graduate and start producing designs professionally, remember that they may have to be maintained by another engineer years later -- so the more design information you capture at the time, the easier it will be for the people who come later.Speaking of the ACS712, the pin assignment on the schematic does not match the pin out in the ACS712 data sheet. As an example, the schematic shows pin 1 as SENSE-, and pin 2 as SENSE+; but the data sheet shows pins 1 and 2 tied together as IP+ (or SENSE+ in your terminology). Of the remaining pins, only pin 5 (GND) matches between schematic and data sheet. Something is not right in this part of the schematic.The output of U3 on the Power Supply sheet is labelled "+5V". Should be "+3V3".The Internal Voltage Sense and External Voltage Sense networks in the Analog sheet have diode clamps to a rail labelled "+4.5V". There is no such rail to be found. It should be fine to use the +5V rail here, though; the large resistance in series with the associated sense voltages will prevent any damage to the inputs of the connected devices, as the maximum current will be limited to a very small amount.Another style point concerns R3 and R6, the current sampling resistors. The BOM indicates these are 1-ohm 25-watt resistors, of type "RC42", with a total quantity of 2. The schematic shows a total of eight resistors and it uses designators like R3.1, R3.2, R3.3, and R3.4 for the four instances of R3. This is not really a standard way to do this. It suggests that the four resistors are part of a single module, rather than four instances of the same discrete part. Simplest way is just to name them R3, R4, R5, and R6 (or equivalent) and let them show up the same way in the BOM.The connections for EncA and EncB of the rotary encoder may not be optimal. It appears that the internal pull-ups of the Arduino are used to provide the positive reference. Since the switches are pulling down through 10K when active, there will be a significant voltage at the sense inputs due to the voltage division between the internal pull-up resistor and the 10K to ground. Better practice is to put discrete pull-up resistor right on the switch nodes, and size these resistors so that the switch sees a handful of milliamps (to keep the contacts "wetted").Another point about R3/R6 in the BOM description: type "RC42" does not seem to match a product family for 25-watt resistors. Was this possibly a typo?In any case, kudos to you for tackling something substantial like this and being brave enough to ask for comments and criticism on a public forum. Keep at it!

author: MarkF
author_rank: Super Contributor
timestamp: October 16, 2023, 06:52:22 pm
content: As mentioned before, each MOSFET needs its own control circuit.The minimal load unit should look like this (with parallel units being a copy of this template):Also, checkout @Jay_Diddy_B'sDynamic Electronic Load Project.

author: AnalogTodd
author_rank: Regular Contributor
timestamp: October 17, 2023, 02:49:46 pm
content: Very good points from Kleinstein on the paralleling of the FETs. I would actually suggest that you might be able to rework how you connect your devices to make them share much better. The current sensor has plenty of isolation, so instead of placing it in series with the sources, change it to be in series with the drains. Then you can separate the sources of the two FETs and put each one into two of your shunt resistors instead of dropping them together into all four. You don't necessarily need a separate control loop for each, instead you can average the signal returning to the op amp by adding a 1k resistor from each FET source back to the input of the op amp.As pointed out, paralleling of FETs in analog mode is a bad idea. Without spending time trying to match devices, you will get a different current through the devices for the same Vgs. That translates to higher power and heat in the device with the higher current, which then causes the Vgs to drop and the one device to run even more power--it becomes a positive feedback situation. By separating the sources and resistors, now when one device tries to run more current the voltage drop across the resistor increases and lowers the Vgs, keeping the power closer between the two devices.

author: Kleinstein
author_rank: Super Contributor
timestamp: October 17, 2023, 04:36:04 pm
content: It also does not make much sense to directly parallel the FETs, which comes with the risk of current concentration and need to derate further. The ouput current / output impedance of an OP-amp is only good to drive a somewhat limited capacitance at a reasonable speed. It already gets rather slow when 1 OP-amp drives a large FET (e.g. IRFP460) with some 4 nF of gate capacity. Op-amps for the control are also relatively cheap compared to the FETs and heat sinks. Depending on the target speed one may want even only a smaller FET (e.g. IRFP250) per OP-amp - two of them would be quite some capacity.Multiple magnetic sensor may be an issue. One may not need individual sensor and get away with only one magnetic sensor for the whole thing and shunt resistors for each FET. The shunts are parts that are performance critical, so one may have to spend some money on them, if good accracy is wanted.It may be worth it looking for good, low drift OP-amps, so one can get away with a smaller shunt resistance and less heat problems. So more like OPA2202 instead of LM358, though they need a dual supply.One may opt. to switch between using all channels for high current and only 1 channel for lower currents to get a bit better operation at low current.

author: finos
author_rank: Contributor
timestamp: October 25, 2023, 01:20:37 pm
content: Hello everyone!Sorry for the delayed response, it’s the start of a new semester here and I had to sort out a million things…First and foremost, thank you everyone for your constructive feedback and for taking the time to respond. I appreciate it.Since almost every comment was about the paralleled mosfets, I will address every other concern first then I will get back to this.Quote from: Kleinstein on October 16, 2023, 04:19:42 pmDuring the prototyping stage we didn’t have access to mouser to get our parts, we had to rely on what the corner electronics store had stock of, and the IRFP3206s were the only power part that they had. Thus, the choice of this mosfet.The choice of the 10k gate resistor was made due to some weird observations we made:When the digital side & analog sides (+5v +3v3 & +12v) had no power but the DAC was connected to the opamp Should a voltage was applied at then input the digital side somehow would power on!Their only common connection is the Gate of the Fet, and I know that in theory gates are isolated. But here we are. A 10k solved this. I suppose this was something to do with the LM358 not being properly biased? but I still can’t find a current path from DS to gate. In hindsight the side effects were, as you mention, that this slows down the control loop substantially, we thought this was from the Arduino or the control algorithm being slow. At least we don’t have any oscillation on the current value!Would a mosfet driver be the solution to this?“There is not RC snubber […]” …oh this one was probably one of our biggest headaches after finishing the project. We would connect any power source (the linear psu mention in #1, a battery etc) to the terminals and start any test. An audible high pitch sound would come out of the ends of the leads. I wanted to probe around with an oscilloscope ,various points at the circuit to find where this high pitch was coming from. But I don’t have one at my apartment, and the school wouldn’t let me use their instruments for personal projects… doesn’t matter how hard I tried. So, I suppose the absence of the snubber is why we observed the high pitch sounds.About the TO247 package, all 4 transistors are mounted on a relatively big aluminum heatsink (takes up almost the half of the case) plus active cooling with a Fan. We tried our best to keep the device as-cool-as-possible staying within the Operating Temperature Range but while doing this, we completely overlooked the Maximum Safe Operating Area as it seems…Quote from: tom66 on October 16, 2023, 04:38:13 pmWith an already slow Control loop, it takes a substantial amount of time to reach high amounts of current, the addition of a feed-forward capacitor, as you mention, would slow it down even more.After seeing Dave’s teardown of the Keysight battery Emulator - DC load a while back that had hardware overvoltage and overcurrent protection with some opamps, I thought that we should implement it also, but the project was already much too complex, Now, we handle overcurrent only on software & with the fuses as a last line of defense (crude, I know) . This was also the reason we used the 2 ACS712. We started with them cause there laying around. Quite late in the design in the prototyping we had the “big brain, eureka” moment: “why do we measure current with this method and not using the shunts already present on the circuit with the help of an opamp or 2? But the PCB was already made, there was no space for changes, thus it stuck.Quote from: Hexley on October 16, 2023, 06:24:49 pmthe devil is in the details, that’s absolutely correct. I had tried to make the most straightforward sch as possible, with the intention that anyone wishing to replicate the project in the future would have all the info they would need to do so. But honestly some of your points did not occur to me while designing (noted to do better next time) .1. That’s one of the things I didn’t think to include .. will be rectified shortly on the repo2. I used the version of the ACS`s footprint that comes as a pcb module (as seenHere) since this is what we have on the “mainboard PCB” and it would be easier for us during prototyping.3. This was an oversight on my part , The power supply schematic being just 2 LM78xx had no reason to be drawn on a formal schematic , it was drawn on paper (perhaps could we say FinosCAD or we infringe DaveCADs Copyright?) and for sake of a complete presentation of the project it was quickly drawn up on on our project , EASYeda sometimes does not play well when adding net labels “too fast” and here we come to this (this is noted too and will be rectified shortly )4. Yes, they are connected to +5v and this was probably copied over from the spice simulation5. The MainPCB is made on a doted veroBoard. While we thought of doing a proper layout and sending it off to some of the various manufacturers over in China, but there was little to no time for learning how to do it properly. Perhaps in the next version. This led to not paying attention to what footprint was used. Plus, I had my doubts for how to mark on the schematic that these resistors (plus the mosfets that they connect with terminal blocks, plus the LM35 temperature sensors who are connected with crimped cables & JST connectors) were outboard components , not placed on the PCB but on their heatsinks , didn’t know , and stil don’t know to mark this on the schematic .6. Honestly this arrangement is what I always used with encoders & 5v Arduinos, the Built in Pullups and the RC network Never had a issue.7. (look at point 5) shortly since we wouldn’t make a pcb we ignored the footprints. It’s a Mistake on my part that I didn’t remove the footprint row on the BOM or I didn’t check to correct it.Quote from: Kleinstein on October 17, 2023, 04:36:04 pmThe choice of the LM358 was made basically because we knew that there would be passing “fast” signals, that would need a high slew rate.Let’s now address the elephant in the room. The paralleled Q3, Q4 on the Q1, Q2 devices respectively.The design choice was made primarily to reduce the total load that each FET would have to carry, thus reducing the thermal output of a single device, helping the heat Transfer from the package to the Heatsink. @Kleinstein mentioned, the TO247 is limited. We also had concerns that the devices would heat up over the rated datasheet value, thus run some tests, monitoring closely with thermocouples the temperature that was within one degree between the devices and , about any current mismatches, during the prototyping stage monitored the Ids Currents of all 4 devices , which never exceeded a few mA. A difference, or error, that may be attributed to the instrument or measurement methodology or to manufacturing tolerances from transistor to transistor.Aside from our testing we consulted our electronics professor because the mismatched devices were concerning me, who explained that MOSFETs located on the same heatsink, when parallel-connected, react as if someone had extended the gate, drain, and source from one wafer to another, effectively creating a single giant FET. He said, "They 'self-correct' due to temperature." The one that will draw more current will increase the Rds and decrease the current. This will happen dynamically all the time in our parallel MOSFETs, as the professor explained.Having been told this, we proceed …in hindsight the best approach would be what @MarkF shows , replicating it for the 4 devices . And probably still separating them into 2 control “channels” to gain finer control over lower currents and Voltages.If you have any more comments you want to add to the topic , dont hesitate to do it. I find this a great learning oportunity for making the next build even beter !Thank you all!

author: temperance
author_rank: Super Contributor
timestamp: October 25, 2023, 04:25:38 pm
content: Yet an other request for a fast dummy load.https://www.eevblog.com/forum/beginners/constant-current-load-stability/25/Post 31 and 42Hi speed and rock stable with jelly been components. Proto type made on a perf board including screen scope screenshots. The analysis is in the thread. (and unfortunately some annoyance too)In this thread I also linked to some other fast dummy loads made EEVblog members such as Jan with practically the same analysis.