Anelok: the power struggle
werner at almesberger.net
Thu Apr 9 05:49:54 UTC 2015
Some news regarding Anelok's struggle for power:
Days on battery
First the best of the bunch: I had a device run exclusively on battery
power. The battery, a fresh CR2032 cell, lasted for several days of
standby and occasional use, I think something like four or five days.
This may not sound like much, but it's definitely a step up from the
previous battery run that ended after a minute or so with the system
Standby current of the system is still fairly high - some two orders
of magnitude above the ~6 uA I measured as the absolute minimum I
I'm not sure how deeply the battery was discharged by this. I'm
currently draining it through an 15 kOhm resistor and the curves so
far suggest that Anelok was able to use about 30% of its charge before
things became unstable.
Since the killing blow probably came from some current spike, I
should be able to improve this ratio by adding a capacitor across the
I drew the power tree and it shows some good and some not so good
First of all, it confirms that capacitors on the "downstream" side of
switches are usually small enough that they won't overwhelm the ones
on the "upstream" side.
I should proabably increase C8 and then C7 to 10 uF, though: the data
sheet of the boost converter points out that the chip needs at least
4.7 uF effective capacitance, not nominal. This means of course that
real-life 4.7 uF capacitors are not enough, which may also explain why
the boost converter already becomes unstable at relatively high input
The bad news is that memory cards are allowed to draw quite a bit more
power than I thought. One is specified as using up to 75 mA during for
a write, which can take up to 250 ms. At 3.3 V, that's about 250 mW,
about twice the best-case power output of a CR2032.
Real-life consumption of a card may be well below this, though.
Memory card read vs. real battery
A first experiment with a used cell with unknown remaining charge had
Anelok start nicely from it, but fail when trying to initialize a 1 GB
SanDisk memory card, let alone read from it.
With a fresh cell, reading the first 100 blocks a few times worked. So
there is hope that at least reading will work over a sufficiently
broad range of operating conditions.
The USB plug - a hidden killer
I also played a bit with USB and found another issue: when connecting
USB while on battery power, Anelok may reset. And it resets again when
disconnecting USB, even if battery power is available and the
regulator is already turned on.
It does all this unpleasantness very reliably when at 2.4 V from the
lab power supply. However, when running from a fresh cell, things are
This is probably caused by the FET that cuts off the battery when we
have USB power (to avoid reverse-charging) cutting off when the USB
voltage is too low to supply the system.
This is a first draft analysis and a possible rework (based on
theoretical considerations, not measurements):
This scenario is similar to just removing the battery. Anelok is
supposed to be able to quickly enter ultra-low-power standby and run
off the silo capacitors until the battery is replaced.
So the same mechanism may work in this case as well, and the whole
problem may be solvable by software alone.
The future of CR2032
Even though is seems that it will be possible to operate Anelok
meaningfully from a CR2032 cell, there may be very little margin for
error. And peak power demand will get higher when we also consider RF
and the planned two-MCU design.
This means that it will probably be necessary to find a stronger power
source for the actual product. An AAA cell would fit that need,
especially given that its internal resistance is about two orders of
magnitude below that of a CR2032 cell.
Going to AAA would affect the overall shape, especially making the
device thicker. The volume would also increase by maybe 20-30%. The
circuit would be almost unaffected:
- the boost converter would have to run all the time when on battery
power. This could be implemented with trivial rework of the existing
Anelok circuit, but there are a few optimizations one would want to
make that are a bit more intrusive.
- the boost converter should already be able to run from an AAA cell.
However, the AAT1217 I currently use has too high an idle current
for this type of operation so I'd have to switch to the TLV61220,
which is very similar but has a much lower idle current.
- the FET in the battery cut-off circuit wouldn't be ideal for such a
low battery voltage. But one could just let the boost converter do
this switching, moving the FET out of the high-current path.
So the overall plan is to go ahead with CR2032, which should be good
enough for a first set of proof of concept and "pioneer" devices, then
to consider switching to AAA for the "early adopter" devices.
More information about the discussion