Power from CR2032 - do I want large cap?

Hi,
I plan to do IR remote control based on ATTiny. When I estimated current consumption I have decided even two AAA batteries are overkill. So I decided I will use CR2032 and made some research about its properties. I have found they have self discharge rate about 1% per year ~ 2mAh/year ~ 0.2uA. Unless a button is pressed the ATTiny will be sleeping with current consumption < 0.2uA. I also found very informative app note from TI about using coin batteries. They suggest adding ~100uF cap with parallel with the battery to cover peak currents and extend usable capacity of the battery (they got 40% more in their test setup from a no-name battery). But Datasheet of my e-lite caps says leakage current is up to 6 uA. This would drain the battery “quickly”, ruining any possible gain from adding the cap. On the other side I measured leakage current of the cap. With 4V applied over it the current is (far?) less than 0.1uA. Now I don’t know what to do: should I dismiss the 6 uA as “worst case conditions” overestimate and add the cap or will the leakage current of the cap grow as it will be aging and adding it will shorten battery life?

Buy a better quality capacitor.

Well thanks for advice but this is has "only" 5 times less leakage current (I have 220uF cap with 0.01CV leakage; the one you linked has 0.002CV leakage). But if my test is correct the leakage of my cap is ~30nA, 200 times better! The question still stands: should I trust this optimistic result or may performance of the cap degrade so much? I know my test is crude and may be somehow biased. I also tried to measure reverse current of a diode and got expected ~10nA result.

Buy an even better quality capacitor.

There is something strange with my testing. I am using this circuit


with LM2904 and Arduino Uno connected to laptop connected to AC power. Bias current of the op-amp is 20 nA typ, 150nA max. When the cap is not connected I measure 0.7V on output of the op amp indicating 35 nA bias current from the IN+ pin. Then I connected discharged cap. Voltage was at 3.5V at first slowly declining as the cap charged and the charging current decreased. Currently voltage on output is 0.9V, so there should be 0.9V on the IN+ pin meaning 0.9/20M = 45 nA flowing through the resistors. Subtracting 35 nA bias current only 10 nA is left for the cap's leakage. How is it possible? Is there some mistake in my setup (such as leakage current is bypassing the 20M resistors via some parasitic capacitance or something like that)?
I know leakage current is measured by charging cap, disconnecting it and then measuring rate of its voltage decline. Is leakage through cap permanently connected much lower?
I know current flowing through e-lite cap repairs defects in it. Is the rated current measured by taking discharged cap, charging and measuring it before defect have time to heal?

With currents that small and resistances that high, physical circuit construction, such as leakage paths between PCB traces, PCB solder paste residues, fingerprint smudges, etc. all become important.

Yeh, I know. I am using solderless breadboard. But I expect somewhat consistent readings. I.e. Schottky diode BAT43 gives voltage 1.2V ~ 25 nA (Typical characteristics graph shows something between 50 and 100nA), BAT41 gives 0.9V ~ 10 nA (t.char. graph shows ~30nA). Reverse current of BY133 diode is not measurable as well as reverse current of LEDs in dark. With illumination reverse current of LEDs increases. Sleeping ATTiny shows about 100nA (datasheet shows 200nA). I think my current measuring may be off a bit but at least order of magnitude of current should be right.

EDIT: another possible explanation: My cap is rated for 10V. Is it possible charging it to much less voltage (4V) reduces leakage greatly?

Where are you getting 35 nA from? The datasheet you linked to says 20 nA typical, and 150 nA max. With that wide of a range, using that parameter to infer measurements is hopeless.

I measured voltage when no cap was connected: just 20Mohm from IN+ to GND. I got 0.7V at output, so I concluded there is 0.7V over the resistor. 0.7V/20M=35nA.

Connect the capacitor on the other side of the switch from the battery.

Allan

For me adding a large cap when using a cr2032 made a huge difference, the first battery lasted less then half a year. After i added a 470uf electrolyte cap instead of the 10uf ceramic i had the battery life improved greatly, the latest battery have dropped from 3.13 to 3v in half a year.(nrf24l01, attiny13, thermistor, sending 1 message every 8 sec)
And that is with the cheapest caps and batteries you can find on ebay.

allanhurst:
Connect the capacitor on the other side of the switch from the battery.

Allan

I thought about it. This way pressing the button needs to charge the cap first, leading lo huge inrush current, voltage drop, need to protect the ATTiny from this voltage drop, ... If the ATTiny will be on the other side too each button needs to be able to turn on power leading to even more circuitry.

swe-dude:
For me adding a large cap when using a cr2032 made a huge difference, the first battery lasted less then half a year. After i added a 470uf electrolyte cap instead of the 10uf ceramic i had the battery life improved greatly, the latest battery have dropped from 3.13 to 3v in half a year.(nrf24l01, attiny13, thermistor, sending 1 message every 8 sec)
And that is with the cheapest caps and batteries you can find on ebay.

Thanks for sharing experience. I will try it. At worst it will (one day) kill the battery and I will have to replace/remove the cap. No big deal. I still don't understand why I get so low leakage currents. Maybe I will discover this mystery later but I have run out of good ideas.

EDIT: This text from Vishay describes leakage current in more detail. The current is decreasing with time DC voltage is applied and nonlineary increasing with voltage with steep rise close to rated voltage. Manufacturer's measurement is done soon after voltage is applied (1 or 5 minutes) at rated voltage. This may explain why my measured leakage after hour with 1/3 of rated voltage is much lower than upper limit Datasheet states.

Thanks for sharing experience. I will try it.

Do you trust comments from random, anonymous forum members more that a Texas Instruments Application Note, put together by professional EEs?

jremington:
Do you trust comments from random, anonymous forum members more that a Texas Instruments Application Note, put together by professional EEs?

I’m not sure what you’re complaining about. swe-dude’s post backs up what’s in the TI white paper. And the controversy in the topic isn’t about the contents of the paper, but measuring a capacitor’s leakage current.

By my math, a 220 uF cap from the Nichicon series would have a maximum leakage current of about 1.3 uA. With just that leakage current loading the battery, a 240 mAh battery would take over 20 years to be deleted.

240 mAh / 1.3 uA = 182,000 hrs = 20.7 years.

Even the worst case leakage gives you a ridiculous lifespan, and depending on how often you’re going to be using the remote control might not matter that much. The LED and microcontroller will require many millamps of current, and the energy to send a single IR command might well be equivalent to days worth of sleep leakage, depending on how hard you drive the LED and how well you manage power on the microcontroller when it’s active. Depending on how these details shake out it might well turn out that the code sending state has a larger effect on your battery life than sleep leakage. In that case, all your fretting here would be useless (penny wise, pound foolish).

Do the math. The attached Microchip application notes contains an example (starting on page 6) of how to create a power profile to do just that, and also much more information in general about low power design.

1416 - Low-Power Design Guide.pdf (274 KB)

An old tick to measure extreme low cap leakage current is with a DMM set to Volt (not current).

Connect the DMM between a very stable voltage source(+) and cap(+).
The DMM measures voltage across it's own internal 10Megohm (now shunt) resistor.

If you use Ohm's law, you find that 1volt = 100nA leakage.
Charge/equalise the cap first by shorting the DMM leads for a minute.
Cap leakage will drift, so turn the meter off and look again the next day.
Leo..

Jiggy-Ninja:
By my math, a 220 uF cap from the Nichicon series would have a maximum leakage current of about 1.3 uA. With just that leakage current loading the battery, a 240 mAh battery would take over 20 years to be deleted.

240 mAh / 1.3 uA = 182,000 hrs = 20.7 years.

Even the worst case leakage gives you a ridiculous lifespan, and depending on how often you’re going to be using the remote control might not matter that much. The LED and microcontroller will require many millamps of current, and the energy to send a single IR command might well be equivalent to days worth of sleep leakage, depending on how hard you drive the LED and how well you manage power on the microcontroller when it’s active. Depending on how these details shake out it might well turn out that the code sending state has a larger effect on your battery life than sleep leakage. In that case, all your fretting here would be useless (penny wise, pound foolish).

1uA.year=365*24 uAh ~ 10 mAh. In the quoted TI’s app note they got 40mAh from adding the cap. If leakage were 1uA any gain is lost in 4 years. For larger leakage it is lost sooner.

One command is 32ms long with 25% duty. With LED current 20mA (->5mA average) and MCU current <1mA sending one command is
32ms*6mA ~ 200uAs ~ 0.05 uAh
Since sending 100 commands should more than be sufficient pressing the button (to get Roomba from its hiding) “costs” about 5uAh. Even 1uA drain from cap would dominate this.

Wawa:
An old tick to measure extreme low cap leakage current is with a DMM set to Volt (not current).

Connect the DMM between a very stable voltage source(+) and cap(+).
The DMM measures voltage across it’s own internal 10Megohm (now shunt) resistor.

If you use Ohm’s law, you find that 1volt = 100nA leakage.
Charge/equalise the cap first by shorting the DMM leads for a minute.
Cap leakage will drift, so turn the meter off and look again the next day.
Leo…

Nice trick. Will try it, thanks.

Just tried a random low ESR 470uF/25volt cap, on a 5volt supply.
It had a leakage of ~20nA after two hours.
Leo…

Smajdalf:
1uA.year=365*24 uAh ~ 10 mAh. In the quoted TI’s app note they got 40mAh from adding the cap. If leakage were 1uA any gain is lost in 4 years. For larger leakage it is lost sooner.

One command is 32ms long with 25% duty. With LED current 20mA (->5mA average) and MCU current <1mA sending one command is
32ms*6mA ~ 200uAs ~ 0.05 uAh
Since sending 100 commands should more than be sufficient pressing the button (to get Roomba from its hiding) “costs” about 5uAh. Even 1uA drain from cap would dominate this.
Nice trick. Will try it, thanks.

And now we know your power profile instead of just guessing about it.

Your profile is very different from the one the TI whitepaper used for their investigation. Yours is estimating 100 lifetime current pulse events, theirs would have that many pulse events after only 20 seconds. Based on your estimated infrequency of use, I think you are correct in concluding that sleep mode current will have the biggest impact on your battery life, and you won’t get anywhere near as much benefit from the capacitor as suggested in the TI white paper. Contrast that with TI’s test cases, where the processing and TX/RX states use 2-3 times more of the battery’s capacity than the sleep state (62 uAh for case 1 and 47 uAh for case 2 per active interval vs. 20 uAh per sleep interval).

This is why I asked you to make the power profile, so we could put numbers to the different states. If this was something that you planned on using several times daily (like a TV remote), or required more power to the LED, the conclusion might have been the opposite.

What?
I will send a pulse each 100ms while the button is pressed. I expect 100 pulses will be enough for Roomba to register it, maybe less.
Anyway profile is not so important when deciding to use or not to use the cap. It is "battery capacity gain" from adding cap vs. current lost due to leakage. "Battery capacity gain" depends on so many factors it cannot be estimated reasonably (TI got from 5% to 40% increase in their test depending on battery and protocol). So the question in fact reduces to "How much harm the cap causes?" The harm is basicly leakage current times times battery life. If leakage current is in order of uA as Datasheets suggest it is unacceptable large except for application that drains the battery quickly. If it is in order of nA as tests suggest its impact is neligible and I think it is worth the possible gain.

Smajdalf:
Hi,
I plan to do IR remote control based on ATTiny. When I estimated current consumption I have decided even two AAA batteries are overkill. So I decided I will use CR2032 and made some research about its properties. I have found they have self discharge rate about 1% per year ~ 2mAh/year ~ 0.2uA. Unless a button is pressed the ATTiny will be sleeping with current consumption < 0.2uA. I also found very informative app note from TI about using coin batteries. They suggest adding ~100uF cap with parallel with the battery to cover peak currents and extend usable capacity of the battery (they got 40% more in their test setup from a no-name battery). But Datasheet of my e-lite caps says leakage current is up to 6 uA. This would drain the battery “quickly”, ruining any possible gain from adding the cap. On the other side I measured leakage current of the cap. With 4V applied over it the current is (far?) less than 0.1uA. Now I don’t know what to do: should I dismiss the 6 uA as “worst case conditions” overestimate and add the cap or will the leakage current of the cap grow as it will be aging and adding it will shorten battery life?

This should be enough: :slight_smile:

caps.jpg

Seriously, my Sony camera IR remote that I built has 100 uF as the one and only aluminum electrolytic (as well as several 0.1 uF ceramic bypass). The VCC droops about 100 mV when it’s making pulses. Not to worry.

By the way, if you’re interested, here’s the code for my IR remote (which uses a Tiny 85 and sleeps between button presses). With minimal effort, you should be able to adapt the code for your own use.

https://github.com/krupski/sony_ir