Recently I have tested an complete over the top design which pushed the poor little
CR2032 far beyond its limits. Time to grab a few facts from the datasheet for further reference.
To get a good example I found a quite elaborate CR2032 datasheet from Duracell. I think other batteries behave quite similar to this.
The general key fact of an CR2032 are obvious and quite easy to grab from the datasheet:
Voltage: 3V
Capacity: 240mAh (to 2.0V)
If you study the datasheet more closely you will see that the voltages drop sharply after it reaches 2.8V (after it has delivered about 170mAh).
ESR (Equivalent Series Resistor):about 18 to 20 Ohms.
The ESR (Equivalent Series Resistor) or IR (Internal Resistance) is quite flat up to 150mAh of capacitance – there it reaches about 20 Ohms. At 170mAh it reaches something like 30 Ohms. This is quite hefty. In comparison good capacitors have a series resistance from some Ohms to a fraction of an Ohm – so it is always good to put some (even electrolytic) capacitors in parallel to the battery. If you are concerned that switching on or of of your circuits discharges the battery to much by charging up the capacitors – there is a simple trick to prevent it: put the capacitors in front of the ‘on’ switch so that are always charged and will not charge after your circuit is switched on. The leakage current will be so small that it will be neglectable in most cases.
But if you want to calculate how much constant current you can draw from these batteries you have to use Ohm’s law:
V = R * I or I = V /R
If you take the later and say you want no voltage drop higher that 1.2 Volts – because after that your circuit reaches 1.8 Volts which makes your microcontroller most probably going brown out. Applying these with the ESR of 20 Ohms, you will get something like 60 mA you can draw by them (I = 1.2V/20Ohm). You if calculate more conservative and do not want to go below 2.8V – which gives you some 0.2 Volts head room – you will only be able to draw 10 mA (I = 0.2V/20Ohm) – just enough for an LED. These calculations do not consider the voltage drop of the battery of its life time.
In the bottom line: If you use those batteries you have to consider the 20-30 Ohms series resistance. Especially if you draw some constant current (spikes can be easily removed using capacitors). Yo have to assume 170mAh as maximum capacitance because then the CR2032 reaches 2.8Volts and the ESR goes up to a whopping 30 Ohms – going up from there very steep. Because of the high ESR of the CR2032 you will most probably not be able to draw more than 20-30 mAh safely (as constant current).
Perhaps it is even better to get a boost converter to 3 or 3.3V – to suck out all the juice in the battery. This should should be good for the environment too. Or even better get rechargeable Lithium Cells.
So driving an RGB with an 5V boost op converter is impossible. At white (all three LEDs draw 20mA) it is 60mA current at 5V, considering a efficiency of 80% this will give you more than 120 mAh at 3.3V. Impossible or the CR2032. So my intended design will never work. I wish I had done those calculations before I designed it and not after I saw that the prototype does not work.
As we see the higher the current is the more loss we get by the ESR of 20 Ohms. So the question is how much power we can get from an CR2032. If we want to draw the maximum amount of power over a short time we simply take the power:
P=V*I
And we know that the voltage is
v=3-20*I
And we get
P=(3-20*I)*I
If we create a little graph from it we get
So we see that the maximum is somewhere at 75mA and somwhere at 0,1125 Watts. Perhaps the real theoretical value is a bit off – but most real batteries will be a bit off too, so it is a good enough aproximation.
So that is somewhat consistent to our previous calculations to not exceed 80mA to avoid a too big voltage drop.
But how many energy can we draw from an CR2032? For this we simply calculate the watt hour of the battery:
e=P*t and t=0,24A/I
so we get
e=(0,24/I)*P
or
But this is not very astonishing. The less current you draw the less loss you got at the internal resistor. But I am unsure if there is this resistor, which burns energy to heat. But since the batteries get hot if you draw too much power you will get some loss. But I do not think that the loss is equal to a 20 Ohm resistor. But the main finding is clear – the more current you draw the more loss you have.
From the comments I got the tip to put the lithium coin cells in series to get a higher coltage at the current draw. But this will enlarge the voltage swing at different current levels (from 6V at 0mA to 3V at 150mA). This can be dangerous for your circuit. A better approach would be to put the batteries in parallel to half the internal ESR – so you would still get 1.5 Volts at 150mA.
Of course to counter current spikes you should allways put sufficiently sized capacitors in parallel. Sufficiently sized depends on the level of current spikes and there time. Just check out how a Farad is defined and you can derrive the needed value (which is the product of voltage change and time).
But in most of my designs space is a rare good. So no parallel batteries and no big capacitor banks.
Something that could work is sucking the power with a boost converter to get a steady output voltage independent of the current draw. This would of course enhance the loss but at least we get the voltage we want at an expense of the efficiency.