PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

DSA sampling rate relative to PXI_Clk10

I have a task with a set of PXI-4498's which I configure to run at 32 ksps.  When I query the task rate that's what it returns.  However, if I start a counter task (counting the 10 MHz backplane clock) at the same time as the 4498 and measure the ratio of the number of samples versus that counter over a day I'm measuring the real rate as closer to 32.0011 ksps.  This error is greater than the spec'd freuquency resolution of the 4498 which is 130 µsps.

 

From reading the DSA manual and the 4498 spec sheet it describes the frequency generation as backplane clock -> PLL -> 100 Mhz -> DDS to generate the sampling rate.  I would imagine the DDS is running at a fixed frequency ratio compared to the 100 Mhz clock, so is there a way to query that ratio?  When I query the the SampleClockTimebaseRate it returns 1.6384E+7 which is 512 times 32000 but doesn't seem to account for that error.

 

So basically if I want to ensure that my samples are happening at a fixed rate relative to the PXI_Clk10 (not necessarily integer) is there a way I should configure the task or property I can query to determine this?

0 Kudos
Message 1 of 4
(3,830 Views)

P.s. what should the timebase divisor be.  The DSA manual says:

 

"The ratio between the sample rate (fs) and sample clock timebase rate (ftb) can have one of several values. Refer to the NI 446x Specifications, NI 447x Specifications, NI 449x Specifications, or NI USB-443x Specifications for more information. "

 

But I've read through the NI 449x Specifications a few times and don't see this number specified.

0 Kudos
Message 2 of 4
(3,826 Views)

peabody124:

Following the calculations in the DSA Manual (http://www.ni.com/pdf/manuals/371235h.pdf), the actual rate should be 32000.00001kS/s. How are you calculating 130 µS/s? Our cards will match the value we have spec'd out, so I am thinking:

1. What are you using for your counter? How are you triggering and/or synching it with your AI tasks? What do
you have in place to make sure they are starting at the same time?

2. Can you further explain exactly how you are calculating the ratio and the actual sample rate to be 32.0011?
How are you carrying out your calculation to keep all you significant digits from being cut off? Feel free to
attach your code or a screen shot of your code if it would help explain.

The calculations below are found in that DSA manual and I have inserted your numbers to determine the actual
coerced sample rate.

SampTimebaseRate = Rate × RateMultiplier = 32000 x 2^9 = 16384000

    where RateMultiplier values are from Table 2-10 in the manual

TuningWord = (SampTimebaseRate/ExternalMult) x ((2 ^ DdsBits)/FreqTimebaseRate) = (16384000/1) x ((2 ^ 32)/100e6) = 703687441.7
    
    where ExternalMult, DdsBits, and FreqTimebaseRate are the values from Table 2-11 in the manual
    and TuningWord gets rounded up to 703687442, per the manuals instructions

ActSampTimebaseRate = (TuningWord/(2 ^ DdsBits)) × FreqTimebaseRate × ExternalMult = 703687442/(2 ^ 32) x 100e6 x 1 = 16384000.0052...

ActRate = ActSampTimebaseRate/RateMultiplier = 16384000.0052/ (2 ^ 9) = 32000.000010...


Tori W.

National Instruments
Message 3 of 4
(3,811 Views)

Thanks for the thorough reply.  I missed those tables in that DSA manual cause I thought it was pointing me to the 449x manual.  Sorry.  Further testing seems to indicate it's right, or at least converging a lot closer after a night of testing (btw the 130 uHz error comes from the 4498 manual in terms of frequency resolultion at 129 µS/s).

 

0 Kudos
Message 4 of 4
(3,787 Views)