Create project Need help?
Show more (6)
  • Labs project

130545-1_Platino PWM step-up “high-voltage” Power Supply

Status: In progress
June 3, 2014
Copy of DSC07207.JPG


A step-up or a boost converter circuit converts a low voltage into a higher value output voltage.

The circuit consists of an inductor, a capacitor, a diode and a switch (MOSFET) that’s turned on and off by a pulse width modulated (PWM) signal generated by Platino MCU.

With an input voltage with a range from 8 to 16V the circuit produces an adjustable output voltage of up to 42V (43.5V) at approximately 1A.

The Platino based PWM step- up high voltage PSU is inspired and designed around the “PWM Step-up converter” published earlier in Elektor; with a few enhancements, the switches used for input have been replaced by a Rotary encoder and a push button for easy selection.


  1. Input Supply: 8VDC to 16VDC / 2A
  2. Output Voltage: 16VDC to 42VDC (43.5VDC)
  3. Output Current : 0mA to 999mA

The Complete unit is divided in to three measure sections

  1. Elektor Platino MCU and Display board
  2. Elektor PWM step-up PSU add-on board
  3. Platino PWM step-up high voltage PSU firmware

Elektor Platino MCU and Display board:

This is the heart of the project for the main functioning of the unit. First, it generates the PWM signal for driving a MOSFET and varying the output as per the selection through rotary encoder. It reads the output voltage and current. Also displays the output voltage and current on a LCD. It also allows setting and controlling the output current limit.    

Elektor PWM step-up PSU add-on board:

This add-on board consists of all required components for step-up power supply.

This board can be easily fixed to the Platino board. This board is also responsible for generating +5V supply for Platino MCU board using IC1 LM7805. Power supply needs to be connected at connector K5 and should be for 8V to 16VDC. K6 and K7 are output connectors for +V and –V.  LED1 indicates the active current limiter.    

Circuit Description:

The Platino PWM step- up high voltage PSU has hardware and a software component—both interact strongly with each other to guarantee stability and accuracy of user selections and output values. The heart of the project is Elektor’s Platino MCU board powered by an ATMega328p.

The ATmega328p microcontroller is programmed to produce the PWM signal on the microcontroller pin PB1 with a frequency of 66 kHz, using the internal fast-PWM mode to switch the MOSFET T1. The output voltage is controlled by the mark/space ratio of the PWM switching waveform, and the microcontroller must be able to sense the output voltage level in order to control the waveform. This voltage feedback takes place over the voltage divider network formed by R4, R5 and P1 as shown in figure. The preset P1 is used to allow calibration of the circuit to ensure that the reference voltage may be between 2.3V and 2.9V as mentioned in datasheet. To set up the circuit you can use a known accurate DVM to measure the output voltage and tweak the preset until the displayed value corresponds to the value on the DVM.

The firmware reads the ADC input value from the MCU and calculates the voltage using a voltage divider network consisting of 47 kΩ (R5+P1) and 1.2 kΩ (R4). This set up gives a measuring resolution of 46 mV (((48.2 kΩ/1.2kΩ)×2.56 V)/1023). The voltage reading shown on the 2×16 character LCD can be seen to change in steps of 0.04 V or 0.05V.

To reduce the possibility of overload a shunt resistor R1 is included in the ground output pin, and the voltage drop is measured by a second A/D input of the controller. The networks formed by C7, C5/R2 suppress any RF noise on the analog A/D inputs. The LCD is used to display operational parameters (via menu selection) such as the output voltage and current. The rotary encoder provided by the Platino board is used to increment and decrement the output voltage. The pushbutton on the encoder can be used to enter into the current limit mode.

The use of Fuse F1 in the circuit indicates if the circuit has drawn excessive current or the external power supply has developed a fault, in either of the case the fuse blows OFF. LED1 indicates that the current limiter is active.

Platino PWM step-up high voltage PSU Firmware:

The software for the project is written in BASCOM AVR for ATMEGA328P microcontroller. The Platino board is used for further development of the project. The software part is divided into a number of sections discussed below.

Display Section:

The display section comprises the Platino MCU board and a 16X2 LCD. This section initializes the LCD and on Power up display “Elektor Platino Instruments series ver 1.0 Platino PWM Step – up PSU” for 3 seconds and then displays the Step –up output voltage and current readings read from the ADC of MCU.

Voltage setting section:

This section reads the ADC 3 and ADC 4 values for voltage and current. It also allows to set the value of voltage by rotating the rotary encoder in clockwise direction for increment and anticlockwise for decrementing the voltage. When voltage is incremented the PWM value is also incremented. When the ADC value crosses 1020 the PWM value is reset to 0.

Current setting section:

This section allows setting the output current limit. The maximum value of current that can be set is 1A.on single press of the encoder push button you can enter into the current setting mode. Timer interrupt is used to switch from one mode to another.


First build the Platino with its LCD, rotary encoder with pushbutton, ATMEGA328P MCU and all other components, then ‘jumper’ it as shown in Table 2

The add-on board that consists of the main circuitry for the PWM step-up high voltage PSU

Operation & Testing:

  1. Make sure everything connected properly that is LCD, Platino MCU board and PWM PSU add-on board. 
  2. Connect the power supply between 8VDC to 16VDC to connector K5.
  3. Switch on the Power, Platino starts with its name and finally shows the output voltage and current on screen, default setting is 20VDC and as usual with no load current is 0.
  4. Now vary the rotary encoder to change the output voltage within the range.
  5. Pushbutton on rotary encoder can be press to set the current limit of the output current from 0 to 0.999A by again varying rotary encoder.
  6. The display will automatically come out to main screen after some standstill movement of rotary encoder.
  7. Connect the load to connector K6 and K7 for +V and –V.
  8. LCD now shows output voltage as set and load current taken by load.            

Table 1. Microcontroller Pins Usage

Pin designation       Function

PC0–PC2:                    Encoder with pushbutton

PB5:                            LCD backlight control

PC3:                             Analog voltage input

PC4:                             Analog current input

PB2:                             Current control LED

PB1:                          PWM Signal


Table 2. Jumper settings on Platino

JP3:     PB5

JP4:     PC0

JP5:     PC1

JP6:     PC2

JP8:     RESET

Read the full post
Show less


Loading comments...