I was originally planning to show the use of the multimeter in a tutorial style, however, the multimeter is very easy to use and I feel that a tutorial approach is likely to seem, and be, patronising. So this blog post is just going to focus on practical measurements that can be done with the 34461A.
Microcontroller current consumption
The power consumption of modern microcontrollers can vary quite a lot, with many of them stating that they have very low power modes. I thought that it would be quite interesting to measure the power of an ARM Cortex-M4 microcontroller, as I have quite a few of the same development board - the STM32F4 discovery board.
The STM32F4 has four main power modes - run, sleep, standby and stop - with the discovery board having a specific jumper designed to measure the microcontroller’s power consumption.
The first mode I tested was sleep. The microcontroller was programmed, then held in reset for the first 30 seconds of the recorded data. It was then released from reset, where the programmed software would immediately place it into sleep. After another 30 seconds, the microcontroller was woken up, by pressing a button, with the microcontroller illuminating four LEDs to indicate that it is awake.
The image below shows the trend chart on the multimeter.
The image above is a plot of the data, with annotations showing the different modes and the average current draw for each mode (with averaged 1-year errors).
The same process was done for the standby mode.
The eagled eyed readers will spot that both the sleep and standby modes were measured with the range set to 100 mA, not to auto. Even though the reset would be best measured in the 10 mA range and the standby mode in the 1 mA range, it was observed that the microcontroller experienced brownouts when using autoranging. This was particularly noticeable with the standby mode, where the current draw crosses two of the multimeter’s ranges very quickly. Despite this, the 6.5 digit resolution of the multimeter still gives an excellent level of precision.
When the STM32F4 is placed into its stop mode, it has to be woken by its RTC. To save time, I decided that the device shouldn’t wake up for this test. So the images below show the STM32F4 being held in reset for 30 seconds and then 30 seconds of the microcontroller after it has placed itself into its stop mode.
I was surprised to see that this had a higher current draw than the standby mode, so I think that I might not have disabled everything that is necessary to reduce the power consumption further. However, as we are concerned with the multimeter and not the microcontroller, we can see that the 34461A is very good at measuring the current consumption of a reasonably high-end microcontroller.
Resistor characterisation
I was originally planning to characterise a pack of resistors using the probe hold mode, however after finding out that the probe hold mode doesn’t support statistics I decided to do it by manual triggering. For this I used the 2 wire resistance mode, with 100 PLC and the SMT grabbers to hold onto the ends of each of the 96 resistors (which were still on their bandolier). I would have liked to have used the 4 wire resistance mode, however it was not practically possible as it introduced too much noise (as I was holding the other two probes). As the resistors I was measuring were 5.1 kOhm, the nulling of the leads was more than adequate for accurate readings.
The graph below shows two histograms, one generated by the multimeter and one generated in the graphing software from the collected readings.
Unfortunately, I managed to discover a bug in the multimeter firmware, where the histogram on the multimeter’s display does not update when triggering has been stopped. So I was not able to capture the screen with the correct histogram.
The table below shows the measured resistances with their 1 year accuracy.
Minimum | 5073.58317 Ohm +/- 507.458 mOhm |
Mean | 5084.78991 Ohm +/- 52.1167 mOhm |
Maximum | 5105.37517 Ohm +/- 510.638 mOhm |
With the following table showing how far these values are away from 5.1 kOhm.
Minimum | 0.517977 % +/- 0.00995016 % |
Mean | 0.298237 % +/- 0.00102190 % |
Maximum | 0.105395 % +/- 0.0100125 % |
As you can see from the table, all of the resistors fall well within the 1% specification.
Characterisation of voltage references
There are many applications where accurate and stable voltage references are required, for example in ADC circuits. So I was interested to see how well you can use the 34461A to characterise different voltage references.
MAX6126-30
The first reference I characterised was one of the highest accuracy references I could get my hands on - Maxim Integrated’s MAX6126. This is a +/- 0.02% reference with a temperature coefficient of less than 3 ppm/ deg C, so should ideally be quite stable. The 34461A was set to auto-trigger and auto-range, with 10 PLC, and was left for around an hour and a half to warm up. Just for the sake of intrigue, I left the multimeter recording for this warm-up time, with the following images being the results.
Whilst practically not being very useful, it is quite interesting to see, from the trend graphs, the warm-up characteristics of the system - whether this is the multimeter or the voltage reference, is something that I have not looked into, as both had power applied to them at the same time.
The multimeter was then left for 9 hours measuring the voltage reference at the default rate (once every 200 ms). With the following images being taken from the multimeter.
One of the things that I particularly like about the multimeter is its programmability, which means that the user can directly access the histogram data from a computer. Whilst I will cover this in a later blog post, I thought I should mention that the histograms I obtained from the multimeter was done over the LAN interface using a Python script on my computer.
The first graph shows the exact same data as what is in the previous image, just with a slightly higher amount of detail.
The following image shows the same data again (on the same x-axis) but with a log frequency axis, to show the infrequent readings with a greater detail. Additionally this graph has three vertical lines, which, from left to right, are the 1st quartile, the mean and the the 3rd quartile. This essentially shows that half of the data is contained within the two bins enclosed by the outermost red lines.
As the measurements are temperature sensitive, it also makes sense to show a graph of the temperature for the same 9 hour period. For almost a year now, I have had a raspberry pi collecting temperature measurements on a per minute basis. This uses an Analog Devices' ADT7410, which has an accuracy of +/- 0.5 deg C. The following graph shows a histogram of the temperature over the 9 hours, with the red lines indicating the same as before.
As the 34461A records the minimum, maximum and mean, we do not have to infer this from the histograms, with the values for 80,156 measurements being,
Minimum | 2.99911586 V +/- 154.969 uV |
Mean | 2.99949370 V +/- 547.414 nV |
Maximum | 2.99951127 V +/- 154.983 uV |
with the errors being calculated from the 1 year accuracies in the datasheet. From this, the range of the measurements is 395.41 uV +/- 219.169 uV.
As this is the 3 V MAX6126, we can calculate how far off the measurements are from the ideal reference value.
Minimum | 0.0294713 % +/- 0.0051656 % |
Mean | 0.0168767 % +/- 0.0000182471 % |
Maximum | 0.0162910 % +/- 0.0051661 % |
With the voltage reference having an accuracy specification of 0.02%, we can see that the minimum value measured is worse than what it should be, however this does not mean that the reference is operating outside its specification. On average the reference is within its 0.02% specification with a value of approximately 0.0169%, this can be trusted to a high degree due to the number of readings that have been averaged. Although this value will have some level of computational error in it, as the 34461A uses floating point maths for calculating statistics.
The first thing to consider is whether the accuracy is reduced due to the temperature of the reference. The temperature, measured by the ADT7410, had a minimum of 19.007812 deg C +/- 0.5 deg C and a maximum of 20.101562 deg C +/- 0.5 deg C. As the MAX6126 is specified for 25 deg C, the maximum temperature difference is almost 6 degrees. This affects the accuracy of the reference by 0.00179766 % +/- 0.000150000 %. With all the errors adding together to reduce the figure, the lowest the minimum value could possibly be is 0.0223580 %, which is still outside the specification.
It is also possible that the accuracy has been diminished by another factor. From the 34461A's tend graph, there are spurious negative spikes that were quite unexpected. To get the voltage reference as physically close to the temperature sensor as possible, the reference and multimeter were placed in close proximity to a wifi router, which may have added additional noise to the measurement. Additionally, as the voltage reference was hand soldered, it is possible that the accuracy of the reference might have been decreased due to thermal shock (i.e. too high of a temperature), however, I would have expected this to consistently decrease the accuracy of the sensor, rather than produce the observed spurious spikes.
MAX6126-21
The same was done with the 2.048 V version of the voltage reference.
The histogram, as shown on the multimeter, has a much sharper peak than that of the 3 V version. And the trend plot, yet again, shows the spurious negative spikes, which suggests that it might be a noise issue.
The graphs below show the histogram data, with the second graph having a logarithmic frequency scale.
As with the 3 V reference, the temperature was recorded and is displayed in the histogram below.
The table below show the data gained from the multimeter’s 80,156 readings, with the errors being calculated from the 1 year accuracies.
Minimum | 2.04669303 V +/- 121.634 uV |
Mean | 2.04827951 V +/- 429.824 nV |
Maximum | 2.04831946 V +/- 121.691 uV |
Much like the 3 V version, the voltage reference is within its specifications for the mean and maximum,
Minimum | 0.0638169 % +/- 0.00593917 % |
Mean | 0.0136479 % +/- 0.0000209875 % |
Maximum | 0.0155986 % +/- 0.00594195 % |
but not for the minimum reading. Once again, the error caused by the temperature is small, at 0.00179063 % +/- 0.000150000 %, and does not explain the minimum reading being, at best, 0.0559371 %, when its specification is 0.02 %. This minimum was taken from one of the seemingly random negative spikes that can be seen in the trend chart, and yet again, we can only speculate on its origin. However, it is possible to say that, on average, the voltage reference is within its specification.
ADR5040
The Analog Devices’ ADR5040, unlike the MAX6126, is a shunt voltage reference. The version I used came in a SOT-23 package and has an accuracy of +/- 0.2 %, with a temperature coefficient of 100 ppm/ deg C. Like for the MAX6126, the 34461A was set to auto-trigger and auto-range, with 10 PLC. The multimeter was left for longer to warm up (over 3 hours), however, this should make no difference to the measurements.
The first image shows the histogram on the multimeter,
you can immediately see that the peak is not as sharp. With the multimeter helpfully saying that the peak represents 29.9 % of the data, opposed to the 32.4 % and 60.7 % of the MAX6126. Whilst it is tempting to comment on the accuracies of the references based on this peak, it would be meaningless to do so as different bin widths were used for the different references.
The trend chart is fairly flat, but once again shows the negative spikes, which suggests even more that they are due to interference.
As was done before, the graphs below show the histogram plotted on a computer, with both non-logarithmic and logarithmic frequency.
The temperature was recorded over the same period and is displayed in the histogram below.
Over the 8 hours, 71,241 readings were recorded. The minimum, maximum and mean of these readings is shown in the table below, again with the calculated 1 year errors.
Minimum | 2.04377 V +/- 121.532 uV |
Mean | 2.04801 V +/- 455.897 nV |
Maximum | 2.04810 V +/- 121.684 uV |
The percentage accuracy for these values is shown in the table below.
Minimum | 0.206543 % +/- 0.00593418 % |
Mean | 0.000488281 % +/- 0.0000222606 % |
Maximum | 0.00488281 % +/- 0.00594158 % |
The mean and maximum values are well within the specification of 0.2 %, surprisingly more so than for the more precise MAX6126. The minimum value is also within the specification when the temperature coefficient is considered, as at 100 ppm this equates to 0.0691406 % +/- 0.00500000 %. If we ignore the negative spikes, as they are likely to be due to interference, and take a low value from the histogram of 2.04785 V, we get an accuracy of approximately 0.00732 %. Overall, I think this is likely to be a very lucky case for this voltage reference and definitely not what can be expected in general.
Characterisation of current sink
I thought it would be quite interesting to measure and characterise a current sink, as a simple test of the current measuring capabilities against a reasonably known value. I decided to go with a fairly simple circuit,
using a voltage reference as one of the inputs to an op-amp. With this circuit, the current through the load is dependant on the 10kOhm resistor (R2), that is I_load = V_ref/R2. With the ADR5040 being 2.048 V, this makes the load current 204.8 uA.
Unfortunately, the resistor used for R2 was a standard 5% and so affected the load current. With the resistance being measured, in 4 wire mode, as 9.836040 kOhm +/- 1.08360 mOhm, the load current would ideally be 208.214 uA +/- 416.428 nA. This is, of course, treating the MOSFET as ideal and not considering temperature coefficients of the voltage reference or resistor. Additionally, this circuit was made on a breadboard and so this will also affect the accuracy of the current sink.
The current sink was measured for a little over 5 hours, using 10 PLC and autoranging. The following images show the multimeter’s histogram and trend plot.
The trend plot here does not show the same negative spikes as was seen for the voltage references. This is likely due to this measurement being taken further away from the router, that was suspected of interfering with the readings.
The following graph is the histogram plotted in more detail.
And this is a histogram of the temperature.
Overall, the current sink worked reasonably well,
Minimum | 208.104384 uA +/- 164.052 nA |
Mean | 208.126662 uA +/- 764.475 pA |
Maximum | 208.144134 uA +/- 164.072 nA |
with a range of 39.750 nA, which is around +/- 0.01 % of the mean value.
Conclusion
I have found, from using the 34461A for these measurements, that the histogram feature is incredibly useful, largely because the bin data can be taken off of the multimeter for processing on a computer. The trend chart is quite useful, especially as it is not limited to the reading memory, as it allows you to roughly see what went on and diagnose potential problems (such as the interference with the voltage references). However, the histogram data purely on the multimeter is nice to look at but not particularly functional. This is because you cannot find the heights of the bins, unless you use one of the remote interfaces. To me, this is a pretty big oversight by Agilent and I would love to see them include a moveable cursor, much like the ones on digital oscilloscopes, so that you can use the data the multimeter has collected, on the multimeter.
Top Comments