1
\$\begingroup\$

I have a relatively low-power autonomous device, which will be left untouched for weeks or months. Solar recharging is therefore very important. Maximising solar power for overcast days is also important - every milliamp counts.

The Maximum Power Point Tracker is an ATtiny85. It uses about 1 mA when running. Maximum throughput for the system is about 200mA, which is about right for the rated power of the solar panels.

The ATtiny85 is powered by a TPS709 LDO 3.3V regulator (very low Iq, 2.7-30V input, enable either floating on or Ven max 6.5V, enable on >0.9V and off <0.4V)

The problem is that it won't start up on its own under slowly rising light levels. Covering and uncovering the solar panels under grey skies (even very slowly) works fine, but the circuit does NOT cope with very slowly brightening skies from dawn - it gets itself into a loop with about 1.2V measurable across the ATtiny85's power pins, even while the solar panels themselves read about 10v; unplugging and reconnecting the panels under these conditions causes the system to start up perfectly well.

schematic

simulate this circuit – Schematic created using CircuitLab

The above schematic shows the setup. I've tried to solve the problem by including a Zener diode bridge, to keep the voltage regulator off until there's at least about 4 volts across the solar panels (but not exceed the 6.5V maximum even with voltage spikes). It seems to work, but doesn't solve the dawn-to-overcast light problem.

Is there any low-power solution to reliably turn on my MPPT? Have I missed something obvious?

Edit: updated the schematic to include ALL components. LDO regulator capacitors are as per Data Sheet. Current sensor components are to give full range 2.5V Vout for 1A across Rsense (0.1 R). Additional resistors are to limit current through ATtiny85 inputs and outputs in case of short circuit, or to allow an external microcontroller to take over control of the output HSS if the Tiny is unresponsive. ADC voltage sensing uses a 133k/20k resistor bridge so that ADC output, bitshifted down to 8 bits, gives a voltage range of 0v-25.6v in tenths of a volt for human-readable reporting purposes.

\$\endgroup\$
5
  • 2
    \$\begingroup\$ Do you have input and output capacitors on that LDO? If so, maybe show a more detailed schematic with all components and their values. \$\endgroup\$
    – John D
    Commented Mar 4, 2023 at 19:07
  • \$\begingroup\$ Does the ATtiny have a power on reset (POR) function? It's also possible that there will be a current surge on start-up that drains the bypass capacitor and causes oscillation. Make sure power supply is bypassed with sufficient capacitance. \$\endgroup\$
    – PStechPaul
    Commented Mar 4, 2023 at 21:18
  • 1
    \$\begingroup\$ It's not an easy problem to solve. I have had the same issue. The basic problem is that the voltage from the solar panel is not a good indication that there is sufficient current available to operate the circuit; a solar panel is essentially a constant current device. Run the processor from the battery - an ATTiny85 can run on only a few microamps using the watchdog timer to periodically wake and check on the solar power available. I have a solar monitor using ATTiny84 that has been running from over a year. \$\endgroup\$ Commented Mar 5, 2023 at 2:32
  • \$\begingroup\$ Thanks all. John D: Circuit updated to show all components; the capacitors are as per "typical application" in the datasheet. PStechPaul: yes the tiny85 has POR; I perhaps should try strengthening the internal pullup on the RESET pin; I'm trying to avoid the complication of setting the tiny's fuses to enable brown-out detection but that may be part of the solution. Kevin White: thanks for the info; I was hoping to avoid the 12+ hours of drain every day and the coding to keep power in the microamps range... And I cannot fully weatherproof the main battery, so I hoped to survive on solar alone \$\endgroup\$ Commented Mar 5, 2023 at 14:15
  • \$\begingroup\$ I think @KevinWhite is correct about the root cause and potential solution of the issue. You could try more input capacitance on the LDO, maybe 10 uF or 22 uF, but not sure that would completely solve the problem. \$\endgroup\$
    – John D
    Commented Mar 5, 2023 at 18:56

1 Answer 1

3
\$\begingroup\$

One approach to avoiding the described start-up scenario is to intentionally load the solar panel with a resistor that simulates the load of the microcontroller when the voltage is lower than the minimum operating voltage of the controller. This resistor would be disconnected when the voltage is above the minimum required.

For example if the controller requires 1mA and 3.3V to operate then a 4k resistor across the panel together with a threshold voltage of 4V would guarantee there is sufficient power when is enabled.

I would leave the TPS709 regulator always enabled and control the reset of the controller such that it is held in reset if the panel voltage is below 4V. In that condition its power consumption would drop to a few microamps.

Because the load resistor would actually be diverting slightly more current that the requirement for the controller the panel voltage would actually increase when the controller is released from reset and the shunt resistor disconnected - this should provide a suitable positive feedback to minimize oscillation between the two states.

Similarly as the panel output declines at sunset (or clouds) the voltage would make a step decrease when the processor is put into reset and the load resistor substituted. This decrease would ensure that it remains in that state.

You will need to create a suitable circuit to compare the panel voltage with 4V threshold and control operation of the shunt resistor and processor reset. This circuitry (comparator plus logic gate or two) may take another few hundred microamps.

\$\endgroup\$

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