Digitally controlled, dual channel power supply โ€“ part2



In this second part I will depict the main features + how the firmware is controlling all blocks. Here below a picture with the power supply switched on, supplying 8,2Volts to a 12V bulb, for test purpose. It can be seen that Ac=0,591 (Amps), representing the instant current consumption.


Power supply CH1=On, CH2=Off


Voltage and current limit adjusting sub-menu: CH1 & CH2 buttons will display this sub-menu, where the user can navigate between Vo=voltage output and Al=Ampere limit. The highest voltage is 15V, the highest current limit is 6Amps. Whenever the consumption raises above the current limit the channel output is automatically switched off. The short-circuit protection works in the same way, it detects a current overload so it disables the output. As an observation, the voltage/current limit can be adjusted regardless of output state. Below a snapshot with CH1/CH2 adjusting sub-menu.



Save/Recall list sub-menus: There are 6 entries in the list, which can be freely replaced by the user. After the desired voltage & current limit are set on one of the channels, by going in “Save list” sub-menu these settings can be stored on any position by hitting the corresponding channel button (CH1/CH2). From this point onwards, these values can be reused by going in “Recall list” sub-menu on the corresponding position and pressing again the desired channel to load these settings (CH1/CH2).



Calibration sub-menu:
this feature can be used any time to perform a power supply self-calibration. Before starting it, a 10 Ohm, minimum 5W resistor has to be placed between GND and VCC of desired channel. When calibration is started, the firmware outputs a specific voltage and measures the overall resistor value created by internal PCB and the additional wires up to front panel connectors. For a good calibration, it is recommended to have a low tolerance resistor. There are several parameters in this sub-menu:

  • R: represents the voltage ratio given by R100/R101 for channel1 and R102/R103 for channel #2 (see ADC interface from part1). The formula is: R = [R101 / (R100 + R101)] ~= 4,7
  • Vref: is the voltage reference value used by MCP3204 converter. Should be around3V3, but for high accuracy this should be measured and loaded in this field.
  • Start: press CH1/CH2 for starting, the returned message is OK1/OK2 or ER1/ER2 in case of failure.



*** The firmware measures continuously the output voltage and current consumption. It uses then an algorithm which adjusts the output voltage value according to the latest values measured. The adjusting itself is done in small steps to avoid voltage swings so that the output value will remain constant(peak-to-peak very low) regardless of current consumption.

*** The power supply can be fully controlled over UART interface, from PC for example (no PC application included here).


Here attached 2 more pictures for reference. A watchphone is connected to channel 1 and a multimeter set to measure the current consumption. The value is around 80mA, immediately after network registration.


Current consumption (1)

Current consumption (2)










Finally, the firmware link: here.


For any question please use “Contact form”.