I have a uC that works with 1.8V up to 3.3V. Current consumption is at about 20uA in sleep mode and about 12 mA in active state. The uC will enter active state for about 100 ms every minute.

So I am trying to power this from a Vishay super cap: 15F at 2.8 volts with an ESR of 1.2O at 1kHz.

Math says I can pull about 4.10 mA from this cap before its voltage drops to 1.8 volts, at which point the micro will shut down.

So.. the question: am I missing something? Should I add a small electrolytic between the super cap and the micro? A small zener to limit eventual (possible?) spikes in voltage? Should I add a buck boost converter to get a bit more out of the capacitor?

Also.. if I disable brownout detection on the microcontroller, maybe I can pull something like 10% more charge from the capacitor? I can implement error checking in case the micro outputs gibberish, which usually happens in low voltage scenarios with brownout detection disabled.

  • 2
    \$\begingroup\$ If the micro outputs gibberish due to low voltage, then any error correction that runs on that micro is also gibberish. \$\endgroup\$ – AaronD May 13 '16 at 23:35
  • \$\begingroup\$ Why would one want to run error-checking code on the same micro that might be generating the errors? the data will be checked for errors at download time. (sorry if I wasn't clear in my original post) \$\endgroup\$ – Nick M May 13 '16 at 23:44
  • 1
    \$\begingroup\$ Wouldn't a load of 4.1mA across an ESR of 1.2 ohms generate ~5 millivolts of voltage drop? (0.0049V = 0.0041A*1.2Ohms) \$\endgroup\$ – Sam May 13 '16 at 23:48
  • 2
    \$\begingroup\$ Oh, it's a datalogger. Assuming you're okay with storing gibberish, there's still the question of whether your addressing is correct. Literally anything can be gibberish in a low-voltage scenario: the data to be stored, the address to store it in, the program counter, even the instructions themselves. (the program is still stored okay, but could be fetched or executed wrong) \$\endgroup\$ – AaronD May 13 '16 at 23:49
  • 1
    \$\begingroup\$ Especially dangerous is if you use the same storage for both program and data. If you don't have a separate EEPROM, whether on- or off-chip, you're pretty much stuck with that. Now what happens if the writing address becomes gibberish? \$\endgroup\$ – AaronD May 13 '16 at 23:53

From your parameters, your supercap would discharge in 1848 seconds to 1.8v under a constant 12mA draw.

$$Bt(seconds) = C(Vcapmax - Vcapmin) / Imax$$

If it's only active for 100ms every minute it has a duty cycle of:

$$100ms / 60000ms = 0.0016667%$$

It would last ~1.1 million minutes, or about two years. That is excluding the sleep mode draw however. At 20uA, interestingly enough your total active mode power consumption would be about the same as your total sleep mode power consumption, so we can easily estimate that including the sleep mode (which will be 99.84443% of the total time), your device will last for about a year from fully charged to 1.8v. You could extend this quite a bit by adding a high efficiency buck-boost, provided you don't add too many losses with it. Some modern boost converters can yield 1.8v out from as low as 0.25v in.

  • \$\begingroup\$ So now the other question is: how much internal leakage does the supercap have? It might be negligible, or it might dominate the system. \$\endgroup\$ – AaronD May 14 '16 at 0:15
  • \$\begingroup\$ Read the spec sheets. Leakage is high for a few hour or days, but drops to a negligible level by that time. It just needs time to condition its electrolyte, then your good to go. \$\endgroup\$ – user105652 May 14 '16 at 0:23
  • 2
    \$\begingroup\$ Good thinking about the capacitor's leakage. Keep in mind also any input pin's leakages, passives, etc. your board may have. 20µA is a small quantity so anything can add up considerably to that figure. I'd consider a simple lithium primary battery (not the rechargeable kind) instead of the supercap; they keep their charge for years and are very cost effective. They give you 3.6V but perhaps you can work that out. \$\endgroup\$ – Guillermo Prandi May 14 '16 at 3:09

The answer from Drunken is correct, but there is one important thing missing. You must consider the supercap ESR. For supercaps, they often are in the range of 100 ohms, which would cause a voltage drop of more than 1V when the MCU is active, causing it to shut down.

Therefore, you must have a regular cap with low ESR in parallel, that can hold the voltage during the 100 ms of activity. Something like 1000 uF electrolytic would certainly be appropriate.

Also check the caps leakage. Both the supercap and the parallel electrolytic. This current could be significant, relatively to the standby MCU current. However, they are rarely mentioned in datasheets. You may need to test.

  • \$\begingroup\$ This one has ESR 1.2O at 1kHz \$\endgroup\$ – Nick M May 14 '16 at 17:55
  • 1
    \$\begingroup\$ That's a hell of a supercap. In this case, you dont need such a big additional cap in parallel. Just put some 10u ceramic, to prevent voltage drop due to the short current spikes, and of course the usual 100n close to the MCU. \$\endgroup\$ – dim May 14 '16 at 18:10
  • 2
    \$\begingroup\$ If you do add a buck-boost, the caps it will require in its spec sheet should be enough. Same if you use a linear low-dropout regulator, the typical 10uF caps in its reference design should be enough. You have to be careful of the caps you choose and how many you add, their ESR adds to your total system losses. The same goes for any pull-up resistors, or any transistors. \$\endgroup\$ – Drunken Code Monkey May 15 '16 at 2:33
  • 3
    \$\begingroup\$ What @Drunken said. By the way, you're saying amazingly relevant things, for a drunken monkey. I'm not half as smart, when I'm drunk, and I'm not even a monkey... Anyway, drinks all round ! Er... Upvotes all round ! \$\endgroup\$ – dim May 15 '16 at 11:28
  • 1
    \$\begingroup\$ P.S. ceramics beat electros any day of the week at leakage currents -- this is a great application to take advantage of large X5R or X7R chip ceramics (up to 100+μF!) \$\endgroup\$ – ThreePhaseEel Aug 14 '16 at 10:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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