In the previous tutorials, Boost Converter SMPS was designed to step up DC voltage and Buck Converter SMPS was designed to step down the DC voltage. Let’s now design Buck-Boost Converter. 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 Buck-Boost Converter is a DC to DC converter which provides the output voltage either less than or greater than the input supply voltage. It is one of the topologies of the Switched Mode Power Supply (SMPS), so, it works on the principle of switching regulators. A Buck – Boost converter can operate in either of the two modes –
Buck Mode – In this mode, Output voltage is less than the input voltage.
Boost Mode – In this mode, Output voltage is greater than the input voltage.
Contrary to Linear Regulators, Buck-Boost Converters use switching regulators. That is why, the voltage is not altered by heat dissipation and the law of power conservation applies to these converter circuits. According to the law of power conservation, input power must be equal to output power.
Pin = Pout
Vin*Iin = Vout*Iout
In Boost Mode of Buck- Boost Converter, Input voltage is less than output voltage, so the output current is less than the input current. While in Buck Mode of Buck- Boost Converter, Input voltage is greater than output voltage, so the output current is greater than the input current. Therefore, SMPS can also Buck or Boost the output current along with voltage which increases its efficiency as compared to linear regulators.
The Buck-Boost Converter can be designed in two ways –
Open loop Buck-Boost Converter – In open loop buck-boost 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-boost converter is not regulated.
Closed loop Buck-Boost Converter – In closed loop buck-boost converter, there is a feedback from the output to the input. So, the output of a closed loop buck-boost converter is regulated.
There are certain design parameters involved in the designing of the buck-boost converter. It is important to understand these design parameters. Any buck-boost converter can operate in either of the two possible modes of operation. These modes of operation are as follows-
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-boost converter is designed which means the input and output share the same ground and the polarity of the output voltage is opposite to the input. The buck-boost converter designed in this project will step down 12V DC to 5V DC with a tolerance limit of +/-0.5 V in buck mode and step up 12V DC to 18V DC with a tolerance limit of +/-0.5 V in boost mode. The converter will have a fixed output voltage in Buck Mode and Boost Mode separately. 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-boost converter designed in the project.
Components Required –
Fig. 1: List of Components required for Open Loop Non – Isolated Inverting Buck- Boost Converter
Block Diagram –
Fig. 2: Block Diagram of Open Loop Inverting Buck-Boost Converter
Circuit Connections –
In this project, an open loop buck-boost converter operating in CCM mode is designed and the component values as per the CCM standard equations are calculated for the desired output.
The buck-boost 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 has to operate on a specific frequency. This frequency is generated through 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 switching components. 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-boost converter, a switching frequency of 200kHz 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 –
Vout = -Vin *(D/(1-D))
For Boost Mode-
Desired output voltage, Vout = -18V
Input voltage, Vin = 12V
By putting all the values,
DBoost /Dmax%= 60% (approx.)
For Buck Mode-
Desired output voltage, Vout = -5V
Input voltage, Vin = 12V
By putting all the values,
DBuck /Dmin% = 30% (approx.)
For generating 200 kHz PWM signal having duty cycle between 30% and 60%, 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 11.5 mH 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 value of inductor can be calculated by the standard equation of CCM as follows –
For calculating the value of inductor, modulus value is considered for both Boost and Buck mode.
Lmin, Minimum value of inductor can be calculated as follow –
Input voltage, Vin = 12V
Switching frequency, Fs = 200 kHz,
Io(critical) = Minimum current to maintain the CCM normally known as critical current. In this circuit, the value of Io(critical) is assumed to be 10mA.
For Boost Mode-
Desired output voltage, Vout = 18V
By putting all the values,
Lmin Boost >= 9mH (approx.)
For Buck Mode –
Desired output voltage, Vout = 5V
By putting all the values,
Lmin Boost >= 2mH (approx.)
Calculating current rating of the inductor –
IL = Io(max) /(1-Dmax)
Io(max) = maximum output current
Considering Io(max) = 50mA
IL = 0.05/(1-0.6)
IL = 125mA
An inductor that can satisfy required value for both Buck and Boost mode has to be chosen. In this circuit, an inductor of 11.5 mH value is taken. 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-Boost 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 CCM –
Cmin >= (Io(max)*Dmax)/(Fs*DVo)
Where,
Cmin = minimum value of capacitor
maximum duty cycle, Dmax = 60%,
DVo = Output ripple voltage
Assuming DVo = 100mV
By putting all the value,
Cmin >= (50*10-3*0.6)/(200*103*100*10-3)
Cmin >= 1.5uF
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 2 uF 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. Mode Selection –
In this converter, either Buck Mode or Boost Mode can be selected through a DPST switch. When the switch is in the normal position, it set the converter in Boost mode and when it is pressed then the converter goes in Buck Mode.
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.
In this tutorial, the Buck-Boost Converter is designed by two switch topology. This converter consists of an inductor (L1), a capacitor(C1), a transistor which acts like a switch and diode (D1) which acts like a second switch. In this configuration of Buck – Boost Converter the duty cycle(D) is the factor which decides whether the converter is in Boost mode or Buck mode. When the duty cycle is greater than 0.5, converter operates in Boost mode and when the duty cycle is less than 0.5, it operates in Buck mode. When the switch is closed, the inductor is directly connected to the source and starts accumulating energy. This makes the diode reverse biased. In this state, the output capacitor provides the current to the load which was previously charged in OFF state.
Fig. 4: Circuit Diagram showing ON state of switching Component in Buck-Boost Converter
When the switch is open, the source gets disconnected from the circuit and the current starts decreasing and becomes zero. As the inductor has stored the energy in the ON state, it will now act as an energy source. Hence, the inductor will create a polarity across it. This will be opposite in polarity as in ON state. This will make 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.
But now the capacitor will act as a current source and keep providing the current to the load until the next cycle i.e. the ON period. The overall effect is that for duty cycle greater than 0.5 V the inductor stores more energy and at the output, stepped up DC voltage compared to input voltage is obtained. Similarly, in Buck Mode, stepped down DC voltage at the output is obtained. One important observation in this Buck – Boost topology is that the polarity of the output voltage is opposite to that of the input. So, it is an Inverting Buck – Boost Converter.
Fig. 5: Circuit Diagram of OFF state of switching Component in Buck-Boost 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-Boost 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.
Testing the circuit –
This buck-boost converter has been designed to step down 12V DC to 5V DC and step up 12V Dc to 18V DC.
Fig. 6: Prototype of Open Loop Buck-Boost Converter designed on a Breadboard
In this circuit, Input Voltage, Vin = 12V
Practically, Battery Voltage, Vin = 11.6V
For Buck Mode- On measuring voltage and current values with different loads at the output when switch is pressed, following observations were taken –
Fig. 7: Table listing output voltage and current from Open Loop Inverting Buck-Boost Converter for different loads in Buck Mode
So, it can be observed that a current of 42 mA can be drawn at 4.2 V output with a tolerance limit of +/-0.5V.
For Boost Mode – On measuring voltage and current values with different loads at the output when switch is released, following observations were taken –
Fig. 8: Table listing output voltage and current from Open Loop Inverting Buck-Boost Converter for different loads in Boost Mode
So, it can be observed that a current of 41 mA can be drawn at 15V output with a tolerance limit of +/-0.5V.
The power efficiency of the circuit at maximum output current of 41.5 mA in boost mode can be calculated as follow –
Efficiency % = (Pout/Pin)*100
(Input Power) Pin = Vin*Iin
(Output Power) Pout = Vout*Iout
(Output Voltage) Vout = 15.1V
(Output current) Iout = 41.5mA
Pout = 627mW(approx.)
(Input Voltage) Vin = 11.6V
(Input Current) Iin = 110 mA (measured input current using ammeter)
Pin = 1276 mW
By putting all the values,
Efficiency % = (627/1276)*100
Efficiency % = 49%
Similarly, the power efficiency of the circuit at maximum output current of 43.6 mA in buck mode can be calculated as follow –
Iin = 43.6 mA (measured input current using ammeter)
Efficiency % = (4.2*42)/(11.5*24.2)
Efficiency % = 61%
It can be seen that there are certain limitations of this circuit. The output voltage in this circuit is not regulated it varies for different load resistances. This can be improved by adding a feedback circuitry which helps in regulating the output voltage. 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), losses due to high Rds(on) of P-MOS.
This is an open loop buck-boost converter with non-isolated output and operating in CCM 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.
Project Source Code
###
//Program to Code for Buck Converter with Input voltage = 12V and Adjustable and regulated Output voltage from 5V to 9V This code will generate a PWM (Pulse Width Modulation)signal of 20kHz with 50% duty cycle and can adjust the duty cycle as per the desired output voltage. */ #define TOP 799 // Fosc = Fclk/(N*(1+TOP)); Fclk = 16MHz, Fosc = 20kHz #define CMP_VALUE_HALF_DUTY 399 // 50% duty cycle #define FeedbackPin A5 // Adjustable pin of potentiometer at A5 #define Inputpin A4 // feedback pin of Voltage Divider at A4 #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 //// function declaration float Map_Feedback(); // function to map feedback values float Mapping_output_voltage(); //function to map potentiometer values float Mapping_output_voltage(){ // function definition int Input_Read = analogRead(Inputpin); //reading analog voltage from potentiometer and converting it to digital values in between 0 to 1023 float Compare_voltage = (((Input_Read*(1.0)/1024)*4)+5); // mapping the digital value into analog voltage of 5V to 9V return(Compare_voltage); // return the calculated output voltage } float Map_Feedback() { // 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 pinMode(Inputpin,INPUT); // set A4 pin as input TCCR1A = 0; //reset the register TCCR1B = 0; //reset the register TCNT1 = 0; //reset the register TCCR1A |= (1<<COM1A1); // set output at non inverting mode TCCR1A |= (1<<WGM11); // selecting Fast PWM mode ICR1 = TOP; // setting frequency to 20KHz TCCR1B |= (1<< CS10)|(1<<WGM12)|(1<<WGM13); //Timer Starts OCR1A = CMP_VALUE_HALF_DUTY; // setting PWM of 50% duty cycle delay(1000); // delay for compensating the hardware transient time with software } void loop() { // put your main code here, to run repeatedly: float Compare_voltage_input = Mapping_output_voltage(); //read potentiometer value float actual_output_voltage = Map_Feedback(); // read feedback pin value if(actual_output_voltage > Compare_voltage_input){ //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 < Compare_voltage_input){ OCR1A --; // if error is negative the duty cycle is increased } }###
Circuit Diagrams
Project Video
Filed Under: Electronic Projects
Filed Under: Electronic Projects
Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.