I'm having some trouble with DC converters in a solar power system.

I have a solar panel of 21 V (Voc) and 1.33 A (Isc). I have reaf that using a DC buck converter with input regulation (feedback loop taken from the input) would result in a fixed output equal to the MPP.

The thing is that I have a LM2596 adjustable regulator, and I was thinking about soldering the resistor divider taken from the output of the original topology, and take the input as a source.

Could I get the MPP voltage and current this way? If yes, how could I calculate them?

Original topology from TI: Original topology

Edit: The objective is to charge a battery pack of 3 Li-ion cells efficiently, firstly the MPPT step is where my doubts are.


5 Answers 5


Although MPPT trackers are based around typically a buck converter, there's additional actions from a control loop, in hardware or programming, that actively tracks the point where maximum power is being drawn from the cell - this varies a little with solar intensity, so you might find a fixed voltage that is good enough for most conditions, but it also varies a lot with cell temperature, so the controller does need to be able to compensate.

Since the solar intensity and cell temperature can vary, an MPPT tracker constantly adjusts the set point up and down, and compares the power generated, and aims to settle at the peak.To be able to vary the input, the controller changes the duty cycle of the buck converter, but obviously this assumes that the load (the battery pack) is capable of taking the full output, and once the battery reaches full charge the controller needs to limit the output voltage too, and the power available at the solar cell goes unused. Regulating only the input voltage would risk overcharging.

Increasing the duty cycle increases the load and decreases the voltage at the solar cell, and a simple regulator wired with the feedback at the input would do the opposite.

You're far batter off getting a dedicated MPPT controller.

  • \$\begingroup\$ Thank you very much for replying Phil. I know that nowadays load controllers with MPPT exist. What i have at the moment is an adjustable buck converter, and if i could build something like an aproximation of a tracker, maybe the next step should be, if i'm not wrong, something called "load controller". So, why not cheating the feedback loop trying to get an aproximate maximium power?. (I know that my solar panel is rounding Vmppt=18V) \$\endgroup\$
    – MDuarte
    Mar 5, 2019 at 22:04
  • \$\begingroup\$ It seems we both at first misunderstood what "dedicated MPPT controllers" like the LT3652 or the CN3791 actually do. They don't really find the MPP, they rely on a fixed set voltage at which the MPP is assumed to be. (Set using pin 2 for CN3791 and pin 6 for LT3652.) \$\endgroup\$
    – AndreKR
    Jan 3, 2020 at 6:57

I doubt that would work, the output will start to oscillate trying to compensate the error.

If you want to do MPPT on your solar panel, perhaps the easier way is to use devices that are made for that.

One way of doing so is to use a buck topology to which the switching is controlled by a MCU and to write some simple MPPT algo.


The MPP is not a fixed point but is highly depending on the amount of light shining on the panel. A MPP-Tracker is always checking the input power, slightly changing the point on the IU-curve and checking the resulting power again. By comparison of the power values the Tracker is able to determin, if the MPP is reached or if the point on the curve has to be shifted a bit.

This means, that you are not able do set a fixed value for your converter.


If you put no load on a solar panel at all, the voltage is maximum but the current is zero. If you short out a solar panel, the current is maximum but the voltage is zero. The power is the product of the current and the voltage.

The point of MPP tracking is to figure out the amount of load on the solar panel that maximizes the power produced by the solar panel. Since different MPPs will result in different voltages produced by the solar panel, this requires some kind of voltage converter that can take whatever voltage the MPP happens to be and make it useful.

If, for example, you are using 12V batteries and a solar panel whose MPP tends to be around 26 volts, a buck converter will do. But you need something to adjust the load the converter places on the panel to find the MPP. MPP trackers typically have software that varies the converter parameters and measures the voltage across the panel and the current it is supplying to discover the configuration that maximizes the power delivered. That's what MPPT is.

This requires discovery as the light on the panel changes. Sometimes it is brighter, sometimes it is dimmer. This results in changes to the maximum power point that must be discovered by varying the load the converter places on the panel.

Without any device to actually do the MPP tracking, you will not track the MPP.


A simplest form of MPPT is merely an input voltage monitoring, where you set your converter/charger to follow the maximum power point voltage indicated on your specific solar panel. You haven't listed all of your solar panel's output specifications here, but this one most likely has 18V as its Vmpp (voltage at maximum power point).

In your case you need to inject additional current into the feedback pin of the LM2596 when the panel/input voltage drops below 18V, which would reduce the pulse width and with it the load on the panel, and thus allow input voltage to go back up to 18V.

Here is the simple schematic I came up with:

I have also included the UVL (under-voltage lockout) circuit which will not let the LM2596 start until the solar panel voltage has reached around 12V, because there will very little power output on the panel below that voltage.
You also need a BMS (battery management system) to disconnect the charging side from the battery once the current starts flowing in the opposite direction, otherwise your charging circuit will keep discharging the cell/battery.

Finally, this is not really an MPPT circuit, as it merely serves to prevent the solar panel voltage from dropping below its Vmpp, but it doesn't work in the opposite direction to bring it back down to Vmpp - the load or the 4.2V regulation will do that as necessary for its own needs.
The main point of this circuit is to prevent overloading the panel's output, which brings its voltage down to battery's (load's) voltage, in this case 18V to 4V, and thus reduces panel's power output to 25% 1/4 of the actual power available, which is a huge loss, especially when every milli-Ampere of current counts during short, cloudy or rainy days.
Panel's voltage going up to its Voc will not happen as long as there is any significant load on its output, so not limiting its maximum voltage will not cause a significant loss of available power.


  • \$\begingroup\$ wow you are the only person so far that has actually tried to answer the question.Anybody can google a dedicated chip ,but there is potential value in trying to make the cheap crappy 2576 work. \$\endgroup\$
    – Autistic
    Jan 17 at 22:07
  • \$\begingroup\$ It took me a few hours, almost a whole day, to come up with the solution, but I did it because I needed it myself. Also, others try to theorize, I try to realize. ;-) I will update my answer when I try this circuit. \$\endgroup\$ Jan 17 at 22:12
  • \$\begingroup\$ The optimum volts which you have taken to be 18 which is reasonable will be lower when there is less light. \$\endgroup\$
    – Autistic
    Jan 18 at 1:09
  • \$\begingroup\$ Yes, I'm aware of that, but it will still provide much better utilization of the insolation than the switching converter alone. Also, I will test it and see how exactly does it behave. I happen to have an LM2596 circuit and a 10W solar panel with a Vmpp around 17V, plus a lab power supply with both CC and CV, so I get everything I need to do it, except more time. \$\endgroup\$ Jan 18 at 2:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.