Projetando um conversor Buck não isolado de circuito fechado (Parte 6/12)

Designing a Closed-Loop Non-Isolated Buck Converter (Part 6/12)

In the previous tutorial, the open circuit buck converter was designed. In this series, the 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) Buck Open Loop Inverter – Boost Converter
b) Buck Open Loop Inverter – Boost Converter with Adjustable Output
4. Flyback Converter
5. Push-pull converter
The open-loop buck converter designed in the previous tutorial did not have a regulated output. The output voltage varied with the load resistance. The output of the circuit designed in the previous tutorial could be regulated by adding a feedback circuit to it. The feedback circuit can help detect output voltage errors and change the duty cycle of the frequency at which the circuit operates to provide a constant output voltage regardless of load resistance.
Unlike linear regulators that reduce DC voltage by dissipating heat, buck converters reduce DC voltage through switching regulators and also increase output current. According to the law of conservation of energy, the input power must be equal to the output power.
Pin = pout
Vin*Iin = Vout*Iout
Therefore, in the Buck converter, as the input voltage (Vin) is greater than the output voltage (Vout), the input current (Iin) is always less than the output current (Iout). 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 unlike closed loop which has a feedback loop. Therefore, 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. Therefore, the output of a closed-loop buck converter is regulated.
There are certain design parameters involved in designing the buck converter. It is important to understand these design parameters. Any Buck converter can operate in any of the two possible operating modes. These modes of operation are as follows –
Continuous Conduction Mode (CCM)- In CCM, the current in the inductor is continuous throughout the entire switching period cycle. Thus, a regulated voltage at the output is obtained, but the output is regulated only if the current is drawn within the limits of the CCM.
Discontinuous Conduction Mode (DCM) – In this mode, the current in the inductor is pulsating and becomes zero during a portion of the switching time. Therefore, a regulated voltage is not received at the DCM. However, the voltage can be regulated by connecting a feedback circuit from the output to the 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 reduce 12 V DC to 5 V DC with a tolerance limit of +/- 0.5 V. Once the circuit is designed and assembled, the output voltage and current value will be observed using a multimeter. These values ​​will indicate the efficiency of the Buck converter designed in the project.

Required components –

Lista de componentes necessários para conversor Buck de circuito fechado
Fig. 1: List of components required for the closed-loop buck converter

Block diagram –

Diagrama de blocos do conversor Buck de circuito fechado
Fig. 2: Closed-loop buck converter block diagram

Circuit Connections –

In this project, a closed-loop buck converter operating in DCM mode is designed and component values ​​as per standard DCM 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 purposes, a transistor and a diode are used as switching components.
Switching components must operate at a specific frequency. This frequency is generated by an oscillator circuit. In this project, Arduino UNO is used to generate a PWM signal that provides the required frequency. Any other Arduino board like Arduino Mega can also be used. In fact, any microcontroller or microcontroller board that can generate PWM can be used in the circuit. Arduino is chosen because it is the most popular prototyping board and can be easily programmed. Due to the great community support, it is easy to learn and work on Arduino. The PWM signal is a pulse train used to turn the MOSFET on and off. MOSFET is used as switching transistor in the circuit.
For switching purposes, a transistor and a diode are used as the switching component. For transistor selection, 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 the high-side configuration. As on the high side, the N-channel MOSFET requires a Bootstrap circuit or an IC Gate Driver for its drive, which 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 on its high side but has high Rds (On) compared to N-MOS. This results in more energy loss. The MOSFET used in the circuit has its limit voltage around 10V to 12V.
The switching time of the MOSFET and diode must be less than the rise and fall time of the PWM wave. The diode must offer low voltage drop in forward bias and the RDS (ON) of the MOSFET must be low. A gate-to-source resistance should always be used to avoid any unwanted triggering of the MOSFET by external noise. It also helps to quickly turn off the MOSFET by discharging its parasitic capacitance. A low resistor value (10E to 500E) can be used at the gate of the MOSFET. This will solve the ringing (eddy oscillations) and inrush current problem in the MOSFET. The PWM signal voltage level must be greater than the MOSFET threshold voltage. So that the MOSFET can be turned ON completely with minimum RDS (ON).
The MOSFET cannot be driven by the microcontroller as the microcontroller can only output a 5V PWM signal. Therefore, an additional IC IR2110 is used in the circuit to generate a 12V PWM signal and the input to IR2110 is provided by the microcontroller. IR2110 is a high and low side driver. It is a high-speed power MOSFET and IGBT driver (operating at high frequency) with independent output channels referenced on the high and low sides. The floating channels can operate up to 500V or 600V. The IC is compatible with 3.3V logic, so it can be used with any microcontroller. The IC comes in a 14-lead PDIP package. IR2110 has the following pin configuration –
Tabela de listagem de configuração de pinos do IC IR2110
Fig. 3: IC IR2110 pin configuration listing table
Another switching component used in the circuit is a diode. The diode switching time must be less than the rise and fall time of the PWM wave. The Arduino board generates a PWM wave with a rise time of 110ns and a fall time of 90ns. The forward voltage drop of the diode must also be very low, otherwise it will dissipate power, which will further reduce the efficiency of the circuit. The diode must offer low voltage drop in forward bias and the RDS (ON) of the MOSFET must be low. Therefore, in this experiment, a BY399 diode that best suits the circuit design is selected.
Before generating the PWM signal, the switching frequency of the circuit needs to be decided. For this buck converter, a switching frequency of 20kHz is selected, which will work well 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
Putting all the values,
D% = 40% (approx.)
To generate 20 kHz PWM signal with 40% duty cycle, the Arduino board is programmed. The Arduino sketch required to generate the desired PWM output is attached in the tutorial. It can be downloaded and written to an Arduino board for use.
The higher the frequency selected for the switching components, the greater the switching losses. This decreases the efficiency of the SMPS. But the 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 to store electrical energy in the form of a magnetic field. Therefore, the inductor acts as an energy storage element. An inductor of value 500 uH is used in the circuit. For an inductor, a secondary or primary coil of a transformer, a relay coil, or any standard inductor that has the desired inductance value can be used. The rated current of the inductor must be greater than the ripple current of the inductor so that the desired output current 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 the Buck converter circuit, transistor Q1 turns on and off according to the frequency of the oscillator circuit. This generates a pulse train in inductor L1 and capacitor C1, as well as transistor Q1. As the capacitor is connected to the inductor in the negative and positive cycle of the PWM signal. This creates an LC filter that filters the pulse train to produce a smooth DC output. The value of the capacitor can be calculated using the following DCM equation –
Cmin >= (Iout(max)*(1-(Iout(max)/DIL))2)/Fs*DVo
Where,
Cmin = Minimum capacitor value
Maximum output current limit for regulated output voltage, Iout (max) = 100mA
Switching frequency, Fs = 20kHz
Considering the output ripple voltage, DVo = 100mV
DIL=Inductor ripple current/Inductor peak current
Now, to calculate the unknown term DIL, the following standard DCM equation can be used –
DIL = ((Vin – Vout)*Ton)/(L)
As the capacitor value is inversely proportional to the output voltage, therefore, the capacitor value for the minimum output voltage i.e. 5V must be calculated. Then,
Desired output voltage, Vout = 5V
Input voltage, Vin = 12V
Ton = The active or ON time of the MOSFET is given by
D = Tons/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, putting all the values,
DIL = ((12 – 5)*20*10-6)/(500*10-6)
DIL = 280mA
Now, by putting all the values ​​into the 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 standard value capacitor is used which can be easily available, hence a 47uF capacitor is used.
The capacitor value must 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 have a higher rated voltage than the output voltage. Otherwise, the capacitor will start to leak current due to excess voltage on its plates and will explode. It is important that all capacitors are discharged before working on a DC power supply application. To do this, the capacitors must be short-circuited with a screwdriver and insulated gloves.

5. Feedback loop –

In the previous tutorial, it was seen that without any feedback circuit, a high voltage was received at the output when there was no load connected. When any load on the output was connected, the output voltage dropped below the desired output voltage. therefore, there was a need to regulate the output voltage by connecting a feedback circuit.
Therefore, in this circuit, feedback is provided from the output terminal to the input terminal which regulates the output voltage even when there is no load present at the output. The Feedback circuit must calculate the voltage error and then the microcontroller automatically adjusts the output voltage according to the desired voltage. This error voltage adjustment is managed by the Arduino sketch running on the board.
To provide feedback, a ladder of resistors is used at the output (as shown in the circuit diagram). To calculate the value of the resistor network, the maximum output voltage of the open-loop circuit must be known when no load is connected to the output. This will be the desired output voltage that should feed from the resistor divider network to the analog pin of the controller (as shown in the circuit diagram). The output voltage must be equal to 5.2 V as the microcontroller provides 5.2 V as a reference voltage. The value of the resistor network can be calculated as follows
Tabela de listagem de configuração de pinos do IC IR2110
Figure 4: IR2110 IC Pin Configuration Listing Table
According to the resistor divider rule,
Vr = Vo*(R4/R3+R4)
Desired voltage for the analog pin, Vr = 5.2V
Assuming the maximum output voltage of the open-loop buck converter without load, Vo = 12V
Let's assume that R4 = 1K now R3 is
5.2= 12*(1000/R3+1000)
R3 = 1.5K (approx.)
So R3 = 1.5K and R4 = 1K
Now the nominal power of resistor R3 and R4 can be calculated as follows –
(For R3), P3 = (Vo-Vr)2/(R3)
Putting all the values,
P3 = 30mW (approx.)
(For R4), P4 = (Vr)2/(R4)
Putting all the values,
P4= 27mW (approx.)
Resistors with a rated power greater than or equal to the calculated rated power must be used.

How the circuit works –

Any SMPS has some switching components that turn on and off at high frequency and has some storage component that stores the electrical energy while the switching components are in conducting state and discharges the stored energy to the output device while the switching components are not driving. state.
A simple buck converter consists of the inductor (L1), a diode (D1), a capacitor (C1) and a transistor that acts as a switch. Initially, when the switch is open, the current in the circuit is zero. When the switch is first closed, the inductor opposes the change in current and produces an opposite voltage at its terminal. This makes the diode reverse biased. The voltage drop across the inductor neutralizes the source voltage, which results in less voltage at the output. As time passes, the rate of change of current decreases and the voltage drop across the inductor also decreases. In this state, the inductor starts to store energy in the form of a magnetic field. The output capacitor is charged throughout the ON state. The charge stored in the capacitor provides the current required for the load in the OFF state.
Diagrama de circuito mostrando o estado ligado do componente de comutação no conversor Buck
Fig. 5: Circuit diagram showing the ON state of the switching component in the Buck converter
When the switch opens, the input source is disconnected from the circuit and the current begins to decrease and becomes zero. Since the inductor stored energy in the previous cycle, it now acts as a source of energy. 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 supplies the current to the load through diode D1. When the charge stored in the inductor begins to decrease, the output voltage begins to drop. Now the capacitor acts as a current source and continues supplying 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 compared to the input is obtained.
Diagrama de circuito mostrando o estado desligado do componente de comutação no conversor Buck
Fig. 6: Circuit diagram showing the OFF state of the switching component in the Buck converter
In the ON state, the Diode was in Blocking Mode (OFF) and the Transistor was ON. In the OFF state, the Diode was in conduction mode (ON) and the Transistor was OFF. Therefore, a buck converter has two switches, one is a transistor and the other is the diode. At a time, only one of them drives while the other goes into a non-driving state.
This is how any Buck converter works. The Buck converter designed in this project is closed i.e. a feedback circuit is added to it. Feedback is provided through a voltage divider network. The output voltage is detected by the voltage divider resistor ladder and supplied to one of the pins of the microcontroller. The microcontroller board used in the project is Arduino. The Arduino's built-in ADC channel 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. To compensate for the voltage error, the Arduino is programmed to change the duty cycle of the PWM signal that controls 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 is designed to step down 12V DC to 5V DC.
Protótipo de conversor Buck de circuito fechado projetado em uma placa de ensaio
Fig. 7: Closed-loop buck converter prototype designed on a breadboard
In this circuit, Input Voltage, Vin = 12V
Practically, Battery Voltage, Vin = 11.8V
By measuring voltage and current values ​​with different loads at the output, the following observations were made –
Tabela listando tensão e corrente de saída do conversor Buck de circuito fechado para diferentes cargas
Fig. 8: Table listing closed-loop buck converter output voltage and current for different loads
Thus, it can be seen that a current of 96 mA can be consumed at the 5V output with a tolerance limit of +/-0.5V.
The energy efficiency of the circuit with a maximum output current of 96mA can be calculated as follows –
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.)
Putting all the values,
Efficiency% = (467/619)*100
Efficiency% = 75% (approx.)
The efficiency of this design is lower because power losses in the circuit are not considered. There are diode and MOSFET switching and conduction losses, losses in the windings surrounding 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 self-powered portable devices. It can also be used as an interface between battery and CPU components or notebooks where the voltage demand is lower than the battery voltage.

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 from 0 to 5.2V
 
float mapping_result = (ADC_READ*(R1plusR2_resistor/R1_resistor));
 // calculating the actual output voltage

 return(mapping_result);
 // return the output calculated 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

Circuit-Diagram-Closed-Loop-Buck-Converter

Project video

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.