05-29-2012 06:18 PM
The transfer mechanism for analog output that you had to adjust shouldn't have an impact on the analog input with your device. That leads me to believe that something in the code is causing this behavior that you're seeing. In order to narrow down the problem, it would be great if you could try the analog output and input using only the LabWindows examples with the necessary adjustment for switching from DMA to interrupt.
For output, I'd suggest:
ContGen-IntClk.prj (you will need to add the property you added to your code to change the transfer mechanism to Interrupt)
If you'd rather, instead of using the input example, you can use test panels in Measurement & Automation to observe the Analog Input. If this method produces the same behavior, could you attach some screenshots of the output you are viewing when you see it change to 'noise'?
06-05-2012 04:59 AM
Sir i did as you recommended me for sinewave input and i am attaching some screen shots.
And for output Sir! I think if by using other pc it generates sine wave(with the frequency of our interest) without changing data transfer mechanism it should be successfully generate on this pc without changing data transfer mechanism to intrupt.
06-06-2012 06:08 PM
The reason for changing to interrupt for your PC is because of a known issue between the motherboard of that machine and DAQ devices.
It seems the problem you are running into here is that you approaching the limit in performance of your 6251 card (it has a 2.8 MS/s max for aggregate analog output). I am going to look a bit further into the screenshots you provided and I will repost with what I conclude.
06-19-2012 04:54 PM
Going back to your original post:
the pc in which daq device is working properly has following hardware:
1) intel(R) Core (TM) 2 cpu
,1GB of RAM physical address extention. and 3 pci slots one of which contains my daq device
and the pc in which daq device is not working properly has following hardware:
2) intel(R) Core (TM) 2 cpu,E8400 @ 3.00GHz
3.00GHz,2,1.97Gb of ram physical extention,and 4 pci slots.
since you can only observe your problem on the second machine and not on the first, this leads me to believe that the problem lies not with NI PCI 6251 card, but with the motherboard installed on the second machine. Also, in most cases for most optimal performance of your code you should use the DMA transfer method. Here is a paragraph that clarifies the difference between DMA and interrupt transfer methods.
There are three primary ways to transfer data across the PCI bus—Direct Memory Access (DMA), Interrupt Request (IRQ), and Programmed I/O.
DMA is a method to transfer data between the device and computer memory without the involvement of the CPU. This method makes DMA the fastest available data transfer method. National Instruments uses DMA hardware and software technology to achieve high throughput rates and to increase system utilization. DMA is the default method of data transfer for DAQ devices that support it.
IRQ transfers rely on the CPU to service data transfer requests. The device notifies the CPU when it is ready to transfer data. The data transfer speed is tightly coupled to the rate at which the CPU can service the interrupt requests. If you are using interrupts to transfer data at a rate faster than the rate the CPU can service the interrupts, your systems may start to freeze.
Programmed I/O is a data transfer mechanism where the user's program is responsible for transferring data. Each read or write call in the program initiates the transfer of data. Programmed I/O is typically used in software-timed (on-demand) operations.
On PCI or PXI M Series devices, each measurement and acquisition circuit (that is, AI, AO, and so on) has a dedicated DMA channel. So in most applications, all data transfers use DMA.
However, NI-DAQmx allows you to disable DMA and use interrupts. To change your data transfer mechanism between DMA and interrupts, use the following VIs/functions. For NI-DAQmx, use the Data Transfer Mechanism property node. For Traditional NI-DAQ (Legacy), use the Set DAQ Device Information VI or function.
Finally, another thing you can try on your second computer is to change the PCI slot of your DAQ card to a PCI slot that is closer to the CPU on your motherboard.