Hi speed data aquistion/NI AT-MIO-16E2

Hi all,

I want to use comedi and NI AT-MIO-16E2 for data aquistion close to card capabilities (500kS/s). Comedi(0.7.67)/comedilib(0.7.22) installation went smoothly, I have written some testing code (basically modifications to cmd.c demo). My problem is that above 200kS/s I'm starting to loose frames of data. I use large (4MB) comedi buffer, this is always more than data I want to acquire in one burst. It seems to me that 2048 samples FIFO * 100 interrupts/s gives 200kS/s (I tested this with 2.4.18 and 2.4.26). I also need to do comedi_poll as() frequently as possible. 
If my program has a loop that runs only comedi_poll() after comedi_command(), I went up to 350kS/s. The PC is old P133, but when the card was put into Athlon 1200, the limits were the same.

My questions are:
Do I need RTAI/RTLinux to go to higher speeds?
My understanding is that my AT-MIO runs in interrupt mode, not DMA.
Is there any chance to get DMA mode with this card? NIDAQ 7.3 card testing program claimed to do 500kS/s and even didn't complain too much about overclocking it to 600kS/s under Windows XP, certainly not an RTOS ;)
Anything I do wrong is too simple to just spot it myself?

thanks,

Piotr Zoltowski

Received on 2005-02-12Z21:52:27