Author Topic: Synchronous buck converter - WIP  (Read 389 times)

0 Members and 1 Guest are viewing this topic.

Offline liviu.geleaTopic starter

  • Contributor
  • Posts: 29
  • Country: ro
Synchronous buck converter - WIP
« on: March 27, 2023, 08:31:01 pm »
Hello. I'm working on a synchronous buck converter capable of:
  • Constant power output
  • Constant current output
  • Current limiting
This project is a work in progress so I will be revisiting this topic to keep you updated as well as humbly asking for some help at times and accepting some feedback if you're kind enough and you think I'm worth your time.
The goal is mostly educational but I did in more than one occasion find myself in need of such a device.
The work will progress in stages, each stage will end in a prototype that is supposed to prove some concepts and identify some issues better than I can using simulations.


Stage 1 - Complete

This prototype was a proof of concept, mostly for:
  • Testing MOSFET driver
  • Testing different capacitor and inductor sizes
  • Seeing if shoot-through is a problem
  • Getting a sense of how noisy the signals are, which parts get hot and any other potential problems
  • loop sizes and effect on noise
  • How does bootstrapping diodes work?

1748495-0

1748501-1

What I found during this step:
  • This works great: no shoot through, nothing gets too hot.
  • Signals are very noisy due to no clear return paths or the large sharp currents (dI/dT). The mosfet driver signals especially seem to be very noisy and I could see the noise decrease as I added additional return paths in close proximity to the signal paths.
  • I need to learn some board design principles and my next prototype will be printed circuit board.
  • I'd really like it if the current sensing was BEFORE the load so that the load isn't floating in respect to GND
  • the mosfet driver really doesn't like resistors on signal traces. I can only get away with  a few ohms before nothing works anymore
Stage 2 - In progress...
After cumulating a few dozen hours watching circuit design videos on YouTube I think it's time to try to fix some of the issues in previous prototype as well as answer some new questions:
  • Can I accurately amplify the current sensing resistor voltage 50x or do I lose accuracy and introduce noise. My current sensing resistor is 0.01 Ohm. How does op-amp bandwidth and slew rate come into play?
  • How do I read current if current sensing op-amp is floating so that the load isn't? Do I also float the microcontroller to provide same reference?
  • How do I pass 10 Amps through copper traces? Soldering the exposed traces?
  • How do I improve the noise: low impedance signal return paths
  • did I design the heatsink footprint right? will it fit into the board? Heatsink page and datasheet

1748507-2

1748513-3

1748519-4

1748531-5

Because I want ground reference planes beneath the signal traces I have to use a 4 layer design:
Code: [Select]
Sig --------------- All signals go in this layer
GND --------------- acts as signal return path plane.
GND --------------- don't need this but there are no 3 layer boards
PWR loops --------- exposed copper for tinning traces. Because of routing constraints I opted to put current sensing resistors on this layer as well thus keeping the entire loop on a single layer

I opted for some through-hole components: capacitors, inductors and mosfets because:
  • I had them at hand  I can easily experiment switching different components
  • I like the idea of having components on front layer
  • component leads act like convenient vias allowing me to get access to ground and VCC easily
The final product will probably be 100% surface mounted.
Current issues:
  • Moving the load reference to ground. Currently the ground connects to the current resistor and the load floats on top of that. I would like to switch the order so that the current resistor floats but I don't know how to read it then. DO I just read voltage and subtract the load voltage drop? But I also need to ensure the voltages being measured are below 5V so that arduino doesn't just read "HIGH". Perhaps a voltage divider and doing some math in software.
  • I don't like how the circuit draws current pulses instead of continuous current. I made some simulations using either inductor+ capacitor or inductor+capacitor + flyback diode but I get some oscillations as well as potentially bouncing voltages in reverse, potentially frying the electrolitic capacitors.
    Simulation here!
  • Other minor issues: finishing board, adding vias, ensuring design rules and JLCPCB constraints. Adding ISP pins for changing controller parameters such as frequency and PID parameters.
« Last Edit: March 27, 2023, 08:34:01 pm by liviu.gelea »
 

Offline liviu.geleaTopic starter

  • Contributor
  • Posts: 29
  • Country: ro
Re: Synchronous buck converter - WIP
« Reply #1 on: April 18, 2023, 02:16:04 pm »
Hey. I think I need some help choosing an op-amp for the current sensor.
I asked ChatGPT. And here's its input:

Quote
To amplify a low voltage drop over a 0.01 ohm current sensing resistor by 50 times, you will need an operational amplifier (op-amp) configured as a differential amplifier or an instrumentation amplifier. The important parameters to consider when selecting an op-amp for this application are:
  • Input offset voltage (Vos): This is the voltage difference between the two input terminals of the op-amp when the output is zero. A low input offset voltage is desired, as it minimizes the error in the amplified output.
  • Input bias current (Ib): The input bias current is the average of the currents flowing into the op-amp's input terminals. Low input bias current is preferred to minimize voltage drop errors across the sensing resistor due to the input current.
  • Common-mode rejection ratio (CMRR): This parameter indicates the ability of the op-amp to reject common-mode signals (noise) and amplify only the differential input signal. A high CMRR is desired to minimize the effect of common-mode noise on the amplified output.
  • Gain bandwidth product (GBW): This parameter is the product of the open-loop gain and the frequency at which the gain is measured. For your application with a maximum frequency of 100 Hz, an op-amp with a GBW well above 5 kHz (50 times the maximum input frequency) should suffice.
  • Input voltage noise: This parameter indicates the amount of noise added by the op-amp itself. Lower input voltage noise is preferred to minimize the impact of the op-amp's noise on the amplified output.
  • Power supply rejection ratio (PSRR): This parameter indicates the ability of the op-amp to reject variations in the power supply voltage. A high PSRR is desired to minimize the effect of power supply fluctuations on the amplified output.
  • Slew rate: This is the maximum rate of change of the op-amp's output voltage. A higher slew rate ensures that the op-amp can accurately track rapid changes in the input signal. For a 100 Hz input signal, a slew rate of at least a few V/μs should be sufficient.
Make sure to select an op-amp that meets these requirements and configure it appropriately to achieve the desired 50X amplification. Additionally, proper PCB layout, decoupling capacitors, and shielding may be needed to minimize noise and achieve accurate current measurements.

From what I can tell, its advice seems on point, except for the slew rate which seems excessive for a buck converter but I didn't mention the use case.

Any tips?

I also own some dedicated current sensing circuits. I don't see a good reason to use those  but if it's too difficult to this much amplification without too much noise please mention it.

Thanks!
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf