Sponsored by JLCPCB ($2 for 10 Boards): https://jlcpcb.com
The synchronous buck converter works!
Arduino code:
void setup() {
TCCR1A = 0xB2; // B2 for complementary outputs
TCCR1B = 0x11; // 11 for phase correct, 19 for fast
ICR1 = 0x01FF;
DDRB = 0x06; // D9 and D10 are outputs
}
void loop() {
int pot1 = analogRead(A7) / 2;
int pot2 = analogRead(A6) / 2;
OCR1A = pot1;
OCR1B = constrain(pot1+pot2, 0x0000, 0x01FF);
}

By Julian

Youtuber, shed dweller, solar charge controller aficionado

16 thoughts on “Let’s build a synchronous buck converter”
  1. Avataaar/Circle Created with python_avatars Pavol Filek says:

    Hi, do U have a video of 2 or 3-phase BUCK + MPPT PandO or INC algo ?

  2. Avataaar/Circle Created with python_avatars TheJavaSync says:

    Can I use sg3525 chip (generate 2 signals alternately), to drive those 2 gate of mosfets?

  3. Avataaar/Circle Created with python_avatars Ekiskalibur Nirvana says:

    i can easily achieve %98 efficiency with proper selection of mosfets and drivers. Also inductor and frequency should be properly selected.

    if you draw to little current, efficiency suffers. Try drawing 3-5 amps and see how everything changes

  4. Avataaar/Circle Created with python_avatars KESHAR RAWAL says:

    Can you please explain how did you provide Deadband?

  5. Avataaar/Circle Created with python_avatars mike mesec says:

    I wonder it the second mosfet would be more efficient it you were converting more power than just one or two watts. I would imagine that thing was built for like 50 or 100 watts.

  6. Avataaar/Circle Created with python_avatars Astral says:

    are you sure about that way to calculate the efficiency by dividing output by input? Because I get higher than 99% but not 100% even under like 6 amp load, is it because my Arduino(which I'm driving the mosfets with) uses external power source? My Arduino ground is connected to my buck converter's input ground

  7. Avataaar/Circle Created with python_avatars EE_fun says:

    Synchronous buck converter only gives you a better efficiency at low duty cycle and / or at high output currents. Like for example the multiphase synchronous buck on a motherboard which will generate the 1.1V core voltage for the CPU out of 12V at 90 amps output current. Duty cycle is very small (high on time for the diode replacing low side switch) at high current.
    An other reason to go for the synchronous buck, is the need for bidirectional energy transfer, which your setup is already capable of.

  8. Avataaar/Circle Created with python_avatars maeanderdev says:

    I'm pretty sure that you did not build a synchronous converter.
    Your MosFET's drain is connected to ground and the source is connected to the inductor, so that the inductor discharges through the body diode of the MosFET independent of the gate voltage/pulse with.
    Instead, you have to swap source and drain to obtain an actual switch.

    It is very interesting though that the efficiency changed even when the parasitic diode was acting as the discharge path. Maybe some ringing was prevented by the reversed MosFET?

  9. Avataaar/Circle Created with python_avatars RWBHere says:

    You have gained 1% in buck circuit efficiency, but you are now powering two Arduino's. That equates to a significantly lower overall efficiency in this low power circuit than when running it with one Arduino and a Schottky diode. The only obvious ways that switching two transistors could possibly be more efficient than the simpler circuit would be either using one Arduino to switch both MOSFETs, or else to use two Arduinos in a much higher power circuit than the Muppet 2.

    The question is 'Will you be trying to use one Arduino to switch both MOSFETs?' The results of that test would be interesting to see. Thanks Julian.'

  10. Avataaar/Circle Created with python_avatars Shawn Lucas says:

    How would a germanium diode perform? Would it be different?

  11. Avataaar/Circle Created with python_avatars Alex C says:

    Interesting thought: is MuPPeT 2 a universal power converter?

    If you combined several of them, could you do any odd conversion you wanted, like suppose 3-phase AC to 5-phase AC?

  12. Avataaar/Circle Created with python_avatars sraps says:

    IMHO, the key to increase the efficiency dramatically would be increasing the frequency. Would reduce losses in ferrite.

  13. Avataaar/Circle Created with python_avatars erlendse says:

    If you want the efficiency, you may look into doing diode emulation.
    The way you have it set up now, allows the output to leak back into the regulator

    Basically turn off the FET when the current direction reverses!
    You would need some way of meassuring the voltage over it or current to do the trick.

    (there may be a way to use creative timer modes and meassure currents using timer trigger on ADC)

  14. Avataaar/Circle Created with python_avatars VagueDirector _ says:

    How accurate are those power meters? I wouldn't expect the one built into that converter to be accurate at all.

  15. Avataaar/Circle Created with python_avatars First2ner says:

    you are testing at too low output power, to see any great benefit of synchronous mosfet compared to only diode. Also dead time must be as low as possible, yours (because of drivers/fet) is not

  16. Avataaar/Circle Created with python_avatars FlyingShotsman says:

    Julian, the efficiency will be poorest at the highest difference between input and output voltage. When you turned the output voltage up near the end of the video, the efficiency rose to nearly 90%. This is very typical of buck controller behavior, and you'll see it in the data sheet tables for buck driver ICs. You might try another set of comparisons with a smaller input-output voltage differential.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.