A Digitally Controlled Dual Tracking Power Supply — II

In my previous post, I showed my design of a dual tracking ±30V linear power supply. My goal was to use the transformer (28V+28V, center tapped) from an old Deltron W127G open-frame power supply and build a lab supply that can be digitally adjusted in both constant voltage and constant current modes. I also wanted each of the channels to be able to deliver up to 10 Amps of current so that I could fully utilize the 540VA transfomer from the W127G.

The following is the finalized schematic for the positive power supply portion (pretty much identical to the schematic I used in my simulations earlier). Here, I used four TIP35C‘s in parallel as the NPN transistor in the Sziklai pair. Because the input voltage is fixed at roughly 30V under maximum load, in a dead short scenario the power dissipated in the pass transistors is at least 300W and thus four transistors are needed to be able to share this worst case load. If you are building a power supply that is rated for just a couple of Amps, you can use just a single power transistor. I also added a buffer between the DAC and the voltage control loop OpAmp (IC1A) to improve stability. Because the digital/analog converter is not isolated, using a buffer between the DAC and the control point can greatly reduce the risk of damaging the DAC or the MCU should one of the OpAmps fail during operation. Similarly, a voltage follower was also added to buffer the current setting output from IC1B. The protection diodes were included to protect the inputs of the OpAmps during large voltage swings in transient events (such as power on).

ps_pos

The temperature stability of the regulated output voltage is largely dependent on the temperature coefficients of the resistor divider R10 and R11. As I explained previously, the output voltage is determined by:

\[V_o = \frac{R_{10} + R_{11}}{R_{11}}V_{Ctrl}\]

So using resistors with similar tempco characteristics and low tempcos is preferred if low output drift is desired. Similarly, the resistors used in the current amplifier (R14-R16) along with the current shunt resistor R13 need to be high accuracy and low tempco reistors as well if precise constant current setting is required.

The schematic for the negative power supply portion is shown below. Again, the main differences between this finalized schematic and the one I used in simulation previously are the paralleled pass transistors and the buffered tracking output. As I mentioned before, for accurate tracking performance we only require that R10 and R11 to be equal in value. And as long as they are chosen from the same batch (i.e. same tempco) their temperature drifts can be largely canceled out when they are thermally coupled (e.g. placed side by side). The negative portion of the circuit does not have the current setting capability for reasons I explained earlier, rather the maximum supply current is limited by the Vbe of T7 and the value of R13. For the values given, the current limiter starts to kick in when the load current reaches around 7A. The load current will continue to increase slowly if the load is increased after this point and will plateau at around 10A when the load is completely shorted.

Most modern power supplies utilize two separate transformer windings for the two output channels and the circuits for each channel (except for the tracking portion) are made identical. This would be the preferred approach as the characteristics of the two channels can be made near identical. But here I am limited by the center-tapped transformer I’ve got.

ps_neg

I used two MCP4821‘s to drive the voltage control OpAmp and the current control OpAmp since I’ve got quite of few of these single 12-bit DAC’s. Of course you should consider using a single two channel DAC such as MCP4822 (see my code examples) if you are buying new parts, using a single two channel chip can free up a pin for the chip select and you can use it for other purposes. Voltage and current limit adjustments are achieved via two encoders. The encoders I used also have buttons built in, so as with my electronic load design, by pressing the buttons you can change the adjustment ranges between fine and coarse (x1, x10 and x100 per step).

ps_ctrl

Here are the auxiliary power supply circuits. The ±12V rails are used for the OpAmps and the +5V rail is used for the MCU and DAC. The diodes are needed to drop the input voltages that go into the three terminal regulators to be within the maximum allowed voltage (~37V).

ps_misc

Here are a couple of pictures of the MCU/DAC board. The microcontroller I used is an ATmega328P and the pin designations shown below are compatible to the standard Arduino pinout. The full code listing can be downloaded towards the end:

ps_mcu1 ps_mcu2

And here is a picture showing the overall layout of the power supply. The transistors for the positive channel are mounted towards the upper edge and the transistors for the negative channel are mounted towards the bottom. The two regulators for the ±12V voltages are located towards the center left (I used LM317/LM337 instead of 7812/7912 since I have plenty of them) and the 5V regulator is mounted on the other end of the board (hidden under the MCU board assembly).

ps_1

The picture on the left below is a closeup of the OpAmp board. Towards the back on the right you can see the aforementioned 5V regulator. The picture to the right is a closeup of the positive supply portion. Underneath the metal bar are the power pass transistors, you can infer their locations by the placements of the four 0.1 ohm resistors. The leftmost transistor is a TIP42 (T5). Technically speaking, it does not require heat sink. But it is convenient enough to put it along with all the other power transistors.

ps_ctrl1 ps_posrail

So, does it work? For those who are impatient, here’s a picture showing the power supply set for the maximum output voltage and maximum current limit:

ps

In my next post I will take some measurements and take a look at the some specs of this power supply.

Downloads

PowerSupply.tar.gz
PJRC’s Encoder Library

Be Sociable, Share!

36 Comments

  1. Kev Scott says:

    Very interesting article! Did you have a ripple voltage target in mind at the start of the design?

    • kwong says:

      I didn’t specifically have that as part of my design parameters, but as with most linear power supplies, the PSRR largely depends upon the voltage reference quality and the error amplifier. I will do some measurements and report my findings next time.

  2. Jim B says:

    Kerry, thanks for sharing your work. At the end you show the power supply delivering maximum power, but perhaps a more stressful test is to deliver maximum current at low voltage, as that is when the pass transistors of the linear regulator have to dissipate the most power. Also, some non-linearities which might not be obvious at higher voltages will show up when you drive the output voltage low.

    I found that out the first time I built a simple linear supply and watched my output voltage bounce up and down as the thermal cutout kicked in, cooled off the regulator, turned off, and the cycle repeated.

    All the same — great job!

  3. Fake Name says:

    I’m curious about R8/C3 on both schematics.

    It’s a resistor & capacitor straight from the op-amp output to ground. Since it’s within the op-amp feedback loop, it won’t affect the loop under normal circumstances, except to perhaps reduce the phase margin slightly.

    The only thing I can think of is it’s either related to dealing with turn-on transients, or you’re doing something clever with the op-amp’s internal output resistance (which is specified in the datasheet).

    What is the intension behind these parts?

  4. Donatas says:

    Hi,
    would it be possible to use your design’s positive part to make 0-30V power supply? Or I would need to make some modifications (aside from software)?

  5. Jan Heijnen says:

    Hi Kerry
    Thank you for sharing your designs with us. I am impressed with the simplicity of the tracking power supply. Just a question, what is the status of the supply when you switch on, does it indicate the same voltage as the time when you have switched it off or will it be a random value?
    Regards
    Jan Heijnen

    • kwong says:

      Hi Jan,

      The power-on values are set to 0V/0A in my implementation, but you can program it in EEPROM and recall the voltage if you’d like. Because the DAC is held in reset states during power on, the output transient is quite clean.

  6. […] set out to build a digitally controlled dual supply for his bench. He’s already built a supply based on the LM338 linear regulator, but the goal […]

  7. dan21 says:

    Hi Kerry !
    Nice work !! I’d like to build this PWS but only positive rail and only to 5A. So I assume I’ll need only two TIP35′s. Correct ? One more question. In your firmware you are using some libraries (arduino LiquidCrystal, SPI) but I could not find Encoder library. Is it some “custom” or not includeed in arduino ?

    THX
    Dan

  8. Rix says:

    Hi
    Nice project! I am planing to build the PSU. I want to add the possibilities to read out the current consumption, both on the positive and negative rail. How easy can this be done and how?

    • kwong says:

      Hi Rix,

      Measuring positive side is easy, you can simply measure the output voltage from LT1605 (pin 5) as it is proportional to the current passing through R13. Using the parameters given, the output voltage goes from 0 to 2V when the current changes from 0A to 10A. You could just use one of the remaining analog pins on the MCU to measure this voltage, but the resolution would be limited to at most 10bits.

      The negative side is a bit tricky if you do not want to use a separate power supply. As I explained in my post, the negative rail goes below the common input range for most current sensing opamps. But, if you have a separate power supply, you could easily monitor the current going through the 0.1 Ohm resistor on the negative rail using low side current sensing (treat the negative rail as ground and power your current sensing opamp independently). Hope this helps.

  9. Jan Heijnen says:

    Hi Kerry
    I see that you have a encoder.h file which I have found. Where can I get the SPI.h file?
    regards
    Jan Heijnen

  10. Neil Fryer says:

    Hi,
    Thanks for sharing this PS project, it’s just what I’m looking for, high current but simple. I’m not sure if your aware that according to page 20 of the LT6105 datasheet it can be used to sense the negative current. If that’s right I assume the negative layout can be the same as the positive with the two limit inputs. Are the big 10 watt ceramic resistors, the 0.1 ohm current sense resistors, and are R1 to R4 higher wattage resistors as well.
    Thanks

    • kwong says:

      Yes, I did see that.

      What’s tricky is that the common mode input is not symmetrical about V- (44V about to 0.3V below). This means you must power the V- from the negative input (after the rectified and filtered output) directly. Quoting from the datasheet:

      The only requirement for negative
      supply monitoring, in addition to the usual constraints of
      the absolute maximum ratings, is that the negative supply
      to that LT6105 be at least as negative as the supply it is
      monitoring.

      Since the maximum allowed power supply range is 36V, you will not be able to use it since the input voltage is already at approximately 40V and you still need a V+ of 5V.

      That said, if your power supply design calls for an output voltage of ±20V (instead of ±30V or above like the one I had), then you could use LT6105 on both positive and negative side.

  11. Neil Fryer says:

    Ah, I see, so the problem is that the difference between V- and V+ exceeds 36V. I was intending to reduce the current as I was going to power op-amp circuits and so I could also reduce the voltage to ±20V and use the LT6105 and have a separate high current 30V variable supply as well. Does the input voltage to the regulator need to be a certain amount over the highest regulated output voltage as you need with standard to220 regulators.

    • kwong says:

      Not only the difference between V+ and V- cannot exceed 36V. When you measure negative voltages, the negative voltage can not be more than 0.3V below V- (whereas when you measure positive side the voltage can be 44V higher than V+).

      Anyway, the minimum input/output difference (i.e. dropout voltage) is around 1V, but you should allow plenty of margin (i.e. 2V) to ensure proper regulation.

  12. Christian says:

    Hi Kwong,

    Nice project. Is there any current fold back implemented as well as overcurrent/overvoltage/thermal protection? Can it sink current?

    Regards,

    Christian

    • kwong says:

      Now, it doesn’t have current fold back, over voltage or thermal protection. It does have precision constant current capability. Like most power supplies, this one can only source current but not sink current.

      • Christian says:

        Well, is there any protection at all? (like fuses)

        For me, it would be a nice feature to monitor temperature and/or current state by time to implement a protection when not in constant current mode. (Like shutdown when trip_current is valid for >= $time)

        Anyway, great project.

        Regards,

        Christian

  13. Rix says:

    Hey Kwong,

    Now, I am finish with build the PSU, but i have oscillation problems. I are using LF353 as op-amps, and i have placed the caps very close to the op-amps. What could be the problem?

    Regards,
    Rix

    • kwong says:

      Hi Rix,

      As a first try, could you disconnect D1 to isolate the current limiting portion of the circuit and see if it oscillate? If it still oscillates, temporarily disconnect C3,C4,R8,R12 from IC1A and observe the output and add back the feedback to see if the oscillation still persist.

      Because the open loop gain of the opamp is high and combining with the none-linearity of T6, it can easily lead to oscillation if the values of the feedback network/snubber network did not match the oscillation frequency.

      Also, you could try increase C1 to 10uF to see if the oscillation stops.

Leave a Reply