High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

Urgent problem! please help. high speed digitizer, channel switch time too long!

Solved!
Go to solution

Dear all NI high speed digitizer experts:

 

 I post a question concerning the two-channel configuration using NI5154 digitizer (see Need help to configure a two-channel acquisition using NI5154 ).

 

 As we need to do some measurement using NI5154 very soon so purchase a DAQ board as suggested by Efrain is not a option for our coming experiment. So I try to configure the NI5154 a two channel acquisition. I configure the NI5154 to count pulse in two channels. Our experimental setup will send pulse to channel 0 for 400 ms and then stop. 100 ms later pulses from other source will be send to channel 1 for 2 s.  I thought the 100ms dead time in our setup would be long enough for the digitizer to switch from channel 0 to channel 1. But after some test I found the digitizer takes more time to switch between channels. 

 

I made a test vi (NISCOPE-Timing.vi) just for count how many ms it takes for the digitizer to switch between channels. In the attached vi, if you run for only one channel one loop takes about 20 ms in my pc. If you run for two channels it takes about 130 ms for one loop. If you just run one channel twice the loop time is about 40 ms (I mean stop a channel and then restart the that channel).

 

I don't understand why it takes so long to switch from channel 0 to channel 1.  As I tested the niScope Commit.vi consumes a lot of time for the second channel. Is there any way to avoid this? We can not extend the 100ms long dead time of out set up so I must get rid of this problem. 

 

 

  

 

0 Kudos
Message 1 of 14
(8,419 Views)

Here is a simplified version of my working data acquision program. All data manipulation parts are removed but the structure of data acquisition part keep the same.

 

My main concern is the time needed to switch from channel 0 to channel 1.

 

 

0 Kudos
Message 2 of 14
(8,413 Views)

Maybe a crude idea, however....

How about reading records of both channels and generate on external trigger  that is a mixure of both? Involves building two high speed buffers ..

 

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


0 Kudos
Message 3 of 14
(8,400 Views)

Thank you, Henrik.

To generate a external trigger from channel 1 pulses we have to use a discriminator. But one of the reason we choose high speed digitizer is we are try to avoid using discriminators.  Anyway, this is one option, If no other choose I have to consider it. 

 

Message Edited by LCHEN5154 on 05-27-2010 08:55 AM
0 Kudos
Message 4 of 14
(8,389 Views)

I did some more test and I figure out that actually it is the niScope Initiate Acquisition.vi take too much time when you call it in a loop.  This vi takes only about 2 ms when you first call it but it takes more than 20ms when you call it again and what even worse is if you initiate a different channel than first call it takes about 120 ms!

 

So the question is how we make niScope Initiate Acquisition.vi runs as faster as it's first call.

 

   

0 Kudos
Message 5 of 14
(8,380 Views)

Hi Lixin,

 

There are a couple of different options that you may try. The first, which it sounds like you may not prefer, is to use the TRIG line on the 5154 and somehow find a way to route both sets of pulses to that line. You can either somehow connect both lines to the one input or use some sort of external switch since the signals will not come in at the same time.

 

Unfortunately, what you re seeing in terms of the time it takes the board to reconfigure itself for a different trigger channel and re-inititiate is due to the settling time that is necessary for the board to be able to fully reach its specifications. The majority of settling usually occurs pretty quickly, but the board will wait for some time to get the best possible performance in terms of specs. If you are okay with reducing this settling time (and very slightly diminish the specified performance), then you can use an internal scope property to set the max settling time.

 

I have attached a .rc file which must be placed in the LabVIEW directory for niScope to enable use of this property node. Please place the file in your ...\Program Files\National Instruments\<LabVIEW 2009>\instr.lib\niScope directory. Once the file is in that directory, restart LabVIEW, and you should be able to see a new category in the niScope Property Node tree titled "Internal". Under that category, you will have the Max Settling Time property, which gives the driver a maximum amount of time (in seconds) to wait for settling before beginning a new acquisition. Add this new property to your first property node at the beginning of your program. I tested this out with a value of 50 ms and found that my initiate went from ~125 ms to ~53 ms or so after reconfiguring the trigger channel and re-initiating.

 

max_settling_prop_node.PNG

 

Hope this helps!

Daniel S.
National Instruments
Message 6 of 14
(8,367 Views)

This is great. Thanks. Daniel.

If I need best performance for channel 1 but not for channel 0, I assume that I can set a longer time for channel 1 and shorter time for channel 0, right?

 

Concerning another option, namely using a second DAQ board for counting purpose, I am looking for some information at ni.com and I am trying to find a product which can be used for counting task. The NI-6601 looks a option. Could you give me recommendation on this? 2 input channels would be enough and pulses to be counted are standard TTL or NIM signals. Maximum count rate will be below 1M/s. We need timing information for each pulse but not with high precision.

 

thanks again.

 

Lixin 

0 Kudos
Message 7 of 14
(8,363 Views)

Hello Daniel, Efrain or other NI experts:

 

I tried Daniel's method and it works well! But get a DAQ board is still a option because it will ensure the performance of our measurement.  As I read from ni.com NI PCI-6601 and NI-PCIe-6320 both should work for counting purpose, So which one is better? Or any other better choice? We need to detect each digital pulse and save the timing information.

 

I hope it is easy for labview to synchronize both devices.

 

Lixin

Message Edited by LCHEN5154 on 05-27-2010 04:41 PM
Message Edited by LCHEN5154 on 05-27-2010 04:44 PM
0 Kudos
Message 8 of 14
(8,356 Views)
If you budget will allow it , I would think about a PXI System. It will give you the best performance to sync and connect different cards.
Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


0 Kudos
Message 9 of 14
(8,340 Views)

Hi Lixin,

 

I am not sure if i know all of the details of your pulses, but I will assume you only need to count on the one channel (the pulse going to channel 1 on the digitizer is just a trigger to perform an acquisition). You also need to timestamp these pulses, but I am not clear on if and how these need to be related to the acquisition on the digitizer. 

 

One mthod of timstamping events on a counter card is to do a buffered counter measurement. The counter will basically count its timebase signal and every time it receives a pulse, it returns the current count of its timebase. By looking at what the count is each time this occurs, you can determine the amount of time between pulses (in addition, you will know how many pulses have occurred by keeping track of how many times the current count gets returned). Therefore, the faster the timebase that you count, the better resolution you will have for the timestamp. The only downside of using a DAQ counter board like this is that you will not get the same timestamp resolution of a digitizer, especially when TDC is enabled on the digitizer.

 

Having said that, I would definitely recommend the newer X Series board (PCIe-6320). The technology that this board is built on is much newer and better, and I believe it will have more features that you may be able to use at some point (as opposed to the counter card which only has counters). Additionally, if you were to just get a stand-alone counter card, I would probably recommend the 6602 since it has more than 1 DMA channel and has a faster timebase (80 MHz). The X Series will still give you the fastest timebase at 100 MHz, and it can detect pulses as fast as 10 ns.

 

When you mention synchronization, can you give more details on how you need the digitizer and DAQ card synchronized? It seems to me that the counting of the pulses is happening separately from the acquisition on the digitizer, so I am slightly confused what will be necessary from this standpoint.

 

Thanks,
Daniel S.
National Instruments
0 Kudos
Message 10 of 14
(8,324 Views)