01-29-2013 05:18 PM
I'm trying to get down to the details of what happens when you run CI Freq -> Implicit -> Counter 1D DBL NSamp. I've looked through the forums and the NI white paper on frequency measurements, but some things are missing. I understand the general process, but I'd like to better understand the exact steps, especially when including arm start triggers.
This is related to my post here http://208.74.204.114/t5/Digital-I-O/Measuring-frequency-of-an-I2C-clock/td-p/2289810
Also, what is considered "Low Frequency", "High Frequency", and "Large Range". Would 100kHz be low? High? Would a 50kHz spread be considered large range?
Specifically:
1) I believe I understand continuous mode. The samples per channel is a buffer size. When you call the read vi, it grabs a portion of that buffer (the beginning? end? randomly?) and gives you that value. Is the buffer FIFO? Does it get replaced one at a time whenever a new edge comes through?
When in finite samples mode, what does changing the samples per channel do? The help file says "specifies the number of samples to acquire or generate for each channel in the task". In a frequency measurement, does that mean for example, 100 frequency measurements are made for 100 digital edges of PFI1 (for counter 0), or 100 edges are used to calculate one frequency? How does this number differ from the "number of samples per channel" on the Read vi?
2) Arm start trigger arms the counter circuit, but doesn't start counting until a trigger comes through on the specified line. Does it restart counting every time a trigger comes through on the line. or does this condition only apply once?
3) Why can't I use the pause trigger with CI Freq? If I try it says this property doesn't apply. My hardware supports it.
More clarification on what I want to do:
I want to measure frequencies on an I2C clock. There are two distinct frequencies, 50kHz and 100kHz, and I'm histogramming the frequency that these frequencies occur (bleh!). Sometimes the I2C clock is held high, and I don't want these to factor into my measurements. I have two triggers where I want to start measuring, and where I want to stop.
In my mind, I want to arm the counter when the start trigger comes in. Shortly after the clock will start moving, and LabVIEW should measure frequencies until the stop trigger comes. So far arming doesn't seem to make a difference in my data, and LabVIEW wont let me use the pause trigger property.
Solved! Go to Solution.
01-30-2013 05:16 PM
Low frequency is considered something less than (the time base of your card divided by 100).
If you have varying frequencies you’re trying to measure you might want to use large range
The hardware buffer is FIFO so it reads the first N specified.
2. By default no, but it can be set with a property node, DAQmx Trigger>>Start>>More>>Retriggerable
3. I believe it’s because the intent of that method is to measure a frequency by counting the number of pulses of an unknown signal that occur during a known period of time. Pausing it during the measurement would result in an incorrect frequency.
01-31-2013 08:31 AM
Thanks, this answers a lot.