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 sensor.
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 Ohm’s Law:
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 including:
- 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 specifications 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 power:
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 measurement as:
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.0132 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 20.5% of the total budget, or 8.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 measurement challenge. Joulescope addresses all these issues at a much lower cost than other solutions.