From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
04-03-2008 11:44 PM
04-07-2008 12:24 AM
04-07-2008 01:20 AM
01-12-2009 04:13 PM - edited 01-12-2009 04:15 PM
Hi All,
We were able to reproduce this issue on an ASUS P5GC-MX board with a P4 using a PCI M-series. We haven't dug into the low level bus interactions yet, but basically it appears that the initial DMA transfer is not happening as quickly as it does on typical motherboards so when we start the generation the onboard FIFO overflows. The work around for this is simple: you can use a start trigger and there will be enough of a delay (unless the trigger comes right after the DAQmx start is called) for the FIFO to fill and the generation to start successfully. If you're not using a start trigger, you can still add a delay between the first sample clock and the internal start trigger to allow time for the FIFO to fill like so:
1 ms worked for me, you may need to add a slightly longer delay depending on your system. I've attached an example as well.
Please post back if this will not work for your application or if you have additional feedback. We will likely be adding some code to compensate for this problem in the next version of DAQmx.
thanks,
Andrew S
National Instruments
MIO Product Support Engineer
01-12-2009 04:41 PM
Quick correction: We haven't dug into the low level bus
interactions yet, but basically it appears that the initial DMA
transfer is not happening as quickly as it does on typical motherboards
so when we start the generation the onboard FIFO overflows undeflows.
Thanks,
Andrew
01-13-2009 01:10 AM
Hi!
Nice to hear that the problem is not forgotten :).
Thanks.
02-24-2009 12:00 PM
Hi,
I just wanted to point out that I have found this 200016 buffer underflow error has now been found on Intel Extreme motherboards as well as ASUS P5xxx motherboards, and it occurs with internal software triggering too. In particular it occurred just when running MAX. See:
http://forums.ni.com/ni/board/message?board.id=250&thread.id=46795
Sincerely,
Bill Anderson
02-24-2009 01:30 PM
Bill raised a couple good points:
To work around this in C use:
DAQmxSetStartTrigDelayUnits(taskHandleAO ,DAQmx_Val_Seconds);
DAQmxSetStartTrigDelay(taskHandleAO, .001);
Also, you don't have to use an external trigger to take advantage of this work around, AO always uses an internal start trigger so you don't have to use an external trigger to delay from, the dleay can come from the internal trigger.
Thanks,
Andrew S
04-08-2009 03:38 PM
Does this problem occur with MSI motherboards as well? We think we're running into the same problem with an MSI (MS-7528 ver 1.0).
We were successfully running our application (generates three channels of AOs, regeneration allowed, update rate = 500kHz) for quite some time on a Win2000 desktop with a PCI 6229. We had not changed the Data Transfer Mechanism but I believe it is DMA by default (right?). The same application has also worked successfully for quite some time on an XP laptop with a USB 6259. We have only the one AO task (i.e. no analog in, DIO, counters etc.).
We bought a new XP desktop, transferred the PCI 6229 and the application to it and immediately started experiencing underflow errors. We worked with an AE and discovered it was an ASUS motherboard and he informed us about the ASUS problem.
We returned that computer and got a new one with this MSI motherboard. Same problem. Any ideas?
04-08-2009 04:17 PM