PCIe-6321 counter failing at high frequency

I'm trying to use the counter on the 6321 as a frequency divider that takes an 80 MHz sin wave input and generates a 10 MHz square wave output by digitizing the output of a 50 ohm device on PFI0.  The specifications to for my board list a counter "Max Source Frequency" of 100 MHz, leading me to believe that 80 MHz should be possible.  However, in my experimenting while the counter based divider works very well at lower frequencies, it fails at about 35 MHz by missing edges.  The result is an  unstable output frequency that bounces between 8:1 division, 9:1, 10:1... depending on how many  edges are missed.
To explore this problem further, I swapped out my 2 meter 68-pin VHDCI for a 1 meter and plugged my function generator into the break out board with a < 30 cm cable, thinking that perhaps impedance mismatch was an issue.  However, even with < 1.5 m,  the device still works at 30 MHz and fails at 35 MHz.  This suggests to me that impedance mismatch is not the problem, as the maximum frequency was unchanged even though the cable length was nearly halved.   
Is there something else I'm missing?  Is there a faster interface than PFI?  Or someway to 50 ohm terminate the device? 

I see what you mean, but I guarantee you can't pass a 100 MHz signal through the X Series PFI lines.  ~25 MHz is what the bandwidth of the protection circuit is specified for (it's mentioned in this KB for instance).  I'm not sure offhand about the RTSI lines though (it might be worth an experiment as the bandwidth doesn't seem to be specified anywhere, but I wouldn't be too optimistic).
As for other NI hardware, the 6602 can take an external source up to 80 MHz on its PFI lines assuming the input signal is a clean square wave at TTL voltage levels (I've actually pushed this up to 100 MHz in the past, but your results may vary).  It is programmed in DAQmx like the 6321.
Or you could just implement this with an external circuit (e.g. comparator + ICS542).
Best Regards,
John Passiak

Similar Messages

  • How to use counter to test High frequency ?Any tutorial ? Thanks!

    thanks

    Hello Shenzhengpib,
    There is an example program that comes with LabVIEW called Meas Dig Frequency-Buffered-Cont-High Freq 2 Ctr.vi. This can be found in the Example Finder (Help Menu>>Find Examples) under Browse Hardware Input and Output>>DAQmx>>Counter Measurements>>Digital Frequency. Please let me know if you have any questions. Have a great day!
    Sincerely,
    Marni S.

  • PCIe-6321 frequency measurements

    I am trying to use a PCIe-6321 to perform a simple frequency measurement (800-2500hz).  Are there daqmx functions for frequency measurments?  I tried some of the CVI examples but they throw error messages.  Is there an example were I can measure frequency on one of the analog inputs?

    Your card have both analog inputs and counter inputs; they behave differently and for each of them there is a set of examples that explain the basic measurement types together with cabling.
    Search with the example finder (Help >> Find examples... menu item) with "counter/timer" keyword and you'll find the examples you are looking for. Also looking for "frequency" drives you to the same examples.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Help Counting high frequency voltage spikes

    Equipment:  NI USB-6229     (250 kS/sec Analog In., 16 bit DAC, 32 bit Counters and internal clocks <= 80 Mhz)
                          LabView 14
    Problem:
    I have an experimental application where I need to count voltage spikes (integer #) caused by electrons hitting a sensor. These spikes can be as frequent as 500,000 Counts/sec. The spikes are not going to be the same voltage everytime, but they will be visible above the noise so I need to allow the user to select a Threshold Voltage that triggers a real count rather than noise spikes.
    Attempts:
    To count such a high frequency, I deduce that I need to use a Counter Input to read fast enough, HOWEVER, I wasn't able to find a way to set a threshold voltage for a Counter Input because I believe they expect a TTL signal anyways, which I won't have. To set the threshold, I realize that Analog Input reads can be triggered at a selected level which is great but the Analog Input Sampling Rate is only 250kS/sec which won't catch every count in my project.
    I have a program that uses the Count Edges channel and it is accurate within 3% of the expected # of counts. I was just testing it with a function generator and the program doesn't count unless the signal's voltage is above 2-3 V which won't work for my application. I will post what I have. Does anybody know of a way to trigger off only at selected Voltage levels using counters, or know of a way to filter through the noise to get real spikes?
    Thanks!
    Solved!
    Go to Solution.
    Attachments:
    ElectronCountsTest.vi ‏29 KB

    Thanks for the reply johnsold. I didn't think to use a comparator but that is good to know that I have that option. I was and still am hoping for some kind of trick to do this programmatically.   One other idea that I was playing with is offsetting two or three different Reads on the same signal to read the signal at different times. If this is a possibility, it may be able to double or triple my sample rate to 500k or 750kS / sec. Anyone else have any ideas on this solution?

  • High frequency quadrature decoder (NI PCI 6221)

    Hello, i would like to ask you about high frequency quadrature decoder. I am using module in DAQmx for measuring linear position. For this i am using NI PCI 6221. My problem is that i want to use this for my interferometer and we need really high speed. So I tried to use External timing whitch should be possible for this card up to 80MHz. Unfortunatelly i always will get error message that there is some kind of owerflow and my program crashes. So my question is how to get all data form this card. I know that the buffer size FIFO is only 2 so if it is impossible to get all data so i want find another solution. Is it possible let my card work alone on 80MHz and only repeatly rewrite all buffer and just sometime ask this card for sending current buffer. I dont really need all the data, but when i will ask i need to know reall position. This high speed is really necessary because my interferometer is sensitive and i dont wat to lose any steps. If there would be any possibility how to work on 80MHz and only sometime ask for sending data with position, it would be great. Sometimes i will ask not for only current position but for full buffer because i want so see what is happening during some time period, but this task will be only sometime. 

    Dear BMAJTZ,
      The counter frequency (the maximum speed available) is configured by the Task in the background. In our case, the counter is set to detect edges, so it always uses the maximum speed available. If an edge occurs, the count value increases by 1, and this accumulated count value (stored as a binary number) is read by the DAQmx Read VI, and converted to meters. So if your encoder input is slow enough for the 80 MHz card to handle, you won't miss any ticks, even if you only read the value occasionally.
    You can find further information about counters and encoders on these links:
    http://www.ni.com/academic/students/learnlabview/digital.htm
    http://www.ni.com/white-paper/7109/en
     Also if you can tell me the approximate frequency of your encoder signal, and how often you nedd the position info, I can do some benchmarking for you to see if your card is capable of the task.
    Best regards:
    Andrew Valko
    National Instruments
    Andrew Valko
    National Instruments Hungary

  • IO fails working for low frequency, but work well for higher frequency

    On our customized VU440 board, we did a IO performance test for each bank and found a strange problem, in the design,we send out 24bits Pseudo random data and loop back this data to the same bank with our testing board, on which the pins for tx and rx are only connected in short circuit, one differential clock is transfered to single-ended global clock in the design, using IBUFDS+BUFG to provide the global clock for tx module and rx module.
    howeve, we use vivado debug tool to check the data looped back, only found when the clock is 200MHz around, the data is correct, but if fails to get correct data when the clock is much lower, for example, 10MHz ~100MHz. And from the waveform we got, we identified the status for some pin was un-normal when the data bus failed to get correct data.
    we have found the problematic IO pins, but did not know why the problem come out, normally, we think it's normal for the IO pins fail to work when the frequency is too high, but in our case, the issue is on the contrary, we don't understand why it works for some higher frequency but fail to run when it's much lower.
    we now try to check our PCB also, but have no clue at present. 
    Some guys have any idea or suggestion to check for the reason?
    thx~

    Hi,
    What is the IO standard that you selected for the TX and the RX. How long is the loopback cable?
    Do you have proper terminations on the board? Because in general, all IO Standards need some terminations which are mentioned in the respective SelectIO user Guide for that device. Please check that.

  • NI PCI-6115, problems in high frequencies

    Hi,
    I'm not sure if this is the right place to make this question but let's try..
    I try to measure the frequency response of the output impedance from a certain switched-mode converter using NI PCI-6115 (I inject sinusoids into output voltage and measure the output current). I get a nice plot but there are some problems in high frequencies. It seems that the measurement card makes some unexpected peaks. I use the network analyzer (Venable) to verify the results and beyond 200 kHz the results do not match. I attached the plot with the results from both methods (MC = PCI-6115, Venable = network analyzer). Does anyone have any idea what could cause this difference in high frequencies? The measurement set ups where exactly identical. 
    Thanks! 
    Attachments:
    Doc1.pdf ‏87 KB

    looks like a resonace at 400kHz...
    Are you shure that the input impedances of both setup are the same? Are you injecting with a transformer and build a LC resonator with the MC?
    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 ǝɥʇ'

  • DAQmx Error 89137 When trying to make a high frequency measurement.

    I am using a PCI-6602 Timer/Counter for multiple measurements on a serial interface...
    I have the clock line connected to Gate0, the enable line to Aux0 because I need to make a two-Edge seperation measurement between the two later...
    But I also want to make a "Period/Frequency Measurement (High Frequency with Two Counters)" measurement...
    This requires that the signal to be measured is on Source0...
    I implimented the following Code:
    void meas_FP_Freq(float64 *Freq0, float64 *Freq1)
    TaskHandle CLK0_Freq, CLK1_Freq;
    DAQmxCreateTask ("FP_CLK0_Freq", &CLK0_Freq);
    DAQmxCreateTask ("FP_CLK1_Freq", &CLK1_Freq);
    DAQmxConnectTerms ("/Dev3/PFI38", "/Dev3/Ctr0Source", DAQmx_Val_DoNotInvertPolarity); // Gate0 to Source0, No Error....
    DAQmxConnectTerms ("/Dev3/80MHzTimebase", "/Dev3/Ctr1Source", DAQmx_Val_DoNotInvertPolarity);
    DAQmxCreateCIFreqChan (CLK0_Freq, "Dev3/ctr0", "", 6000000, 6500000, DAQmx_Val_Hz, DAQmx_Val_Rising, DAQmx_Val_HighFreq2Ctr, 0.001, 4, "");  // High freq measurement
    DAQmxCreateCIFreqChan (CLK1_Freq, "Dev3/ctr1", "", 6000000, 6500000, DAQmx_Val_Hz, DAQmx_Val_Rising, DAQmx_Val_LowFreq1Ctr, 0.001, 4, "");
    DAQmxReadCounterScalarF64 (CLK0_Freq, 3.0, Freq0, 0); // Run-Time Error -89137 Specified Route cannot be satisfied..etc
    DAQmxReadCounterScalarF64 (CLK1_Freq, 3.0, Freq1, 0);
    DAQmxDisconnectTerms ("/Dev3/80MHzTimebase", "/Dev3/Ctr0Source");
    DAQmxDisconnectTerms ("/Dev3/80MHzTimebase", "/Dev3/Ctr1Source");
    DAQmxClearTask (CLK0_Freq);
    DAQmxClearTask (CLK1_Freq);
    The "Low Frequency" method works fine, but the resolution is too low...
    Every help file I've read indicates I can use different PFI inputs for measurements... What am I missing?

    Hi,
    The reason that you are getting the error is the PFI lines are being reserved twice. You don't need the DAQmx Connect Terms functions in your code because the DAQmx driver does this for you automatically. If you still receive an error after doing this, try to changing the low frequency counter number.  I hope this helps you with your application.
    Regards,
    Hal L.

  • NI PCIe-6351 Count Edges Channel error on fast TTL - Multiple Sample Clock pulses were detected

    Hello,
    I am trying to use a PCIe-6351 to record the arrival times of a fast TTL pulse stream (generated by an Excilitas/Elmer Perkin APD). The TTL pulses are 2.5 volt amplitude, 20 ns duration, with a gauranteed dead time of 50 ns between pulses. I am trying to use the the Count Edges function, with the  100MhzTimebase as the input terminal and the input to counter 0 (PFI8) as the sample clock. After a few seconds of acquiring data at 100 Mhz, the application throws the following error (-201314):
    "Multiple Sample Clock pulses were detected within one period of the input signal"
    I had thought that because there is 50 ns dead time between pulses, multiple pulses would never arrive within a single clock cycle of the 100 Mhz timebase. Is there any way this might not be the case? Alternatively, is it possible that the counter is triggering on some jitter around the edges of the pulses? If so, is there any way to filter such high frequencies without losing the 20 ns pulses?
    I have read through the forums for similar problems with photon detectors, but have not been able to resolve this issue. Thank you for the help.
    Matthew Bakalar

    It sounds like the input signal is being detected as multiple edges.
    The PFI filtering feature on the X Series card likely isn't going to be suitable for you.  The minimum setting is actually exactly 20 ns, which should in theory guarantee a 20 ns pulse passing through.  However, if the signal is high for anything less than that there wouldn't be a guarantee (depending on the phase of the timebase relative to the rising edge of the signal)--considering rise times and that there is evidently a glitch in the signal itself, it probably isn't actually a continuous 20 ns high time by the time the DAQ card sees it.
    What you should do instead:
    Configure a second counter as a retriggerable counter output (single pulse).
    Use your external signal as the start trigger for this counter output task.
    Set the initial delay, high time, and low time for the counter output task all to 20 ns (the minimum).
    Use the internal output of the counter output task as the sample clock source for the original edge count task.
    The counter output will be triggered when it sees the external signal, wait 10-20 ns, then generate a 20 ns pulse.  If there is a glitch on the trigger line during this 30-40 ns that the output is generating, it will be ignored.  The counter output will be re-armed in time for the next pulse given the minimum dead time of 50 ns between pulses.
    Best Regards,
    John Passiak

  • High frequency measurement 2 counters range

    Hello,
    I know this info is somewhere but I can't find it.
    When using a Counter/timer to measure frequency there are multiple methods.
    i.e. Low Frequency with 1 counter and high frequency with 2 counters.
    What is the definition of a "low frequency" and what is the definition of a "high frequency"?  i.e. low frequency = frequencies below 100 Hz 
    Also what is the definition of a "large range"?
    Thanks
    Dan

    Hi Dan
    There isn't a specific bandwidth that is defined for use with either the one-counter or two-counter method. However, located in the NI-DAQmx help file there is a section detailing the quantization errors that arise when using either method with a variety of input frequencies. By referring to this information you should be able to determine which method will produce the smallest error in your application and hence which method will be preferable. This help file also explains the errors associated with the large-range two-counter method.
    To locate the help file, you should select Start»All Programs»National Instruments»NI-DAQ»NI-DAQmx Help, and search for 'quantization error'.
    I hope this helps, just let me know if you'd like anything clarified or if you have any other questions on the matter.
    Regards
    Jeremy T
    Technical Marketing Engineer
    National Instruments UK & Ireland

  • PCI-6023E DAQ card maximum sampling frequency

    Hello
    I am using PCI-6023E DAQ card in pc-based ETS solution (and writing appilication in LabView 7.1 with RT module). The card has 200kS/s maximum sampling frequency, but it can be set for much higher sampling frequencies and the waveform acquired appears to be correct (i.e. i've tried setting it fo 1MS/s and sampling 400kHz sine, which is obviously above Nyquist frequency for 200kS/s card, but on spectral graph, main peak is at 400kHz). Is the card driver doing some kind of free/coherent sampling?
    Moreover, when sampling frequency is set to 200kS/s, the card seems to be doing same thing - i.e. for 200kS/s and sample block size of 200kS, graph should be updated once in a second, but it's updating slighty slower.
    I'd really appreciate if someone could explain me (or gave me a link to materials) what exactly is happening here? Is driver doing some background work, or maybe it is problem with network latency/unstability ? What is the impact of this effect on real-time aquisition?
    Thanks in advance
    Jan Kienig

    Since the fundemental is 4 times the nyquist, then what you are measuring is an alias of the fundemental. This works well as long as the fundemental is a repetitive signal. Sampling every other peak and every other node looks the same as sampling every peak and node. Tektronix exploited this on their 7S series sampling heads. Another use of this phenomena is the effective demodulation of high frequency signals as long as the bandwidth meets nyquist. As with your card, if the input amplifier supported it, I could extract modulation information from a 500 MHz signal so long as the the bandwith of that modulation did not exceed 100 kHz.
    Parker

  • PCIe-6321 & ConfigureChangeDetection C# - Need to "debounce" the detection - event triggered multiple times

    I am working on a C# NIDAQmx application for a hardware configuration that uses a PCIe-6321 to interface with downstream hardware.  There is a DI signal from a manual switch on the downstream hardware that I must monitor for the start/stop signal for my application's data acquisition operations.
    I was having inconsistent results using the ConfigureChangeDetection NIDAQmx functionality.  So I used the ReadDigChan_ChangeDetection sample and using Debug.WriteLine statements have verified that when the switch on the hardware is toggled, multiple ChangeDetected events are thrown before the signal settles into the actual High or Low state.
    Since I am not a hardware guru, I consulted another engineer, and was told that this is common with switches, and the signal and/or change detection needs to be "debounced". 
    Can this be done purely through additional configuration of the NIDAQmx DI task?  I saw properties for digital filtering, but don't understand their use.  I looked at the ReadDigChan_ChangeDetection_DigFilter sample, but it seems to imply that some other DI needs to be connected on the card to be used as the filter, which I don't have.  Only one DI is coming from the downstream hardware.
    Any help and/or advice will be greatly appreciated.

    I believe I have found the solution.  By searching the forums I came across a couple of posts that pointed to this article
    http://digital.ni.com/public.nsf/allkb/220083B08217CFD686257131007E5D2C?OpenDocument
    So i started playing with the corresponding properties in the C# task, and it looks like I may have to only set the following properties:
                    myTask.DIChannels[0].DigitalFilterEnable = true;
                    myTask.DIChannels[0].DigitalFilterMinimumPulseWidth = 10.240000e-6;
    According to error messages, the DigitalFilterMinimumPulseWidth for the PCIe-6321 can only be set to specific values.
    Using this in the ReadDidChan_ChangeDetection_Events sample appears to be successfully debouncing the ChangeDetection events to only 1 per physical switch toggle.
    If this is not the approach I should be using, please advise otherwise.

  • High frequency power measurements

    Hey,
    I'd like to know if there are developments in measuring electrical high frequency signals with labview without using an extern power analyser. At the moment i'm using a yokogawa power analyser but i'd like to know if it's possible to log HF signals without the help of a power analyser... Are there NI products on the market for this purpose?
    Thx,
    Andy

    Hello,
    In the case of frequencies up to 200 KHz, NI can provide several solutions using the 'standard' data-acquisition boards or digitizers (scopes), from a low to very high accuracy solutions.
    A good solution can be one of the high speed M-series boards (PCI-625x).  These boards have up to 32 multiplexed channels with a resolutions of 16-bit at a speed of 1 MS/s  (500 KHz).
    A better solution would be a S-series boards.  These data-acquisition boards sample all input channels simultaneously.  We have boards with 2, 4 and 8 channels and sample frequencies of 10 MS/s  (up to 5 MHz if needed).  S-series board are the boards with product numbers PCI-61xx.
    The best solution is to use a digitizer (scope).  Also here a lot of possibilities going from low to higher bandwidth and resolution.
    The most flexible is the PXI-5922.  A 24-bit digitizer if you sample @ maximum 500 KS/s.  This board only exist in the PXI platform.
    Then NI has 8-bit digitizers (normal resolution for scopes) from 15 till 125 MHz bandwidth.  If you need a higher resolution they have solution up to 14-bit (very high for scopes) @ 100 MHz.
    Please give your local NI Office a phone call.
    They have technical engineers who can discuss your needs and provide you a solution.
    Best regards,
    Joeri
    National Instruments
    Applications Engineering
    http://www.ni.com/ask
    Make our forums great:
    If you like the answer, don't forget to "Kudos!".
    "Accept the Solution" if your question is answered!

  • How to reduce the noise in PCIe-6321 acquisition, to optimize wiring.

    Hi all,
    I want to optimize my wiring in term of noise reduction. I use a DAQ PCIe-6321 in my application. I want to acquire an analog signal from a sensor (+/- 4 Volts, resolution of 2 mV, output impedance of 100 ohms) using the DAQ. The frequency of the signal is below 2 kHz. My first question is about the most suitable cable to use (shielded, twisted, etc.)? What is also the best suitable input configuration to choose in Labview (differential, RSE or NRSE)?
    Moreover, after processing of this data under Labview, I want to power an audio power amplifier (input impedance equal to 10 kohms) using the analog output of the DAQ. What is the most suitable cable to use to reduce the noise? Are there any other tips to optimize the wiring?
    Thank you for your help and suggestions!
    Cedric

    Hi guys,
    I know that it is a bit late to reply but that is the perfect topic for what I am looking for!
    I am currently working with acquisition systems using either PCI-6221 or PCIe-6321. Those systems are exactly the same but the results are different (see picture enclosed). We can see spikes and noise with the PCIe-6321 while we have the same conditions of measurements. 
    Here is the NI setup:
    - PCI-6221 + connector block CB-68LP + cable SHC68-68-EPM
    - PCIe-6321 + connector block SCB-68A + cable SHC68-68-EPM
    In one of the system equipped with PCIe-6321, I replaced all the devices like cables, detectors, motors and it doesn’t change anything. I also swapped the computer for one equipped with PCI-6221 and it works fine. It means that the problem really comes from the acquisition card.
    So my question is: why is there such a difference between those models? Do I need to change the configuration in the card?
    Thanks in advance.
    Maxime  
    Attachments:
    Difference PCIe6321 and PCI6321.jpg ‏136 KB

  • Daq 6211 high frequency ouput

    HI guys.
    Ive got my hands on a USB 6211 daq device. Im trying to generate a high frequency pulse output from one of the 2 counters. The frequency is in the range of 5 to 20 kHz. Can someone tell me if thats possible with this USB 6211 device?. Ive been searching but cant seem to find the answers. Are the counters on this device just for reading HIgh Frequency inputs or can they ouput them also. Any help would be much appreciated. 
    Solved!
    Go to Solution.

    That manual has helped a lot. I should have looked at properly in the first place. Thanks .
    I have one more question if anybody can help. I'm using the daq 6211 to create a pulse train to control a stepper. The stepper driver takes in a pulse which in turn will turn the stepper and the frequency of these pulses determines the speed.
    My problem is that, using the counter examples in labview, I only have an option to create a continous pulse train. I would like top be able to dynamically adjust the frequency while the vi is running and Ideally i want to be able to ramp up the frequency so that the stepper can get to a high speed. If i try to adjust the controls with the example vi's there is no change in frequency unless i stop it and start again with a different frequency. 
    Has anyone come accross this themselves or am i missing something obvious??. 

Maybe you are looking for