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
Visit site
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.


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
 

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.
 

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
 

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.
 

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?
 

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/threads/271880/

Hope this helps.
Tahmid.
 

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
 

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.
 

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
 

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.

 

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.
 

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.
 

Ok so for a switching frequency of say 10khz would a schottky diode be necessary instead of a normal diode.
 

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.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…