07-04-2009 02:25 AM
Solved! Go to Solution.
07-04-2009 02:56 AM
Hello Klessm1,
Please attach a screenshot of the error code. That will help in finding the source of the problem.
Regards,
Sundar Ganesh
07-04-2009 12:27 PM
Attached is the error.
07-07-2009 07:55 AM - edited 07-07-2009 07:56 AM
Hi,
The memory underflow error that you are experiencing could be the result of several things.
Some questions and suggestions:
07-07-2009 03:17 PM
Thanks for the tips. I will try those out.
3. Not sure what exact motherboard it is (I am not in front of the computer right now), but it is a new industrial computer with a duel-core Intel uP. We were trying it on an older single core machine as well and we were having issues right above 20k sampling where the industrial computer was ok.
4. PCI 6259 (regular, not PCI express)
Thanks!
07-07-2009 07:47 PM
Hi klessm1,
I want to point out that the behavior you are seeing is atypical--under normal circumstances DMA transfers should occur fast enough to keep data in the on-board FIFO continuously up to at least the max sample rate (2.86 MHz on a single channel). Having said that, the error you are receiving indicates that we are not getting data to the 6259 fast enough for some reason--there are a few options we have at this point to get you up and running:
Remove the necessity to transfer data to the device. As Sarah suggested, you can do this by regenerating from the on-board FIFO. The output FIFO on the 6259 is is 8,191 samples (shared between channels), so if you are generating a periodic signal and this is a sufficient number of samples to characterize one period then this should be a viable option.
Try using Interrupts instead of DMA. This may seem counterintuitive since DMA is typically the fastest method of data transfer on our DAQ devices, but something sounds amiss with the DMA transfers from your computer to the 6259. I imagine you will actually get faster rates using Interrupts if this is the case.
You can configure the device to use only onboard memory or interrupts by using a DAQmx Channel Property Node (Analog Output >> General Properties >> Advanced >> Data Transfer and Memory)
Implement a delay between the start of the task and the first sample. If the problem is with the latency of the first DMA transfer (as opposed to the total throughput over the PCI bus), then adding a delay before you try to write the first sample should resolve the issue. Certain motherboards have been found to have a higher latency than others (hence Sarah's question #3).
You can configure this delay with the DAQmx Trigger Property Node (Start >> More >> Delay / Delay Units). This applies even if you don't explicitly have a start trigger configured.
I think all three of the above solutions are good ideas to try depending on what you require exactly. I would also check for any BIOS updates available for your motherboard that might remedy the issue (but this would be something the manufacturer would know more about). I hope this helps--let us know how it goes!
-John
07-17-2009 02:13 AM
The suggestions worked great...after I finally got around to it. I regenerated the points onboard the device and I can get around 800kS/S.
Thanks!