Source and Measurement Timing for the PXI-4130 SMU


Measurement speed is quite important in automated testing systems. The ability to quickly output and measure voltages and currents sent to devices under test can increase throughput by reducing bottlenecks in the test process. This paper introduces the use of software timing with the NI PXI-4130 for sourcing, measuring, and using the two in conjunction.


Source Timing

This section explains timing considerations for programming the output of the PXI-4130. It explains how fast updates can occur and how the Configure VIs in NI-DCPower work.

There are four VIs that can be used to program the voltage or current. These are the Configure Voltage Level VI, the Configure Current Limit VI, the Configure Current Level VI and the Configure Voltage Limit VI. The first two VIs are only applicable when the DC Voltage output function is selected, and the last two VIs are only applicable when the DC Current output function is selected. The output function is set using the Configure Output Function VI. Refer to the NI-DCPower help file for more information on how to program the output.

The Configure VIs can be called back-to-back in a loop to reach the fastest possible update rate. The hardware can accept a new update command every 333 µs allowing for a maximum continuous update rate of 3 kHz. For example, if you want to do a voltage sweep you can call the Configure Voltage Level VI repeatedly in a loop. The fastest rate that the loop can run at is 3 kHz, even if the software can run faster than that, because each new update command has to be at least 333 µs apart from the previous one. The following figure shows how to code such a loop in LabVIEW.

Figure 1: Calling the Configure Voltage Level VI at maximum rate.

The following table shows processing times for the different possible configuration changes on the PXI-4130 channel 1.

The first column shows the maximum amount of time required for a particular change to start affecting the output. This time is measured from when the Configure VI finishes reconfiguring the hardware and extends beyond the point at which execution is returned to the user program.

The second column shows the maximum continuous update rate. These rates are for updates in a continuously running loop. See Software Speed section for more information on this maximum rate.

Configuration Change

Maximum Time (µs)

Maximum Continuous Rate (Hz)

Change Voltage Level (with same polarity)



Change Voltage Level (with different polarity)



Change Current Limit



Change Current Level (with same polarity)



Change Current Level (with different polarity)



Change Voltage Limit



Change Voltage Level Range



Change Current Limit Range



Change Current Level Range



Change Voltage Limit Range



Although you can continuously update the output at a rate of 3 kHz that does not mean that the output will settle within the 333 µs period. It might take much longer than that depending on your load conditions. See the NI PXI-4130 specifications and Load Consideration for Programmable DC Power Supplies and Precision DC Sources for more information on determining the output settling time.

Changing the current limit range or the current level range takes longer than other operations. Note that the output range can change implicitly when you change the output value if the corresponding Autorange property for that output value is set to true. For example, the current limit range can be changed implicitly when you change the current limit if the niDCPower Current Limit Autorange property is set to true.

Changing the voltage level or current level takes longer than normal if the polarity (sign) of the level is changed. For example, changing the voltage level from -5 to 10 V takes longer than changing it from 5 to 10 V.

Measure Timing

NI-DCPower provides two VIs that can be used for taking measurements. The first VI is niDCPower Measure. This VI can be used to get a single voltage or current measurement for only one channel. The second VI is niDCPower Measure Multiple. This VI can be used to get measurements for voltage and current from one or more channels all at the same time.

Measure Multiple offers better performance than niDCPower Measure if both a voltage and current measurement are needed or if measuring multiple channels. However, if you only need a single measurement Measure offers better performance.

The PXI-4130 constantly measures the voltage and current on all channels every 333 µs for a sampling rate of 3 kS/s.  The Samples to Average property and the Reset Average Before Measurement property can be used for controlling how these measurements are used and reported back by Measure and Measure Multiple.

Measurement Averaging

The PXI-4130 can average measurement samples to reduce noise and improve sensitivity. The instrument averages a fixed number of samples acquired at a rate of 3 kS/s. You can set the number of samples to average programmatically using the niDCPower Samples to Average property. When one of the measurement VIs is called an averaged measurement will be returned.

The PXI-4130 uses a simple averaging scheme. It is not a moving average. Whenever the instrument collects the fixed number of samples, it produces the average and discards the samples. It then starts acquiring the next set of samples for the next averaged measurement.

Reset Average Before Measurement Property

You can use the Reset Average Before Measurement property to control when the samples that are averaged get acquired.

If the property is set to false, the instrument constantly acquires measurements and averages them. When you call niDCPower Measure or niDCPower Measure Multiple, the last averaged measurement is returned. This means that the samples used to get this average have been acquired before you even called that VI. Use this setting to get the best possible performance since it allows the instrument to acquire samples while your application is busy doing something else.

If the property is set to true, NI-DCPower discards previous samples and previous average, and starts acquiring a new set of samples to average them.

Therefore, to ensure that the measurement returned by niDCPower Measure or niDCPower Measure Multiple is composed of samples taken after you call the VI, set the Reset Average Before Measurement property to true. This is the default setting.

Software Measurement Rate

The software measurement rate is the fastest rate at which an application using NI-DCPower can acquire measurements. This rate is determined by two factors. The first factor is the fixed sampling rate of the PXI-4130, which is 3 kS/s. The second factor is the number of samples to average as set by the niDCPower Samples to Average property. This is the maximum rate at which the following LV loop runs.

Figure 2: Calling the Measure Multiple VI at maximum rate.

The default value of the niDCPower Samples to Average property and the NIDCPOWER_ATTR_SAMPLES_TO_AVERAGE attribute is 10. As expressed in the following equation, the fastest possible software measurement rate is 300 measurements per second using the default value.

If no measurement averaging is used (Samples to Average = 1), the fastest possible software measurement rate is 3,000 measurements per second.

While measuring without averaging yields the fastest measurement rate, noise from the environment (for example, the 50 Hz or 60 Hz noise introduced by cabling) increases measurement uncertainty. Adjust the niDCPower Samples to Average property or the NIDCPOWER_ATTR_SAMPLES_TO_AVERAGE attribute as necessary to optimize the noise performance and measurement rate for your application.

For more information on rejecting noise, please refer to the NI DC Power Supplies and SMUs help file.

Software Speed

The first two sections described the maximum update rate and the maximum measurement rate. These were discussed only in terms of the hardware maximum. To reach the maximum rate, however, the application software must be running fast enough to keep up with the hardware.

The following table shows typical execution speed of the time-critical VIs in NI-DCPower. These numbers show that on most modern PCs, the software can keep up with the maximum rate of the PXI-4130. Therefore, as long as the processor core running the NI-DCPower application is fast enough and is not busy with other tasks the application should be able to run the maximum PXI-4130 rate of 3 kHz.


Execution Time (µs)

Configure Voltage Level VI


Configure Current Limit VI


Configure Current Level VI


Configure Voltage Limit VI


Measure VI


MeasureMultiple VI (single channel)


* These numbers are benchmarks for a 1.86 GHz Intel® Core™2 Duo Processor machine. To be able to reach the 3 kHz maximum loop rates mentioned in the previous two sections, NI recommends a multicore processor.

Source-Measure Timing

The previous two sections talked about source timing and measurement timing separately. However, the NI PXI-4130 is most useful in source-measure operations.

In a typical source measure loop, you want to source a voltage or current, wait some time for the output to settle, and then take a measurement. Since you are relying on software timing, the minimum timer resolution is typically in the 1 ms range. The following figure shows how to code such a source-delay-measure loop.

Figure 3: How to implement a source-delay-measure loop.

The loop rate will largely depend on the settling time you configure the loop with.

Reaching the Highest Possible Source-Measure Loop Rate

To reach the highest possible source-measure loop rate, you cannot use software timers in your application. Your loop must contain only the update (Configure VI) and then the measurement (Measure VI). Using this approach you can get a loop rate of 3 kHz if the Samples to Average property is set to 1.

However, because the Configure VI will return before the PXI-4130 output gets updated, the measurement will not correspond to the requested value from the same loop iteration. It will be a valid measurement but it corresponds to the update that occurred two to four loop iterations behind. Therefore you should take at least another two to four measurements after the loop exits and append those measurements to the measurements that you get from the loop.  Also, it is recommended to use the Measure Multiple VI, which returns simultaneous voltage and current measurements (up to 250 µs apart) and use these voltage and current measurements for any processing of the data you do after the loop instead of relying on the inputs to the Configure VI.

Set the Reset Average Before Measurement property to false to get better performance.

This loop rate will decrease as you increase the number of Samples to Average.

The following figure shows to code such a loop in LabVIEW.

Figure 4: How to implement the fastest source-measure loop rate.


Any sequences or sweeps using the PXI-4130 have to be performed in software and have to be timed by software. The PXI-4130 can acquire a fresh voltage and current measurement 333 µs. It can also issue an update every 333 µs. Therefore, the fastest source-measure loop rate that can be reached is 3 kHz. This is possible to reach as long as you have a reasonably fast machine with minimal workload.

Was this information helpful?