High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

5152 vertical scale set up time

Solved!
Go to solution

I'm using a pxi-5152 in a pxi-1033 chassis.

 

I want to play a trick and change the vertical scale between my measurements to increase dynamic range of a signal I'm digitizing.  I made a loop and changed the vertical scale property node after each measurement.  It works, but when I timed the loop, it appears to take 80 ms.  I need to do this in less than 10 ms. 

 

Is this even possible?  Am I seeing the actual time it takes for the scale to change or is there a trick to speed this up?

 

I also have access to a PXI real-time with the same card.  Could that speed things up or is the digitized the limiting factor on the scale change?

 

Thanks for any help

 

--Rich

 

 

0 Kudos
Message 1 of 5
(5,775 Views)

Hi lidarman,

 

I looked through the property node for the niScope Functions, and could not find a Vertical Scale property. Are you by any chance referring to the Vertical Range property? The execution times of your While loop is dependent on what is inside the loop and on processor speeds/resources. 

 

Generally with NI Scope programming (and DAQ programming) you would setup all your acquisition (or generation for DAQ) configuration outside of the loop and you would also close the session outside of the loop, only putting in code to acquire within the loop. This way, you are not initiating a session and closing a session every iteration whichs increases the execution speed. In general, you may already be setting up your code correctly however, I would try putting this property node outside of the loop. If you are changing the vertical range property, there is an niScope Configure Vertical.vi.

 

Of course I may be totally wrong in what you are trying to do. What kind of signal are you trying to read with your digitizer? There seems to be a [-5 V , 5 V] range with a 5152, and I wouldn't expect your digitizer to be able to acquire signals outside of that range

 

Edit: I accidentally hit "Me Too" on the OP's post, please ignore! 🙂

 

Jason L.

 


Product Support Engineer
National Instruments
0 Kudos
Message 2 of 5
(5,760 Views)

Yep, I'm changing the vertical range.  (the numbers allowed are 0.1, 0.2, 0.4, 1, 2, 4, 10).  I'm using a property node of the configure vertical vi in NIscope.

 

Here is what I'm trying to do:

 

I have a lidar return signal, which is basically a decaying exponential lasting about a microsecond with a peak just under 4 volts.  I'm digitizing 100 pulses per second.  I take a 1000 samples on each pulse at a rate of 1Gs/s.  In order to increase how much of the curve I can sample with 8 bits, I am changing the vertical range from 4 volts to 2 volts for the next pulse, (the signal will saturate the input for a short period), then from 2 to 1 volts and so on.   This allows me to sample down the tail of the signal on consecutive pulses. It works but not any faster than the loop can run which would be fine if I only wanted to run at 10 pulses/s.

 

I do as you said, and set up all the parameters outside the loop.  If I don't try to change the input vertical range in the loop, it runs plenty fast.  But that said, I would like to be able to change the range between pulses, which requires the loop to run at less than 10 ms.  Changing the vertical range parameter clearly slows down the loop period to 80 ms.

 

I read the documentation and it does say specifically if I change the coupling, there is a settling time.  I'm trying to determine if this also applies to the inpul vertical range.

 

I can understand if this is a fundamental issue since normally people aren't changing the input vertical range on the fly, but if there is a way around it, it will avoid the need for me to put a variable gain amplifer on the front end or buy a digitizer with more bits.

 

Thanks,

 

-Rich

 

 

 

 

 

 

 

 

 

0 Kudos
Message 3 of 5
(5,756 Views)
Solution
Accepted by topic author lidarman

Hi Rich,

 

Am I seeing the actual time it takes for the scale to change or is there a trick to speed this up?

You are probably seeing the effect of both.  There may be some software thing you can do to improve it, but there will always be a hardware limitation when doing this kind of operation.  Switching vertical ranges means switching from one kind of attenuation path to another.  This means there are settling times involved (electronic and mechanical, with mechanical obviously dominating).  The main element in the settling time will likely be the relays that are switched.  There must be a minimum delay after switching a relay to ensure that the data read back by the digitizer is correct/valid.

 

Since you know your signal is heading in one direction (decreasing) then you may be able to somewhat improve by calling the property node to write the new range, then committing & initiating in a loop which contains minimal processing (perhaps using LabVIEW queues to transfer data into another processing loop).  If you require processing in the loop, you should do the processing after niScope Commit but before niScope Initiate.  This will allow the digitizer to begin settling in the new configuration, and you will have to wait less time when you are ready to call Initiate.

 

I also have access to a PXI real-time with the same card.  Could that speed things up or is the digitized the limiting factor on the scale change?

 

Processing in real-time ensures determinism, it does not necessarily speed up the application.  While determinism and setting a specific priority for software calculations may help speed up the software you run, the low-level driver interface across the PCI/PXI bus with the instrument probably won't change drastically.  You could certainly try it out, though, and let us know what you measure.

 

I can understand if this is a fundamental issue since normally people aren't changing the input vertical range on the fly, but if there is a way around it, it will avoid the need for me to put a variable gain amplifer on the front end or buy a digitizer with more bits.

 

This isn't an ideal suggestion, but just a thought: if you have multiple digitizers at your disposal, you could try setting each to a fixed vertical range, and splitting the signal among them.  You can TClk synchronize these devices together to ensure that your data points are sampled at the same time, and then introduce delays from the initial trigger on each digitizer so that they capture the waveform in a cascaded fashion.  For instance,

Digitizer #1, set at the largest vertical range, would have no delay from the time the trigger is received.

Digitizer #2, set at a smaller vertical range, has a fixed (10ms?) delay

Digitizer #3, set to the smallest range, has a fixed (20ms?) delay.

 

Otherwise, if you have support service with NI, you could try calling an Applications Engineer to discuss other possible options.

 

-Andrew

National Instruments
Message 4 of 5
(5,749 Views)

Thanks Andrew .

 

That is kinda what I figured.  And we have bounced around the option of using mutiple channels as a solution.

 

 

0 Kudos
Message 5 of 5
(5,733 Views)