Anelok: temperature vs. current
werner at almesberger.net
Wed Jul 30 23:55:31 UTC 2014
Speaking of the effect of temperature: my test setup is as follows: the
Anelok board is supplied with 3.0 V into Vsys from a lab power supply.
The firmware running on the KL26 turns on the LED for 1 s, then turns it
off and enters LLS mode for 29 seconds. During this time I measure the
current that flows into the board.
Now, it's not a flat line but looks more like this:
This was from around last midnight. The interval begins with the first
measurements showing a current below 100 uA and ends with the last sample
before the MCU wakes up again and repeats the cycle. I trimmed the graph
a bit since there's inevitably some noise at the edges of the interval.
The black dots are the actual samples. The grey lines are some pretty
bezier curves gnuplot uses for smoothing the graph. The thick red line is
a function of the type f(x) = A+B/x^C where gnuplot determined values of
A, B, and C suitable for the data set.
Now, that looks all very nice, doesn't it ? Well, I did a bit more
hacking and then took a nap. When I got back to the lab at 8 am, I made
another set of runs. This time, I got this:
Did the elves sneak into my lab and optimized power consumption while I
was asleep ? By almost 1.6%, no less ? No, it's just that my lab had
cooled down and current dropped accordingly.
Turning on the heating and letting the experiment run for about half an
hour, I got this:
About every minute after starting the heating, the current increased by
almost 1 nA.
1 nA isn't a lot of current and most meters wouldn't even see the
difference. So why do I care about such thermal drift ?
There are two reasons: one is that when trying two possiblities for, say,
setting a GPIO to the lowest-power idle state, the change may be in the
order of a few dozen nA. Since I'll repeat this for several pins, the sum
may become significant but since each pin may react differently some of
the changes may cancel each other out if I don't do it step by step.
So the conclusion from this is that I should try to make such experiments
within about half an hour and at a time of day without major temperature
The second reason is much simpler: most of the time I want just one
reading. But when should I take it ? The current drops rapidly during the
first seconds so I have to wait a little. There is also quite a bit of
noise to take into account. So I should probably still get a series of
There is one more effect, not shown by these measurements: after Flashing
new firmware, idle current is also higher for a while. That's probably
because the chip ran "hot" (a few mA) for a while and it takes a few
minutes for it to cool down again. So that cool-off period wants to be
More information about the discussion