This is a small bench power supply that is powered by two lithium-ion batteries. The project was inspired by Dave Jones from EEVblog but the design is completely mine. The voltage range is 0-20V regulated in 10mV steps and maximum current is 1A with current limit set in 1mA steps.
Linear Voltage Regulator
The power supply runs on a linear voltage regulator built on discrete components. The design of the linear regulator was inspired by the user Amspire from the EEVblog forum. The basic idea is that the Q1 pass transistor and U5A op amp act in a classic voltage regulating loop. U5A gets feedback from the output voltage and acts on Q1 in such a way that the output voltage equals the reference voltage on the inverting input. U5D acts as a comparator and switches the base of Q1 low to set the output voltage to 0V. It acts as a current limiter which is quickly switching on and off the output to maintain the set current limit. The current drawn by the load is measured by a MAX4080 current sense amplifier using a shunt resistor which is made up of 10 smaller resistors to get better power dissipation and current capability. U5B and U5C combined with the adjacent resistors and capacitors act as filters to smooth out the PWM signal from the microcontroller. The output contains two 10uF ceramic capacitors, a protecting diode and a small current source that acts as a small load to make the power supply more stable.
The entire voltage and current limit is controlled by a STM32F103 microcontroller. It might seem as a bit of an overkill for such a project, but actually these microcontrollers are quite cheap and they have the 12 bit PWM required for this project. The STM32 controls pretty much the entire power supply, including the switching pre-regulator, the output voltage and current limit and the front panel with an LCD, swtches and a rotary encoder used to set the desired values. Some USB capability can be added in the future. The user can also make use of the UART connector to plug in some bluetooth or Ethernet modules (with some additional code).
Since two batteries in series give only 8.4V maximum, the power supply needs a boost converter to get the 20V output, and it obviously has one. The MIC2253 with a couple of adjacent components provides the required voltage. The idea is that the DC-DC converter boosts the voltage and the linear regulator provides a smooth output. The bonus is, that with a small digital pot, the microcontroller can keep the input voltage just at the required level (about 2V above desired output) which minimises losses of energy from the battery and the heating of MTB3055 pass transistor.
The STM32 can even switch the pre-regulator off if required and just rely on the batteries powering the linear regulator directly.