Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

How fast can pci-6070 read 7 channels in every scan?

Hi, I'm writing the C code driver under Linux for a PCI-6070 A/D card. The sampling rate is 10k Hz, but we need to read 7 channels as fast as possible in each scan (so that we can do something else within that scan). The clock is 50ns, so I set the Scan Interval (SI) to 20000, which has been tested no problem, and I set Sample Interval (SI2) to 2. I don't quite understand why, SI2=2 is too small, I got "overflow" status all the time, so I increased SI2 to about 100 and there's no "overflow" anymore. The total time to sample 7 channels is about 35 microsec, which is too slow (%35 of each scan).
Am I doing something wrong? Or is it the capacity of the card(we used Labview before, and it's the same)?
I wonder if it's possible to sample all channels and keep them in a buffer, and read them out together? Or can anyone give some examples of high sampling rate (10k~100k) with multiple channels?
Thanks.

flofish
0 Kudos
Message 1 of 4
(3,243 Views)
I'm afraid I'm not familiar enough with the MHDDK to give you any assistance in terms of an example. I do know that the PCI-6070E can reach the sampling rates you are trying to achieve, however. You should definitely be able to sample 7 channels faster than 35 us.

If someone is not able to provide you with some assistance in regardings to RLP, you may want to consider NI-DAQmx Base for Linux. This is the new driver that National Instruments has released for use on Linux. It's built in LabVIEW using the MHDDK, so you're already pretty familiar with it. If you haven't looked into it already, now might be a good time.

Best of luck,

Jared A
0 Kudos
Message 2 of 4
(3,228 Views)
With the 6070, you can digitize data at a maximum rate of 1.25 MS/s on one channel or 1 MS/s across multiple channels. The SI counter controls how often you sample across all channels, and the SI2 counter controls the conversion rate on the ADC once a sample begins (or stated another way once the SI counter expires). By loading a value of 2 into the SI2 counter, you are actually trying to digitize at 10 MS/s every 100 microsec (10 kHz sampling rate). This is way too fast for this device, and I suspect the error you are actually seeing is an ADC overrun. You should be able to safely program a value of 20 into the SI2 counter in order to reach the 1 MS/s maximum across all channels. This will give a total time of 7 microsec for all channels instead of the 35 microsec you currently have. Also, depending on how you have programmed the SI2 counter (load value, load source, reload mode, etc.), there is a small period of time that elapses from when the sample begins to when the first conversion takes place. At a minimum, this is 100 nanoseconds, but it can be longer depending on the programming of the SI2 counter. This would give a minimum of 7.1 microsec to read seven channels on this board.
Message 3 of 4
(3,223 Views)
Thanks a lot.

flofish
0 Kudos
Message 4 of 4
(3,215 Views)