High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

Improving ADC pulse aquistion time

Solved!
Go to solution

Hi,

 

I am using Labview 8.6 professional version and an NI PXI-5114 ADC in a PXI-1033 chassis to capture some pluses.  The pulse widths are in the order of 100ns to 10us.  The pulses can arrive at the ADC at random times.

 

Thanks to the search function here I found some very helpful suggestions and so using the Labview NI-Scope examples as my foundation I have managed to put together a program that can capture these pulses.  At the moment it is working fine except for one thing.  It will not capture consecutive pulses that are closer than 2ms.  This is too slow for my application, actually the quicker I can be ready to capture the next pulse the better.  If I can get this time down to about 200us I will be happy.  The specs of the 5114 ADC state a re-arm time in the low microsecond range so I know the hardware is capable of doing much better than what I am getting but translating this to the software side of things is giving me some difficulty.

 

As far as I know there are no triggers to start and stop capturing data on an edge, so, in my program I base the data capture on fetching in chunks and use a signal processing subVIs to look for the trailing edge of the pulse in order to know when to stop capturing data.  If the pulse width was fixed then this wouldn't be an issue but since I wont know what it will be, I prefer to capture just the pulse so that I don't miss any other pulses. 

Is this an inefficient way of solving the problem and perhaps what is causing the code to run slow??

 

I would appreciate any help with a solution to getting that "re-arm" time down (or any comments on my code that you feel would improve it).  I have been using Labview for a few years (only learning as I go) but this is my first go at using NI-Scope and a high speed digitizer.

 

Any suggestions are most welcome!

 

Thanks,

 

Daniel

Message Edited by terrior on 08-05-2009 05:36 PM
Message 1 of 6
(7,748 Views)

Sorry, I believe I was missing a subVI in the previous attachment and i don't seem to be able to edit that post again.

Message 2 of 6
(7,734 Views)

Hello Daniel,

 

There is a property node to turn off TDC (time-to-digital converter). When turned off, it allows for a faster rearm time.  If you place an niScope property node down and then select Horizontal>>Advanced>>Enable TDC you can create a constant and set it to False.  Try this out and let me know how it works for you.

 

Regards,

Message 3 of 6
(7,670 Views)
Solution
Accepted by topic author terrior

Most importantly, if you want fast, deterministic rearm, you should use multirecord acquisition.  This configures the device to automatically and very quickly (depending on the configuration and the device, 1us to 10us), rearm itself.  Since you apparently aren't sure how long the pulse might be at any point in time, you should configure the record length for a small reference position (say 10% for 10% pre, 90% post trigger) and enough samples to cover your expected worst case (10us + 10% pretrigger + some engineering margin for a pulse that is wider than expected).

 

You can enable multirecord acquisition by simply wiring in a number to the "number of records" terminal on the Configure Horizontal VI.  This will configure the digitizer to divide up its onboard memory into N circular buffers to store the individual triggered records.  This is the only mode you can expect to get fast rearm time on since the host, fetch time, and processing time are not the bottleneck.

 

Once you do this, you'll have to make some small changes to the rest of your existing VI to control which record(s) you are fetching.  I would suggest looking at the NI-Scope Multirecord examples.  If throughput is a concern, you will probably want to fetch more than one record at a time.

 

 

Message 4 of 6
(7,667 Views)

Hi Brandon,

 

Thank you for your input, I tried your suggestion however it did not really improve the rearm time significantly in my vi.  Thanks for making me aware of this property node though.

 

0 Kudos
Message 5 of 6
(7,651 Views)

dklipec, 

 

Many thanks for your tip, multirecord acquisition proved to solve the problem for me and so simply I thought there was something simple like this I was not doing.  Testing it using the example program "niScope EX Multi Record Fetch More Than Available Memory.vi" I am able to capture all pulses with a rearm time around 15us.  This is much more in the ballpark number I was looking for.

 

Cheers,

Daniel

0 Kudos
Message 6 of 6
(7,650 Views)