Multimeters are a necessary tool for developing electronic devices. In this
article, we will explore the challenges of using a multimeter to estimate the
energy consumption of an example device: a microcontroller-based wireless
Current measurement is performed using an “ammeter”, which is included
in most multimeters. The most common ammeter implementation places a
current shunt resistor in series with the load:
The ammeter works by measuring the voltage across the resistor. According to
V = I * R
where V is voltage, I is current and R is resistance. Solving for current:
I = V / R
The multimeter often has different current ranges which are implemented using
different shunt resistors to change the value of R. Some ranges also have
a gain stage on the measured voltage.
Most ammeters, including those in multimeters, have significant limitations
- Burden voltage: The voltage drop (also called insertion loss) across
the ammeter which results in a lower voltage being delivered to the
device under test.
- Leakage current: The amount of current diverted through the ammeter and
not delivered to the device under test.
- Bandwidth: The response of the measurement in the presence of a
time-varying signal. For target devices that use a positive DC supply, the
bandwidth relates to the change in load presented by the target device.
- Dynamic range: The variation between the minimum current and the
maximum current used by the device under test.
Let’s take a look at the
for a well-known, quality hand-held multimeter, the Fluke 87:
|10 A||10 mA||±(0.2% + 2)||30 mV/A|
|6 A||1 mA||±(0.2% + 4)||30 mV/A|
|400 mA||0.1 mA||±(0.2% + 2)||1.8 mV/mA|
|60 mA||0.01 mA||±(0.2% + 4)||1.8 mV/mA|
|6 mA||1 µA||±(0.2% + 2)||100 µV/µA|
|0.6 mA||0.1 µA||±(0.2% + 4)||100 µV/µA|
The specification is silent on leakage current.
The DC bandwidth is on the order of 1 Hz. The AC bandwidth has much worse
performance (±1%) and the bandwidth is 45 Hz to 2 kHz.
Now let’s see what happens when we connect the multimeter to estimate the
energy consumed by a target device. Let’s use the example of a target device
that periodically takes sensor measurements and reports the measurements
over RF. The target device must take the measurement from the sensor, send
the measurement over RF and then go back to sleep. In our simple example, the
target device has three states: radio, active and sleep.
In order to estimate the total energy consumption, we first need to compute
P = V * I
Energy is the integral of power over time. For constant power, the integral
can be simplified power multiplied by the time duration:
E = P * t
The classic approach to using a multimeter to estimate energy is to first
measure the duration of each state using a separate method, often either an
oscilloscope inspecting the voltage across a fixed shunt resistor or a logic
analyzer inspecting bits set by the microcontroller. You can then force the
system into each state and directly measure the current using the multimeter.
Let’s say that our device uses a 3.3V supply, and we measured the following:
|radio||200 mA||50 ms / measurement|
|active||50 mA||100 ms / measurement|
We can estimate the energy consumed by our target device per sensor
Energy = 3.3V * 200 mA * 0.050 seconds +
3.3V * 50 mA * 0.100 seconds +
3.3V * 1 µA * (measurement interval - 0.15) seconds
If the device takes one sensor measurement every hour, the total energy per
sensor measurement is then:
Energy = 0.033 J + 0.0165 J + 0.0119 J
So, how accurate is our estimate? Let’s start with the first radio state
energy estimate. The Fluke 87 states that the burden voltage is
1.8 mV / mA in the 400 mA range. For our measurement, we have
1.8 mV / mA * 200 mA = 360 mV drop
Due to the voltage drop across the multimeter, the target only receives 2.94V
rather than the supplied 3.3V. This reduced voltage may have caused
unexpected behavior, such as brown-outs, on the target during the measurement.
If the target has a DC-DC converter, our measured current is going to be higher
than in the final product. We would reduce the burden voltage by setting
the multimeter to a larger range at the expense of resolution.
Fortunately, the active state uses a current range with the same burden voltage
specification as the radio state. If the active state was only 6 mA, and the
multimeter was on the 6 mA range, the burden voltage would be 0.6V! Since the
multimeter switches current shunt resistors with the current range setting,
reducing current does NOT necessarily reduce the burden voltage.
This multimeter is also not able to accurately measure the sleep state current,
which is 20.5% of the total energy! In the 0.6 mA setting, the accuracy is:
±(0.2% * 1 µA + 4 * 0.1 µA) = 0.402 µA
This amounts to 40% error on 19.4% of the total budget, or 7.7% total error!
Bench multimeters usually provide additional resolution and accuracy. However,
the burden voltage specifications are similar and often on the range of 0.7 V
for full-scale measurements. You can sacrifice the additional resolution
to provide a reasonable burden voltage.
A multimeter is a vital tool, but multimeters present numerous challenges to
accurately energy measurements. The operator must be
constantly aware of the burden voltage and resolution. Developers must be
diligent in performing this tedious task regularly. As a developer,
whenever you change something that affects power levels, including changes in
durations of any of the power states, you have to measure the power consumed in
each possible state and the amount of time that the device spends in each state.
In practice, developers using multimeters to measure power rarely perform
testing frequently. Infrequent testing allows the product to collect
“surprises” that are not discovered until late in the design cycle.
Fortunately, many alternatives exist that greatly simplify this energy
Joulescope addresses all these issues at a much lower cost than other solutions.