I'm road testing the Keithley Bench Digital Multimeter DMM6500. In this post, I test the script to measure DC power. The setup uses the input to measure output voltage of a Buck converter, and measures current via the sense input and a shunt. |
Measure DC Power with the DMM6500
The DMM6500 has no power measure option by default. But the instrument can measure 2 voltages at the same time, when in Voltage Rate mode.
In that mode, it will measure the voltage over the inputs and the voltage over the sense inputs.
The default behaviour of the instrument is to dispay the ratio between these voltages.
We'll be using this functionality creatively to measure the output power of a Buck converter under load.
A Keithley engineer posted on EEVBlog how you can use the Voltage Rate functionality to measure power consumption and show the power directly on the screen.
It's done via a TSP script.
The normal inputs of the DMM6500 are used to measure the voltage of a circuit under test.
To measure the current, you have to place a shunt resistor over the sense pins, and put that shunt in series with the circuit you want to measure.
It's best to use a temperature-stable low-value resistor. The value itself isn't critical: you can use the DMM6500 to measure it and use that value later.
The script measures both inputs at the same time in Range mode:
ratio = dmm.measure.read(readingBuffer)
The Input voltage is used as is.
The Sense voltage is divided by the shunt resistance to calculate the current (Ohms Law).
Power is calculated by multiplying the two values.
Here is the preparation part of the script.
The shunt value is measured by me before setting up the circuit, using a 4 wire resistance script.
shuntValue = 0.080430235019587 --ohms readings = 1000 timeBetween = 0.1 --seconds readingBuffer = buffer.make(readings, buffer.STYLE_FULL) powerBuffer = buffer.make(readings, buffer.STYLE_WRITABLE) buffer.write.format(powerBuffer, buffer.UNIT_WATT, buffer.DIGITS_5_5) dmm.measure.func = dmm.FUNC_DCV_RATIO dmm.measure.autorange = dmm.ON dmm.measure.nplc = 0.1
The script collects 1000 readings and then stops.
It sets up two buffers - one to collect the two measurements, one for the resulting power.
Then it sets the instrument in DC Voltage Ratio mode.
In the loop, a measurement is made, and then the Ohms Law formula and DC power calculation formulas are run.
for i = 1,readings do ratio = dmm.measure.read(readingBuffer) vsense = readingBuffer.extravalues[i] seconds = readingBuffer.seconds[i] fractional = readingBuffer.fractionalseconds[i] current = vsense / shuntValue --calculates current voltage = ratio * vsense --calculates voltage power = voltage * current --calculates power buffer.write.reading(powerBuffer, power, seconds, fractional, buffer.STAT_TERMINAL) delay(timeBetween) --waits to take next measurement end
The measurements and calculation are stored in the buffer. The meter displays the active value in the powerBuffer.
As you can see, the value retrieved at measurement isn't the measured voltage at input, but its ratio in relation to the voltage at vsense.
We can retrieve the real voltage back by multiplying the measured vsense with that ratio.
Do More with the Data
The measurements and calculated power are stored in buffers on the DMM6500. You can use those buffers:
On the instrument, you can use them for graphing,
and to get statistics:
Via the web interface, you can download the buffers as CSV files:
Keithley also has examples that use Python on a computer (this can be a Raspberry Pi) to stream the data from meter.
Buffers are also accessable via LabVIEW. Just take care that you can't mix TSP and SCPI. But you can port the power script and run all in SCPI.
Test Circuit Setup
I kept this as last because it's not instrument related.
I'm measuring the power at the output of a Buck converter.
The converter is powered by a 12 V DC PSU and outputs 5 V.
There's an amp meter in series with the DMM6500, just for validation. It's not required.
The current is measured with a shunt of 80 mΩ. It's in series with the output of the Buck output (and the DMM). The sense input measures the voltage drop over the shunt.
The load of the Buck circuit is my electronic DC load. It's set to sink 90 mA.
The voltage is measured directly at the output of the Buck.
Tip: For small measurements you can use a µCurrent to translate current into voltage, instead of a shunt. |
Top Comments