Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Register Log in

help with buck converter circuit

Status
Not open for further replies.

anarion

Newbie level 4
Joined
Nov 21, 2012
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,340
Hi! I am putting together a DC-DC buck converter, which will be used in Maximum Power Point Tracking for solar cells.For testing purposes, I built a converter circuit that's supposed to take in 12V as input and output 5V. I am using an MTP3055VL n-channel power MOSFET, an MBR2045-CT Schottky rectifier (instead of the 1n4001 in the picture), a 22uH inductor, a 22uF output capacitor and 3.3uF input capacitor. converter_dcdc.jpg


I have 3.9k ohm load parallel to the output capacitor, which is not shown

To drive the MOSFET gate, PWM from the Arduino is used. I attached the PWM output of the Arduino to the gate of the MOSFET. To my understanding, this should be enough to drive the MOSFET since the max threshold voltage (Vgs) of the MTP3055VL is 2V. I checked the output and I got a voltage of around 4.2V. I varied the duty cycle from 39% to 10% in the Arduino but still, the output is at 4.2V. I expected that by changing the PWM duty cycle, I can vary the output voltage. Can anybody help me understand what's happening? Am I correct in my assumption that changing the PWM duty cycle should vary the output voltage?

Many thanks,
anarion
 

permute

Advanced Member level 3
Joined
Jul 16, 2010
Messages
923
Helped
295
Reputation
590
Reaction score
268
Trophy points
1,343
Activity points
8,543
Vgs is voltage between gate an source. you are applying 5V to the gate, but the source is allowed to rise. after one/two cycles, the source voltage is probably near 5V, in which case the 5V drive is not sufficient.

look into "high-side" driver circuits.
 

bubulescu

Member level 3
Joined
Sep 10, 2009
Messages
65
Helped
12
Reputation
24
Reaction score
12
Trophy points
1,288
Activity points
1,897
Hello anarion

Driving the NMOS' gate will require a voltage swing between <Vout or 0V ... Vout+Vgth> at its minimum, therefore if you have 5V output and its threshold voltage is 2V, you will need a bare minimum of 5+2=7V. This means that directly driving it from the uC will not work. You could use a PMOS but then you will need to use <0V ... Vin > gate pulses. However, this method allows for a quick and dirty cheap trick by using an additional transistor as a buffer/level shifter.


Good luck,
Vlad
 

Tahmid

Advanced Member level 5
Joined
Jun 17, 2008
Messages
4,758
Helped
1,791
Reputation
3,574
Reaction score
1,650
Trophy points
1,393
Location
Silicon Valley, California, USA (from Dhaka, Bangl
Activity points
30,545
The MOSFET is configured as a high-side switch. You can tell because the source is not ground-referenced. The load is between source and ground. The output of your Arduino is ground-referenced. When the MOSFET is on, voltage at source will be equal to the supply voltage = 12V (from your post #1). Since the datasheet mentions RDS(on) at VGS = 5V, I'll assume that to fully turn the MOSFET on, you'll need VGS=5V. This 5V is with reference to the source which is at 12V (with reference to ground). So, voltage at gate with reference to ground must be (12V + 5V) = 17V. Since this is higher than the supply voltage, you'll need a sort of level-shifter. You can use a charge pump/boost converter to increase the 12V to > 17V and use it to drive the MOSFET. Or you could use a high side MOSFET driver with bootstrap circuitry. You could also use a gate drive transformer or an isolated power supply and driver.

Hope this helps.
Tahmid.
 

anarion

Newbie level 4
Joined
Nov 21, 2012
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,340
bubulescu: thanks for replying! I am interested in using a PMOS, what should I add in my circuit besides replacing my current NMOS with a PMOS?

permute and Tahmid: thanks for the replies! I have tried the IR2117 MOSFET driver, but I found out that its logic 1 voltage is 9.5V, so the Arduino PWM output is not enough. I also have an IR4427 driver. I am thinking of linking the Arduino PWM to the IR4427, then the IR4427's output to the IR2117, is that a good idea?
 

Tahmid

Advanced Member level 5
Joined
Jun 17, 2008
Messages
4,758
Helped
1,791
Reputation
3,574
Reaction score
1,650
Trophy points
1,393
Location
Silicon Valley, California, USA (from Dhaka, Bangl
Activity points
30,545
Yea, you can do that. You can also use a high/low side driver and use the high side drive portion only, such as the IR2110 or L6385E. If you use the buck converter with a bootstrap-based high side driver to charge a battery, you're going to run into problems. Why, workarounds and drive circuitry with IR2110 have been posted on this thread you should go through: https://www.edaboard.com/thread271880.html

Hope this helps.
Tahmid.
 

bubulescu

Member level 3
Joined
Sep 10, 2009
Messages
65
Helped
12
Reputation
24
Reaction score
12
Trophy points
1,288
Activity points
1,897
Why complicate things with IRs instead of using a simple 2N2222 (for example) as a level shifter for a PMOS? Well, it's your design, so your choice.


Good luck,
Vlad
 

Tahmid

Advanced Member level 5
Joined
Jun 17, 2008
Messages
4,758
Helped
1,791
Reputation
3,574
Reaction score
1,650
Trophy points
1,393
Location
Silicon Valley, California, USA (from Dhaka, Bangl
Activity points
30,545
P-channel MOSFETs tend to have higher on-state resistance than similarly rated N-channel MOSFETs. This means there will be greater loss in P-channel MOSFETs.

When supply voltage > VGS of the P-channel MOSFET (usually 20V, sometimes 30V), the circuit becomes a little more complicated as the gate can no longer just be pulled to ground as voltage level shifting is required to prevent damage to the MOSFET.

At higher frequencies (these are the frequencies the OP should be looking at for the buck converter), a single transistor can not be used, but multiple transistors are required as the gate must be pulled high/low quickly enough and due to the gate capacitance, the resistor can not pull the gate high/low (whichever one the resistor must do, depending on whether it's a pull-up or pull-down resistor).

However these can all be overcome and it's up to the OP to choose which method he will use.

Hope this helps.
Tahmid.
 

bubulescu

Member level 3
Joined
Sep 10, 2009
Messages
65
Helped
12
Reputation
24
Reaction score
12
Trophy points
1,288
Activity points
1,897
Tahmid,

I agree with what you said, but the OP said 12V input, therefore not a problem. As for the Rds_on, that's for the catalog to provide and user to choose from, while the high-frequency and high-currents could be a problem, but the OP said he'd drive the switch directly from a uC, so my guess is that both conditions may not go to extreme levels. Of course, these are guesses since the OP didn't give many details.


Vlad
 

anarion

Newbie level 4
Joined
Nov 21, 2012
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,340
Thanks for all the answers. I have used the TC4427CPA driver and it successfully raised the 5V PWM to its VDD level (the VDD for the driver is the same voltage supply for the buck converter). The problem I have now is that I cannot get the desired output voltage from changing the duty cycle. For example, with a 10V input to the buck converter, I have tried using 15% duty cycle (38.25 out of 255 for the Arduino PWM output). The output voltage was at 5.20V, and not the 1.5 V that was to be expected for a 15% duty cycle. What should I do? I have attached the schematic for my new circuit.

The switching frequency I'm using is 31250 kHz.

Again many thanks for the helpful replies.

converter_dcdc2.png
 

bubulescu

Member level 3
Joined
Sep 10, 2009
Messages
65
Helped
12
Reputation
24
Reaction score
12
Trophy points
1,288
Activity points
1,897
Looking at your picture, are you sure the schematic is in order?
 

Swagata Dutta

Junior Member level 1
Joined
Feb 27, 2014
Messages
15
Helped
1
Reputation
2
Reaction score
1
Trophy points
3
Activity points
104
I too am trying something very similar anarion, i.e controlling buck converter using pwm from arduino.Could you let me know what you finally did.

- - - Updated - - -

How important is using a schottky diode.If i use a BY127 ,how would results be affected in a buck converter.
 

Tahmid

Advanced Member level 5
Joined
Jun 17, 2008
Messages
4,758
Helped
1,791
Reputation
3,574
Reaction score
1,650
Trophy points
1,393
Location
Silicon Valley, California, USA (from Dhaka, Bangl
Activity points
30,545
The output diode is very important. It is basically the current path for when the switch (MOSFET/BJT etc) is off and the inductor "discharges". If you don't have that in place, you'll fry your switching device.

Hope this helps.
Tahmid.
 

Swagata Dutta

Junior Member level 1
Joined
Feb 27, 2014
Messages
15
Helped
1
Reputation
2
Reaction score
1
Trophy points
3
Activity points
104
Ok so for a switching frequency of say 10khz would a schottky diode be necessary instead of a normal diode.
 

Ahmed Kh

Junior Member level 3
Joined
Apr 1, 2014
Messages
25
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
154
hello
pleasei need help
i want to use one gate driver for 2 mosfet (one for buck and the anther for boost)
my project is buck-boost non-inverting converter
my regards
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top