In an earlier post, I introduced a project to design a precision bench power supply. In this post, I describe a prototype linear regulator design with constant current control. Here is the schematic:
(Please forgive the poor artistic skills.)
The design is straightforward. The opamp U1A regulates the voltage at the load by adjusting the gate voltage of the pass transistor Q1. The 0.2ohm resistor R1 is a high-side current sense resistor. The voltage across R1 is fed into a 10K/390 = 25.64 gain differential amplifier. The opamp U1D and the transistor Q2 pull down the gate voltage to maintain the current limit. Note, this is negative feedback, since increasing the Q2 gate voltage lowers the Q1 gate voltage and hence the load voltage. For the prototype, I used:
- MCP4912 12-bit SPI-controlled DAC with Vref = +5V
- Q1 is a Fairchild MTP3055VL
- Q2 is a BS170
- U1 is a MCP6004 quad opamp
- it is controlled by an ATmega MCU
For what it is, the circuit seems to work nicely. Here is an LED being driven with a 20mA constant current limit:
This circuit will require major improvements to meet the target precision and voltage range 0-30V. The 12-bit DAC gives a resolution of ~7mA, which might be good enough. I plan to replace the discrete differential amplifier with a TI LMP8640 High-side High-voltage Current Sense Amplifier. A precision voltage reference will be needed for Vref. Finally, there is the question of how to drive the high-side FET. The MCP6004 is a single supply opamp up to +5.5V. One option is to have a +36V or so supply voltage. Finally, there is the subject of the controller stability and performance. Is it stable? What is the transient behavior like, overshoot and settling time? What is the input noise immunity (e.g. from switching noise)? I will return to these subjects in a later post.
I’m going to try to design an open source programmable precision bench power supply. There are plenty of power supply designs floating around (see my recent link roundup), however, I’m not aware of any designs that compare with even low-end professional grade power supplies. I’m going to loosely base my target specs on the $409 Rigol 832 (without the precision upgrade):
- 0-30V and 0-3A adjustable.
- 10mV and 1mA resolution.
- The usual over current, over voltage and thermal protections.
- Quantified regulation accuracy, transient and programming response, and thermal and temporal drift, again, initially aiming for something like the Rigol 832.
I would like the design to be modular in the sense that the above specs could be improved by choosing higher precision components, larger heat sinks, etc. I’m going to aim for a single channel to start but, again, I’d like a modular design that makes it relatively easy to support other channel configurations.
I will aim to produce the following:
- A discussion of the design (as a series of blog posts to start), including background theory and trade-offs. This should make it easy for others to modify the design for different goals.
- A complete set of design files, firmware and instructions so anyone can build a power supply for themselves. There may be a few versions of this (TH vs SMT, multiple channels, higher precision, etc.)
Depending on how successful the design is, interest, etc., I might try to sell bare PCBs, kits, or maybe even a finished product. That’s still a long way off.
I plan to break the design process into several stages. To begin, in order to avoid the complexity of working with mains power, I plan to start with unregulated DC input. This can either be provided by a wall wort, step-down transformer, rectifier and filter, or, in my case, a switching ATX power supply I have lying around. To avoid a huge transformer and minimize the need for heat management in the final design, I plan to use a design which cascades a switching pre-regulator with a linear regulator. This is the design I have been prototyping. Pictured is prototypes of a microcontroller controlled non-inverting buck-boost converter, linear regulator and programmable dummy load. I realize it might be prohibitive to filter the switching noise to achieve high accuracy regulation, in which case I will modify the design when I get more experience. I will describe the circuits in more detail in coming posts as I continue to flesh out the design.
Thoughts? Let me know!