Driver Development Kit (DDK)

cancel
Showing results for 
Search instead for 
Did you mean: 

Interrupt on NI-PCIe-6259 comes irregular

Hi,
 
I'm writing a card driver for the NI-PCIe-6259 card using SUSE 10.0 with kernel 2.6.19 and xenomai-patch 2.3.0 and DDK.
I want to do data aquisition wit interrupts. The problem ist the interrupts come not equidistant.
 
I initialized the board as shown in the DDK examples. I set the sample rate to 50 Hz.
I additionally enabled the interrupt with the following instructions:
 
board->Interrupt_A_Enable.setAI_STOP_Interrupt_Enable (1);
board->Interrupt_A_Enable.flush ();
board->Interrupt_Control.setInterrupt_Group_A_Enable(1);
board->Interrupt_Control.setInterrupt_Group_B_Enable(0);
board->Interrupt_Control.flush ();
 
In the interrupt service routine are the following instructions:
 
board->AI_FIFO_Data.readRegister();
board->Interrupt_A_Ack.writeAI_STOP_Interrupt_Ack (1);
board->Interrupt_A_Ack.flush ();
board->Interrupt_Control.setInterrupt_Group_A_Enable(1);
board->Interrupt_Control.flush ();
 
This code works perfectly on the NI-PCI-6281 card. An interrupt comes every 20 ms.
With the NI-PCIe-6259 card the time between two interrupts is dithering mostly between 2 ms and 40 ms and sometimes (about every 30th interrupt) the time is greather than 500 ms. The sampling works with 50 Hz because if the time is high the FIFO ist half-full or full.
 
Does anyone know a reason for that? Are there any known problems with the NI-PCIe-6259 card?
 
Thanks
 
Christoph
0 Kudos
Message 1 of 1
(7,115 Views)