I've been putting together a design for a microcontroller based lab powersupply for me. I want it to be flexible and easy to tinker with the software. Precision is nice, but not a main concern. I think that this may be interesting for others too and am contemplating providing PCBs/kits/units at a later stage.
Microcontroller based Lab Power-Supply
Inspired by the Dave's EEVBlog power-supply series, see www.eevblog.com
Modular construction: You can build and test individual modules separately, independent of others working or even being present. Also, if you don't need all parts/gadgets you can just build the parts you need and leave the rest off. For example you can forego the switching pre-regulator or the ucurrent uamp measurement circuit.
The construction is mixed, mostly SMD with some trough-hole. Some parts are through-hole, especially if variants are used. The micro and the op-amp are SMD, because they are not available in through-hole packages. I don't now how big of a draw-back the SMD construction is if this gets distributed as kit one day.
The power supply does not connect directly to mains power, but uses a standard power supply as input. This allows us to skip all mains safety related questions as those are cared for by the upstream mains power supply. The power supply input is 10V to 20V. There are plenty of laptop power supplies who supply DC power in this range. There may be limitations, like 30V-3Amps only being available on 20V power. This mainly to keep the switching preregulator reasonable.
- Linear power regulator, takes two input voltages (vset/iset) and translates it into 0-40V/0-4A output with 10mV/1mA resolution. This can me modified, for example to 0-10V/0-1A with 2.5mV resolution. We use the LT3080 (1 amp) or LT3083 (3 amps), for the regulation. These regulators allow to go down to zero volt/amp. The target precision is 1%.
- Switching pre-regulator, takes 10-20V input and translates this into 2-32V. It follows the output voltage, reducing the drop-out voltage of the linear regulator to 2V. This reduces cooling requirements for the linear regulator a lot. It also allows to use any available DC power from a 12V battery to a laptop power supply and get up to 30V output.
- Microcontroller based. The micro (AVR atxmega32A3U) has an USB interface, drives a graphical LCD display and reads rotary switches. It generates the 0-1V ouput (via DAC) used as regulator input. If desired the microcontroller can be replaced with two potentiometers and a 1V reference. The USB interface does not provide galvanic isolation !
- High precision reference. If a better precision than the built-in 0.5% reference of the microcontroller is desired a separate 1V reference can be added. In this case the relevant resistors in the circuit must be of high precision too.
- uCurrent small current measurement device. This is a small shunt with amplifier to measure small currents (uAmps).
- Bluetooth interface. There is a slot to add a simple bluetooth serial interface module. This allows to interface the power supply with a computer wirelessly (galvanic isolation).
- Simple Volmeter. A spare ADC channel is wired to provide a simple 0-40V voltmeter (10mV resolution). Signal ground hardwired to power supply ground. This is not for precision, ut for convenience.
- 0-30 V
- 0-3 Amps (LT3083), 0-1Amps (LT3080)
- 0-30V in 2.5mV steps (12 bit)
- 0-3A in .025mA steps (12 bit)
- Switching regulator stage -> low power dissipation
- Linear regulator -> low noise
- LT3083 or LT3080
Microcontroller controlled (xmega32A4U)
Computer interface (USB, Bluetooth)
Graphical LCD (128x65)
- 1 Amp version by using a LT3080
- Switching preregulator
- Graphical LCD display
- Rotary knob to regulate voltage
(One or two rotary knobs ?)
- 'Menu' and 'Cancel' button
Open Issues and Caveats
Protection against user error on the output side:
- Input voltage connected when power supply is off
- Reverse polarity input voltage
- High input voltage
Protection against user error on the input side, reverse polarity protection
USB interface not isolated
USB ground not equal to ouput ground due to ucurrent device in the return path