I am using the ni 4141 so source arbitrary currrent and voltage sequences and get measurements at the maximum possible rate (hopefully 600kS/s). When I run my program, I get an error saying
niDCPower Initiate.vi<ERR>The sequence specified is too long. Refer to the device documentation to determine the largest supported sequence.
Status Code: -225108
I've found it will take any sequence up to 385 elements. Also, I have NIDC-power 1.7.5, so the old 510 element limit should not be a factor. Anybody know what's going on here?
I've attached my VI, the part in question is in the case structure, case "arb sequence"
In NI-DCPower 1.7.5, we increased the maximum number of elements that can be programmed in a sequence by a good amount on the PXIe-4141, but it is still limited by the size of the buffer in the FPGA. The 1000 elements you are attempting still will probably not fit, unfortunately. How large a sequence are you trying to do all at once? As a workaround, you can program part of the sequence, perform it, abort, program the rest, and perform the rest of the sequence. That said, since you appear to be attempting to generate a sine wave, that will definitely cause a pause in the generated waveform.
In general we don't recommend attempting to source a waveform at that speed on an SMU, because the rate at which the output changes is dependent on the load. Since you are going at the maximum rate, that gives the output from the 4141 time to update, but not for the control loop to compensate. Therefore, the resultant output is likely to be non-ideal. You can measure just fine at that rate, but I would not recommend trying to source beyond maybe 100 kS/s. To source at that speed, you will likely want to use a function generator. As an additional benefit, you can measure indefinitely on the PXIe-4141, so you would get a better waveform output and not be limited by the sequence size.
Let us know if we can be of further assistance.
Okay thanks for the information, Tobias. I will have to spend some more time figuring out how to best program this application.
Hello Tobias (or anyone else)
Basically, we would like to source an arbitrary signal from the SMU at the highest possible speed through the DUT. We would like to measure current and applied voltage as this happens - making use of the full 600 kS/s rate is important to us.
We also have a DAQ 6368 - this can output the arbitrary signals no problem, even at 2 MS/s. The problem is getting an accurate current read while this happens - the DAQ has no current reading ability unless linked to a current-voltage converter. Also, my feeling is that the SMU will be a more accurate and reliable source - especially with the option of 4pt probe measurements.
We have an application running in CVI (which my colleague wrote) where the SMU sources a sequence of square waves where the pulses are of varying width. We've noticed that the switch from the high value (say 1V) to low (say 500mV) is not continuous, there is some point at which the SMU stops recording to reconfigure the output voltage.
But I think there must be some way of sourcing and measuring some arbitrary signal at high speed, with continuous readouts.
Thanks if anyone can point me in the right direction, though I am looking over the labview examples such as hardware timed sequence etc.
What do you mean that that the measurements are not continuous? When looking over the data with timestamps are there sections missing? Or do you receive an error while running your code? Or do you sometimes get erroneous data?
There is actually a way to decouple the measure engine from the source engine so that you are continuously measuring even when transitioning from one source point to the next*. In order to do this, you can change the 'Measure When' attribute from 'Automatically after Source Complete' to "On Measure Trigger' and then set the 'Measure Record Length'/ 'Measure Record Length is Finite' appropriately. You will also have to send a measure trigger to commence the measurements but you can use a software trigger if you aren't sending any triggers over the PXI backplane.
*I believe, the current measurements will have a short discontinuity (NaN returned) during range changing because the device is switching in and out the shunts, but if not doing this, you should have continuous measurements.
Let us know if this is helpful.
I am trying to understand what you wrote, so lets consider a hypothetical scenario: I am using a measure record length of 1000 samples at an overall sampling rate of 1kHz. My source sequence is 200mV for half a second, then 300mV for half a second. Your are saying that if I have configured my triggering and 'Measure When' appropriately, I can advance the source sequence at 0.5s, and maintain my 1 sample per ms rate, even though a couple may return 'NaN'.
Your description is correct. By default, sourcing and measuring are coupled together when running in sequence mode. The ouput updates to the next setpoint, then the source delay executes, then finally the measurement is taken for the aperture time you programmed. By changing the "Measure When" property from the default value of "On Source Complete" to "On Measure Trigger" you decouple the measurement process from the sourcing process. This allows you to take a measurement whenever a trigger arrives rather than always waiting for the next setpoint to settle.
You will likely only see a discontinuity in your measurement if you are also changing ranges when you advance your output sequence setpoint.
Let me know if you have any further questions.
I have tried it on the PXIe-4132 to generate a sequence of up to 3000 points. However, now with the PXIe4143, I can no longer do this. I'm seeing this error:
The sequence specified is too long.
Status Code: -225108
Other than the one's already mentioned, is there any way that I can increase the no of sequence to 3000 or higher on the PXIe-4143. I really thought that since the PXIe-4143 is from the same family as the 4132, it would have been able to cater 3000 sequences. I need a continuous ramp up or ramp down with no pause in between. And I need all 4 channels to generate these sequences. (each channel can also be of variable amount of sequence).