In the previous tutorial, open loop buck converter was designed. In this series, following SMPS circuits are designed –
1. Boost Converters –
a) Open Loop Boost Converter
b) Closed Loop Boost Converter
c) Open Loop Boost Converter with Adjustable Output
d) Closed Loop Boost Converter with Adjustable Output
2. Buck Converters –
a) Open Loop Buck Converter
b) Closed Loop Buck Converter
c) Open Loop Buck Converter with Adjustable Output
d) Closed Loop Buck Converter with Adjustable Output
3. Buck-Boost Converters
a) Open Loop Inverting Buck – Boost Converter
b) Open Loop Inverting Buck – Boost Converter with Adjustable Output
4. Flyback Converter
5. Push-Pull Converter
The open loop buck converter designed in the previous tutorial did not had a regulated output. The output voltage was varying with the resistance of the load. The output of the circuit designed in the previous tutorial could be regulated by adding a feedback circuit in it. The feedback circuit could help in error detection of the output voltage and change duty cycle of the frequency on which circuit operates to provide a constant output voltage irrespective of the load resistance.
Contrary to Linear Regulators which step down the DC voltage by dissipating the heat, Buck Converters step down the DC voltage through switching regulators and also step up the output current. According to the law of power conservation, input power must be equal to output power.
Pin = Pout
Vin*Iin = Vout*Iout
So in the buck converter as the input voltage (Vin) is greater than output voltage (Vout), so the input current (Iin) is always less than the output current (Iout). The switching regulators provide more efficiency up to 90% if the SMPS is designed properly.
A Buck Converter can be designed in two ways –
Open loop buck converter – In open loop buck converter, there is no feedback from output to input contrary to the closed loop which has a feedback circuit. So, the output of an open loop buck converter is not regulated.
Closed loop buck converter – In closed loop buck converter, there is a feedback from the output to the input. So, the output of a closed loop buck converter is regulated.
There are certain design parameters involved in the designing of the buck converter. It is important to understand these design parameters. Any buck converter can operate in either of the two possible modes of operation. These modes of operation are as follow –
Continuous Conduction Mode (CCM)- In CCM, the current in the inductor is continuous in the entire cycle of the switching period. So a regulated voltage at the output is obtained but the output is regulated only if the current is drawn within the limits of CCM.
Discontinuous Conduction Mode (DCM)- In this mode, the current in the inductor is pulsating and it becomes zero for a part of switching time. So a regulated voltage is not received in DCM. But, the voltage can be regulated by connecting a feedback circuit from output to input.
In this tutorial, a non-isolated buck converter is designed which means the input and output share the same ground. The buck converter designed in this project will step down 12V DC to 5V DC with a tolerance limit of +/-0.5 V. Once the circuit is designed and assembled, the value of the output voltage and current will be observed using a multimeter. These values will indicate the efficiency of the buck converter designed in the project.
Components Required –

Fig. 1: List of Components required for Closed Loop Buck Converter
Block Diagram –

Fig. 2: Block Diagram of Closed Loop Buck Converter
Circuit Connections –
In this project, a closed loop buck converter operating in DCM mode is designed and the component values as per the DCM standard equations are calculated for the desired output.
The buck converter has the following circuit blocks –
1. DC source –
A 12V Battery is used as the input power source in the circuit.
2. Oscillator and Switching Mechanism –
For switching purpose a transistor and a diode are used as switching components.
The switching components have to operate on a specific frequency. This frequency is generated by an oscillator circuit. In this project, Arduino UNO is used to generate a PWM signal which provides the required frequency. Any other Arduino Board like Arduino Mega can also be used. In fact, any microcontroller or microcontroller board which can output PWM can be used in the circuit. Arduino is chosen as it is the most popular prototyping board and can be easily programmed. Due to large community support, it is easy to learn and work on Arduino. The PWM signal is a train of the pulse which is used to turn ON and OFF the MOSFET. The MOSFET is used as the switching transistor in the circuit.
For switching purpose, a transistor and a diode are used as a switching component. For the selection of the transistor, MOSFET is chosen as FETs are known for their fast switching speed and low RDS (ON) (drain to source resistance in ON state). In this configuration, the MOSFET is connected in high-side configuration. As in high side, the N-channel MOSFET requires a Bootstrap Circuitry or a Gate Driver IC for its triggering, this makes the driver more complicated. A P-channel MOSFET (shown as Q1 in the circuit diagram) is used in the circuit as it does not require a Gate Driver in its high side but it has high Rds (On) as compared to N-MOS. This results in more power loss. The MOSFET used in the circuit has its threshold voltage around 10V to 12V.
The switching time of the MOSFET and diode should be less than the rise and fall time of the PWM wave. The diode should offer low voltage drop in forward bias and the RDS (ON)of the MOSFET should be low. Always a gate to source resistance should be used to avoid any unwanted triggering of the MOSFET by external noise. It also helps in fast turning OFF the MOSFET by discharging its parasitic capacitance. A low value of the resistor (10E to 500E) can be used at the gate of MOSFET. This will solve the problem of ringing (parasitic oscillations) and inrush current in the MOSFET. The voltage level of the PWM signal should be greater than the threshold voltage of the MOSFET. So that the MOSFET can be turned ON fully with minimum RDS (ON ) .
The MOSFET cannot be triggered by the microcontroller as the microcontroller can generate a 5V PWM signal only. Therefore an additional IC IR2110 is used in the circuit to generate a PWM signal of 12V and the input to the IR2110 is provided by the microcontroller. IR2110 is a high and low side driver. It is a high speed (operational at high frequency) power MOSFET and IGBT driver with independent high and low side referenced output channels. The floating channels can operate up to 500V or 600 V. The IC is 3.3V logic compatible that is why it can be used with any microcontroller. The IC comes in a 14 Lead PDIP package. IR2110 has the following pin configuration –

Fig. 3: Table Listing Pin Configuration of IR2110 IC
Another switching component used in the circuit is a diode. The switching time of the diode should be less than the rise and fall time of the PWM wave. The Arduino board generates a PWM wave having rise time 110ns and fall time of 90ns. The forward voltage drop of the diode should also be very low otherwise it will dissipate power which will further reduce the efficiency of the circuit. The diode should offer low voltage drop in forward bias and the RDS (ON)of the MOSFET should be low. So in this experiment, a BY399 diode is selected which suits best to the circuit design.
Before generating the PWM signal the switching frequency for the circuit needs to be decided. For this buck converter, a switching frequency of 20kHz is selected which will work fine for this converter design.
The duty cycle of the generated PWM signal is another important consideration as it will decide the active state of the MOSFET. The duty cycle can be calculated as follows –
Duty Cycle, D% = (Vout/Vin)*100
Desired output voltage, Vout = 5V
Input voltage, Vin = 12V
By putting all the values,
D% = 40% (approx.)
For generating 20 kHz PWM signal with 40% duty cycle, the Arduino board is programmed. The Arduino sketch required for generating the desired PWM output is attached in the tutorial. It can be downloaded and burnt to an Arduino board for use.
The higher is the frequency selected for switching components, the higher are the switching losses. This decreases the efficiency of the SMPS. But high switching frequency reduces the size of the energy storage element and improves the transient response of the output.
3. Energy Storage Element –
An inductor is used for storing the electrical energy in the form of magnetic field. So the inductor acts like an Energy Storage Element. An inductor of 500 uH value is used in the circuit. For an inductor, a transformer’s secondary or primary coil, relay coil or any standard inductor can be used which has the desired inductance value. The inductor current rating should be greater than the inductor ripple current so that the desired current at the output can be obtained.
4. Output Filtering Element –
As a filtering element, a capacitor (shown as C1 in the circuit diagram) is used at the output of the circuit. In normal operation of Buck converter circuit, the transistor Q1 turns ON and OFF according to the frequency of the oscillator circuit. This generates a train of the pulse at the inductor L1 and capacitor C1 as well as transistor Q1. As the capacitor is connected with inductor in both negative and positive cycle of the PWM signal. This makes an LC filter which filters the train of the pulse to produce a smooth DC at the output. The value of the capacitor can be calculated by using following equation of DCM –
Cmin >= (Iout(max)*(1-(Iout(max)/DIL))2)/Fs*DVo
Where,
Cmin = Minimum value of capacitor
Maximum output current limit forregulated output voltage, Iout(max)= 100mA
Switching Frequency, Fs = 20kHz
Considering Output Ripple Voltage, DVo = 100mV
DIL=Inductor Ripple Current/ Inductor Peak Current
Now for calculating unknown term DIL, following standard equation of DCM can be used –
DIL = ((Vin – Vout)*Ton)/(L)
As the capacitor value is inversely proportional to the output voltage, therefore, the value of capacitor for minimum output voltage i.e 5V should be calculated. So,
Desired output voltage, Vout = 5V
Input voltage, Vin = 12V
Ton = Active or ON time of MOSFET is given by
D = Ton/Ts
Ton = D*Ts
Where,
Switching Time, Ts = 50us ……..(since Ts = 1/fs)
Duty cycle, D= 0.4
Ton = (0.4*50*10-6)
Ton = 20us
Now by putting all the values,
DIL = ((12 – 5)*20*10-6)/(500*10-6)
DIL= 280mA
Now on putting all the values in capacitance equation,
Cmin >= (0.1*(1-(0.1/0.28))2)/(20*103*0.1)
Cmin >= 20uF (approx)
As it is the minimum value of capacitor required, so in the circuit a capacitor of standard value is used which can be easily available, so, capacitor of 47uF is taken.
The value of the capacitor should be greater than or equivalent to the calculated value. So that it is able to provide the desired current and voltage at the output. The capacitor used in the circuit must be of higher voltage rating than the output voltage. Otherwise, the capacitor will start leaking the current due to the excess voltage at its plates and will burst out. It is important that all the capacitors should be discharged before working on a DC power supply application. For this, the capacitors should be shorted with a screwdriver wearing insulated gloves.
5. Feedback circuit –
In the previous tutorial, it was seen that without any feedback circuit a high voltage at the output was received when there was no load connected. When any load at the output was connected then the output voltage dropped below the desired output voltage. so there was a need to regulate the output voltage by connecting a feedback circuit.
So in this circuit, a feedback is provided from the output terminal to the input terminal which regulates the output voltage even when no load is present at the output. The Feedback circuit has to calculate the error in the voltage and then the microcontroller automatically adjust the output voltage as per the desired voltage. This adjustment of the error voltage is managed by the Arduino sketch running on the board.
For providing feedback, a resistor ladder is used at the output(as shown in the circuit diagram). For calculating the value of resistor network, the maximum output voltage of the circuit in open loop must be known when no load is connected to the output. That will be the desired output voltage which should feed from the resistor divider network to the analog pin of the controller (as shown in circuit diagram). The output voltage should be equal to 5.2V as microcontroller provides the 5.2V as a reference voltage. The value of resistor network can be calculated as follow-

Fig. 4: Table Listing Pin Configuration of IR2110 IC
As per the resistor divider rule,
Vr= Vo*(R4/R3+R4)
Desired voltage to the analog pin, Vr = 5.2V
Assuming maximum Output voltage of Open Loop Buck Converter without load, Vo = 12V
Let’s assume R4 = 1K now R3 is
5.2= 12*(1000/R3+1000)
R3 = 1.5K (approx.)
So R3 = 1.5K and R4 = 1K
Now the power rating of both the resistance R3 and R4 can be calculated as follow –
(For R3), P3 = (Vo-Vr)2/(R3)
By putting all the values,
P3 = 30mW (approx.)
(For R4), P4 = (Vr)2/(R4)
By putting all the values,
P4= 27mW (approx.)
The resistors with power rating greater than or equal to the calculated power rating should be used.
How the circuit works –
Any SMPS has some switching components which turn on and off at high frequency and has some storage component which store the electrical energy while the switching components are in conduction state and discharge the stored energy to the output device while the switching components are in non-conduction state.
A simple Buck Converter consists of the inductor (L1), a diode (D1), a capacitor(C1) and a transistor which acts like a switch. Initially when the switch is open then the current in the circuit is zero. When for the first time the switch is closed then the inductor opposes the change in current and produces an opposing voltage at its terminal. This makes the diode reverse biased. The voltage drop across inductor counteracts the source voltage which results in less voltage at the output. When time elapses the rate of change of current decreases and the voltage drop across the inductor also decreases. In this state, the inductor starts storing energy in the form of magnetic field. The output capacitor is charged throughout the ON state. The stored charged in the capacitor provides the required current to the load in OFF state.

Fig. 5: Circuit Diagram showing ON state of switching Component in Buck Converter
When the switch opens, the input source is disconnected from the circuit and the current starts decreasing and becomes zero. As the inductor has stored energy in the previous cycle, it now acts as an energy source. Hence, the inductor creates a polarity across it. This is opposite in polarity as in the ON state. This makes the diode forward biased and the inductor now provides the current to the load through diode D1. When the stored charge in inductor starts reducing then the output voltage starts falling. Now the capacitor acts as a current source and keeps providing the current to the load until the next cycle i.e. ON state. The overall effect is that at the output a small DC voltage with high output current is obtained as compared to the input.

Fig. 6: Circuit Diagram showing OFF state of switching Component in Buck Converter
In the ON state, the Diode was in blocking Mode (OFF) and the Transistor was ON. In OFF state, the Diode was in conducting mode (ON) and the Transistor was OFF. So, a Buck Converter is having two switches, one is a transistor and another one is the diode. At a time only one of them conducts while other goes in non-conduction state.
This is how any buck converter operates. The buck converter designed in this project is closed i.e. a feedback circuit is added to it. The feedback is provided via a voltage divider network. The output voltage is sensed by the voltage divider resistor ladder and supplied to one of the microcontroller pin. The microcontroller board used in the project is Arduino. The in-built ADC channel of the Arduino converts the detected voltage into a digitized reading. The Arduino is programmed to compare the output voltage with a reference voltage and the difference between the two is the error voltage. In order to compensate the error voltage, Arduino is programmed to change the duty cycle of the PWM signal controlling the transistor circuit. By changing the duty cycle of the PWM signal, the output voltage is modified to the desired output.
Testing the Circuit –
This buck converter has been designed to step down 12V DC to 5V DC.

Fig. 7: Prototype of Closed Loop Buck Converter desiggned on a breadboard
In this circuit, Input Voltage, Vin = 12V
Practically, Battery Voltage, Vin = 11.8V
On measuring voltage and current values with different loads at the output, following observations were taken –

Fig. 8: Table Listing Output Voltage and Current from Closed Loop Buck Converter for Different Loads
So, it can be observed that a current of 96 mA can be drawn at 5V output with a tolerance limit of +/-0.5V.
The power efficiency of the circuit at maximum output current of 96mA can be calculated as follow –
Efficiency % = (Pout/Pin)*100
(Output Power) Pout = Vout*Iout
(Output Voltage), Vo = 4.86V
(Output Current), Iout = 96mA
Pout = 4.86*0.096
Pout = 467mW (approx.)
(Input Power) Pin = Vin*Iin
(Input voltage) Vin = 11.8V
(Input Current) Iin = 52.5mA
Pin = 11.8 *0.525
Pin = 619mW (approx.)
By putting all the values,
Efficiency % = (467/619)*100
Efficiency % = 75% (approx.)
The efficiency of this design is less as the power losses in the circuit are not considered. There are switching and conduction losses of diode and MOSFET, losses in the windings that surround the core, eddy current losses and hysteresis losses in the inductor, capacitor losses due to ESR (equivalent series resistance) and losses due to high Rds(on) of P-MOS.
This is a closed loop buck converter with non-isolated output and operating in DCM mode. It can be used as a low loss current source to drive LEDs or power portable self-powered devices. It can also be used as an interface between battery and components in CPU or notebooks where voltage demand is lower than the battery voltage.
You may also like:
Project Source Code
###
//Program to Code for Buck Converter with Input voltage = 12V and Regulated Output voltage of 5V This code will generate a PWM (Pulse Width Modulation)signal of 20kHz with 50% duty cycle and adjust the duty cycle as per the desired output voltage */ #define TOP 799 // Fosc = Fclk/(N*(1+TOP), Fosc = 20kHz, Fosc = 16MHz #define CMP_VALUE_HALF_DUTY 399 // 50% duty cycle #define FeedbackPin A5 // feedback pin at A5 #define R1plusR2_resistor 2.5 // variable of R1+R2 value #define R1_resistor 1.0 // variable of R1 value #define PWM 9 // PWM(Pulse Width Modulation) wave at pin 9 float Map_ADC(); // function declaration float Map_ADC() { // function definition int Digital_Read = analogRead(FeedbackPin); // reading analog voltage form 0 to 5.2V and converting it to digital values in between 0 to 1023 float ADC_READ = (Digital_Read/1024.0)*5.2; // mapping the digital value into analog voltage of 0 to 5.2V float mapping_result = (ADC_READ*(R1plusR2_resistor/R1_resistor)); // calculating the actual output voltage return(mapping_result); // return the calculated output voltage } void setup() { // put your setup code here, to run once: pinMode(PWM,OUTPUT); // set 9 pin as output pinMode(FeedbackPin,INPUT); // set A5 pin as input TCCR1A = 0; //reset the register TCCR1B = 0; //reset the register TCNT1 = 0; //reset the register TCCR1A |= (1<5) { //comparing actual output voltage with desired output voltage to find error in voltage OCR1A ++; // if error is positive the duty cycle is increased but it is decreased for P-MOSFET as it is triggered by low voltage } else if(actual_output_voltage < 5) { //comparing actual output voltage with desired output voltage to find error in voltage OCR1A --; // if error is negative the duty cycle is increased for a regulated voltage of 5V } } ###
Circuit Diagrams
Project Video
Filed Under: Tutorials
Filed Under: Tutorials
Questions related to this article?
👉Ask and discuss on Electro-Tech-Online.com and EDAboard.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.