Here is an attempt at designing a buck regulator based on a ATtiny84a as the PWM controller. It should go from a 4S LiPo battery (12.8 - 16.8 volts in) to a reasonably regulated 12V output, used to drive servo motors that accept 10-14V inputs. 4S LiPo is slightly too high, and 3S LiPo is slightly too low, especially as I want the rated 12V torque. The design is intended to deliver 40 amps worst case (stalling out a majority of the motors.)
I can't buy one of these, because as soon as I leave the 10-15A range, all the DC DC converters are designed for industrial use and have heavy cases, are really expensive, require 24V input, or other such mis-matches with my present requirements.
The idea is to use the built-in analog comparator in the AVR to detect over/below target voltage, and generate a pulse of a definite duration when the under is detected.
I would build this on breadboard with 20 gauge wires soldered across the component leads for the high-power paths.
I know about keeping the "switching node" and feedback path as short as possible, when trying to do layout. I would also ground all breadboard traces that are not used, to make for a poor man's ground plane.
I've tried choosing a choke where the saturation current matches my max output current, and a buck inductor where the saturation current is higher than my max output.
The corner frequency of 94 uF and 3.3 uH is about 9 kHz, and I imagine the AVR will run much faster than that. I'm thinking a 5 us pulse each time under-voltage is detected, and then just go back to look for under-voltage again. That gives a max frequency (at close to 100% duty cycle) of 200 kHz.
And here's the schematic: https://watte.net/switch-converter.png