Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

what is the max MultiRecord sampling speed of a PXI-6552 device?

Hi All, I'm have a great deal of difficulty using my PXI-6552 card. I'm trying to do a point triggered acquisition of 16 lines of data at a 2MHz rate. The 6552 starts missing triggers around 300KHz but the spec on the card claims that it'll do multi-channel measurements up to 60 something MHz. It seems to read plenty fast if I do a multi-sample acquisition but then I can't point trigger. By point trigger I mean that I only want it to take a sample when I give it a trigger. Also along these same notes, I get a buffer overflow when I do multi-record acquisitions over 94,786 records but can do well over a million samples on multi-sample acquisition. What am I doing wrong? Do I just have the wrong card for my application and does NI even make a card that will do what I want?

 

Thanks,

 

Charles 

0 Kudos
Message 1 of 8
(4,050 Views)

Hi Charles,

 

Couple of quick questions - are you sampling using the onboard clock or using Strobe?  Are you trying to clock data in to the 6552 with your trigger?  The 6552 requires a free-running clock.

 

You might try setting up your acquisition trigger as a pause trigger such that when your trigger asserts, the acquisition engine unpauses.  Do you know how many samples you'll be acquiring ahead of time?

 

Can you provide a timing diagram of your system?  That might help us figure out how to best set up the 6552 to sample your data correctly.

 

Thanks,

 

Keith Shapiro

National Instruments R&D

 

0 Kudos
Message 2 of 8
(4,035 Views)

I'm currently running internal clock. I tried using the Clk In SMB on the front panel but that just plain failed, the 6552 was stuck waiting for samples. Yes I know how many samples I want ahead of time. It is a input parameter to my software. As far as timing goes, I don't have a timing diagram but can give you more information about what I'm doing and perhaps you can suggest a better way of setting up this card. I am testing a ADC, I am getting periodic samples out of the ADC around 0.5µs that must be read with the 6552. A few nano seconds after the data is available, I am given a "trigger" pulse that at slower speeds allows me to use as an "Advance" trigger to go to the next record, however, when my ADC sample time is faster than 3µs I miss some of the triggers. Other information that might be useful, I am reading channels 0-15, I can access any line coming out of this VHDCI connector with my ADC so if there is a different way to trigger, I can most likely do that.

 

Thank you for the assistance.

 

Charles

Charles Chickering
Architecture is art with rules.

...and the rules are more like guidelines
0 Kudos
Message 3 of 8
(4,029 Views)

Hi Charles,

 

The Advance trigger has a rearm time of 143 samples (max), which is 1.43us at the fastest sample rate on the 6552, so that explains why you're missing samples that are arriving appx. 0.5us apart.

 

You could try to use your trigger as an inverted pause trigger (so that the design is in pause unless your trigger is true), but my concern is that since your trigger is asynchronous to the 6552 that it would be possible to miss samples or to get duplicate samples depending on the timing relationship between the 6552's sample clock and the incoming trigger.

 

Does your ADC's output have any fixed clock relationship or is it completely asynchronous?

 

If you can provide some sort of clock to the 6552 that has a defined relationship to your trigger, that would solve your problem.

 

Alternatively, the PCIe/PXIe-6535/6/7 cards have a sample clock mode that does not require a free-running clock and could use your trigger line as a data strobe directly.  The 6535/6/7 run at 10MHz/25MHz/50MHz respectively.

 

 

Keith Shapiro

National Instruments R&D

0 Kudos
Message 4 of 8
(4,014 Views)

Keith, thanks for the info on the 6552. Is that data in a spec sheet anywhere? I searched for it and couldn't find it. Also do you have any idea as to why I get buffer overflow errors when I try to do more than 94,768 records but not when I do 1M samples? As far as clocks go, the trigger output is very repeatable and could be used as a clock but it is not anywhere close to a 50% duty cycle. Is that a problem for the 6552? Can you send example code for running the 6552 in acquisition mode with an external clock? I tried doing this yesterday but the card was unable to read any samples. It timed out with the error timeout occurred before samples were completed and I double checked that the timeout was much longer than the time required to retrieve data.

 

Thanks,

 

Charles 

Charles Chickering
Architecture is art with rules.

...and the rules are more like guidelines
0 Kudos
Message 5 of 8
(4,003 Views)

Hi Charles -

 

The trigger rearm times are located in the specifications document (the latest version is here:  http://www.ni.com/pdf/manuals/373309d.pdf).  See page 20 for the appropriate document.

 

Regarding multi-record acquisition - each record has a minimum size in waveform memory that is several samples long (I don't know what it is off the top of my head, but I know that for generation, waveforms are allocated in 32S blocks).   It is possible to read records back during the course of the acquisition to prevent your waveform from filling up, but I don't believe that multi-record acquisition is the best way to solve your problem.

 

Page 14 of the specifications lists CLKIN as requring a 25% minimum duty cycle for square wave-based clocks under 50MHz, so again, I don't think that hooking your trigger up to the front panel is the right way.

 

In your case, I think you could use some oversampling and software processing to obtain the right data.  Here's how:

 

Set your sample period to be just smaller than your pulse width on your trigger.  So if your trigger is 20 ns wide, you set your onboard clock frequency to something less than that.  On the 6552, the next step on the clock divider is 15 ns (66.6MHz).

 

Hook your trigger line up as a data line (Ch 16).

Set up your start trigger as pattern match, and match on Ch 16 = 1.

 

Read in a sufficient number of samples for your entire acquisition time.  In this case, you'd be limited to approximately memorysize/66M.

 

You can then write a loop to travel through the acquired data and if the value of D16 is '1' and the previous value of D16 is '0', then read the data value into a new array.  This would throw out any duplicate samples and only keep the data when the trigger was '1'.

 

 Does that make sense?

 

Keith Shapiro

National Instruments R&D

 

 

0 Kudos
Message 6 of 8
(3,996 Views)

This will significantly reduce the number of samples that I can acquire will it not? I am currently limited to ~90k but would like to push it up to several mega samples. Our device has 8M of onboard memory so that is what I was shooting for to be the max. If I'm running the clock faster than the data, then I'll be taking a minimum of twice the amount of data that is needed. Is there a way around this? Also, I did try running the 6552 with an external clock but the device wouldn't trigger. My DUT is a 3.3V part, I set the voltage level on the 6552 to be 3.3V logic family. Does the Clk In SMB port only respond to 5V? I'll try to post my code in the morning so you can see if I have an error in my setup.

 

Thanks,

 

Charles 

Charles Chickering
Architecture is art with rules.

...and the rules are more like guidelines
0 Kudos
Message 7 of 8
(3,991 Views)

Hi Charles -

 

Yes, oversampling will reduce the number of samples you can acquire at one time.  The amount of data you have to throw away depends on the pulse widths and timing relationship between your trigger and your data.

 

CLKIN shouldn't have any trouble with a 3.3V signal, but like I said, there is a duty cycle requirement of 25-75% < 50MHz.

 

However, if there was an issue with the clock, you'd have received a hardware clocking error and not a timeout error due to not receiving the trigger.

 

If your trigger is periodic, it may be possible to use it as your clock input for acquisition by connecting it to the strobe input on the DDC connector, but do keep in mind that our device is pipelined, and so you'll need your device to be clocking the 6552 before the acquisition starts AND after it finishes in order for the card to work correctly.

 

Keith Shapiro

National Instruments R&D

0 Kudos
Message 8 of 8
(3,969 Views)