Introduction
One important piece of equipment that is missing in my lab is an electronic load. Lately, I found myself ill so I was forcefully blocked home for few days. I decided to take advantage of this "free time" to try building myself an electronic load. I imposed these requirements, to make the challenge a bit more fun:
- The electronic load needs to be completed in 2-3 days (that's the time I have available anyway)
- I need to build it only with components I have at home, no shopping is allowed
- It must be capable of creating pulses with "good enough" rise time (<10us)
Other requirements like max power dissipation, max input voltage and current will depend on the components I have available.
Looking for components
Arguably, the most important components in this project are output transistors and the heatsink. I initially looked for a 2N3055 because it has nice electrical specs (15A, up to 60V and a power dissipation capability up to 115W) but the TO-3 case makes it very inconvenient to attach to a "standard" heatsink with a flat face, so I scrapped this option. In the end I settled for an old CPU heatsink/fan (from my dad's old PC) paired with a couple of TIP122 bjts.
The heatsink, an used electrical box and the PCB already milled
I'm planning to power all up with an old 14V supply I have around, so as opamps I opted for LM358 because they work nicely with a single supply rail (I don't have available any rail to rail option).
The circuit
The basic circuit by itself it's quite simple: an operational amplifier with the power transistor and a shunt resistor to control the load current. This circuit will be doubled, one for each TIP122. This is not as inconvenient as it may sound, because the LM358 has two amplifiers inside the same package.
I breadboarded a test circuit to verify stability because I was not able to find any meaningful data on the TIP122 bandwidth in its datasheet. As I kind of expected, I found that it was happily oscillating. The circuit was also extremely sensitive to contact quality and external parasitic capacitances, and sometimes by touching the right spot I could make it stable. This suggests that I'm in a borderline situation and to verify it I decided to measure the frequency response of the output stage. This will give me a clearer image to appropriately compensate the circuit.
On ch3, we can see the bjt signal oscillating
Frequency response of the TIP122 as voltage follower
This subcircuit seems to have a bandwidth around 2MHz, marginally higher compared to LM358, which exhibit a typical bandwidth of 1.1MHz.
I decided to compensate the circuit using a "noise gain" stile compensation, added a couple of comparators for overtemperature protection and a BNC connector to connect my electronic load to a function generator to create arbitrary load patterns. The final result (obtained after circuit tuning) is this:
Building it
Building it included a good mixture of mechanical and electrical work that I enjoyed. I milled the pcb with my small CNC router and I opened a rectangular slot on the box top using it as well. This hole will fit the heatsink.
I manually drilled and tapped the necessary holes on the heatsink to fix my power transistors to it and to mount the heatsink itself to the enclosure. I also drilled and filed some more holes to accept connectors, switches and trimmers. I then assembled the pcb with all required components and wired all up.
Testing it
The first turn on is always a bit scary: will the circuit work? Or will it release the magic smoke? I found myself somewhat in between: the circuit was not working but no apparent damage either. The LDO regulator being hot was a clear signal that my 5V rail was shorted. An additional clean up from soldering and milling residues did the trick and the circuit came alive!
At DC it worked great, but the transient response showed a huge overshoot. After tuning, I managed to achieve a decent transient response, with a rise time of 6.5us and no overshoot.
Transient response before and after tuning
Square and triangular waves in the kHz range are no problem and it manages to replicate it on the load side quite nicely.
{gallery}My Gallery Title |
---|
I then tested its power capability, and based on bjt case temperature I decided that 80W is the max it should handle. I badged it with its specs, closed all up inside the enclosure and now I finally have an electronic load at my disposal!
The "fun" side: when things go the wrong direction
Yes, in the end I managed to build something that it's working, but that does not mean it's perfect or the building has been smooth. To end this blog with a "funny" note, here is a short list of things that went wrong:
- I managed to break a drill and a screw inside the heatsink. They're still there to provide better cooling
- Other than causing a short circuit, during soldering I managed to melt a poor BNC connector
- After repeatedly checking for the correct polarity, I managed to solder the trimmer backward: at the minimum position the load was drawing maximum current
- The power supply I choose is TERRIBLE at common mode noise. Placing 150Ω on R16 caused an output current oscillation of 450mA! It was easy to find the cause, because the noise resembles the shape of a capacitor charging after a full bridge rectifier. Replacing R16 with a short "solved" the problem
- The same supply also managed to charge my board up to some unknown voltage (it's a floating power supply). When I came into the circuit to change a resistor for frequency response tuning, the tip of my soldering iron rapidly discharged to earth the board with a nice little blue spark. Unfortunately, the LM358 was in the way and I burned it
- The two bjts, even if the current is evenly spread, do not heat up in the same way: one heats up to 10°C more than the other. I guess that it's probably damaged from previous usage
Output current with the effect of the common mode noise. On ch2 there is the input signal
Thanks for reading!