High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

Is it possible to acquire two 20kB waveforms at 10Hz from a 5132 USB digitizer?

Hi,

I want to digitize and stream 20 kB at 10 Hz on each channel of the NI USB 5132. Does the re-arm time on this model allow for that?

Thanks,

Ana

(newbie alert)

0 Kudos
Message 1 of 4
(6,021 Views)

Hello,

 

The frequency range of the 5132 is 0-50 MHz so 10 Hz should be fine. Depending on which model you have, each channel has either 4 MB/ch or 32MB/ch. This should easily allow for capturing 20kB of data on the onboard memory (you do not need to "stream" to the hard disk per say).

 

Overall, it sounds like a perfectly reasonable application.

 

Regards,
Aaron

National Instruments
0 Kudos
Message 2 of 4
(6,009 Views)

Hi Aaron,

 

Thanks for the fast reply.  I have been thinking more about multi-record acquisition (and the lack of it in the NI USB 5132) and now have some more (rephrased) questions.

 

First, can the 5132 USB digitizer hold several triggers worth of data or is all the data in its memory deleted each time there is a new trigger?

 

Also (and sorry, this wasn't very clear in my first post), by "10 Hz" I meant that there have 10 pulses coming in per second, so we would have to re-arm the trigger every 100msec.  If we do have to grab the data after every trigger, will we be able to keep up with our 20 kB data packets or will the re-arm time kill us?

 

Thanks again for any insights on this,

 

Ana

0 Kudos
Message 3 of 4
(6,004 Views)

Ana,

 

Put simply, how quickly you can send a trigger is dependent on how efficient the code is, the speed of the CPU, USB Bus speed, etc.

 

Since the USB-5132 doesn't support multi-record acquisition (and by record I mean 1 record = 1 waveform), you must use single-record acquisition and resubmit the session with the niScope Initiate Acquisition VI each time.  This means the records will be software timed which depends on processor speed, which is why there will be no determinism.

 

There are basically three parts to determine how quickly you can send each trigger:  The acquisition of the data, fetching the data using niScope Fetch (data) with the CPU, and re-sending the niScope Initiate Acquisition VI command from the computer.  While the first one is easy to measure (Samples / Samples per second = seconds), the other two are dependent on the scheduler of the operating system and the speed of the computer.  For instance, you would get the data from the USB device using the niScope Fetch (data) function and re-committing using the niScope Initiate Acquisition VI command in software, which would each have a non-deterministic amount of time to complete.  The page I linked above has some benchmarking that you may be able to use as a guide.  To give you a rough idea though, the niScope Fetch (data) function should be somewhere on the order of tens of milliseconds depending on the size of the waveform, while the niScope Initiate Acquisition VI command should be about 1 to 2 milliseconds.

 

There is a way to benchmark this process on your machine by using a VI similar to the one seen in Benchmark Loop Iteration Time with Tick Count Timer.

 

My educated guess is that you should be able to accomplish the application that you describe.

 

Let me know if you have additional questions.

 

Regards,

Aaron

National Instruments
0 Kudos
Message 4 of 4
(5,993 Views)