Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Intel Core i3 platform Error -200016, also missing samples on Ai

I've encountered a slew of DMA errors on DAQmx Write, and missing samples on Analog Input with DAQmx Read when trying to migrate my LabView program (developed and tested on multiple different Intel Core 2 platforms) to an Intel Core i3 platform.

Hardware Setup: Assume Ao0 is looped back to Ai0 on a PCI-6289, PCI-6281, PCI-6259, or PCI-6251 M series NI-DAQ card. I have a Labview program which continuously outputs a sine wave to Ao0, while also sampling Ai0 to measure the resulting waveform and spectrum. This used to work very well on several computers in the past and has never really caused any problems.

Now for the first time I tried to install this same program on a newer Intel Core i platform (specifically, i3-560 CPU on Shuttle SH55J2 board), and serious problems started to occurr which I haven't been able to resolve yet, despite a week of troubleshooting. In brief, there are two (probably related) problems:

1.) Analog output fails with error -200016 when the default transfer method (DMA transfer) is used. The only apparent work-around is to either select a very low sampling rate (10 kHz or less), or to change the transfer method to IRQ. NOTE: Before arguing about LabView etc., I want to point out that this problem also occurs in the Measurement & Automation Explorer, when Analog Output (Sinewave Generation) is selected in the Test Panels. Here, too, the issue is resolved either with a very low sampling rate or IRQ instead of DMA transfer.

2.) Analog input fails too, in the sense that it works flawlessly only for a few seconds after the LabView program has been started for the first time after a system reboot. A few seconds later, the program starts to omit samples. Specifically, I start a task for a finite acquisition for 2000 samples, read the data into a waveform, then stop the task. This is repeated about once every five seconds. On the first few iterations, the read waveform VI returns 2000 samples, but soom thereafter it returns only 1999 samples without generationg any errors. When I stop and restart my program without a computer reboot, this error condition persists and immediately returns only 1999 samples. The only solution to this is to throttle the CPU power by either lower the CPU clock rate dramatically (from 3.3 GHz to less than 2 GHz), and/or turning off multi-core ability and hyperthreading, etc. However, even this work-around is not entirely safe, since in many cases it simply delays the onset of the fault condition from 30 seconds to maybe 5 minutes after reboot. In this case, IRQ or DMA does not make any difference.


Troubleshooting:

- Is it a software error? Probably not. The same OS (Win XP), drivers, and DAQ card work well on another platform with the same software. Also, Problem 1 is well reproducible in the Measurement & Automation Explorer which is installed with the NI-DAQ driver, and hence independent of LabView.

 

- Does the NI-DAQ card have sufficient DMA and IRQ resources? Yes, in the XP Device Manager I see no differences, both the Core 2 and Core i systems have 2 DMA channels and one IRQ allocated to the DAQ card.

 

- Is this a DAQ card error? Probably not. Card passes self-test etc. More importantly, I was able to reproduce the same behavior on this platform with two different DAQ cards, one brand new PCI-6289 and an older and well proben PCI-6259.

- Is this a case of bad RAM or bad CPU? Probably not. I ran the Prime95 stress test for several hours on all cores simultaneously without errors.

- Is this a BIOS / Hyperthreading / Spread Spectrum / Speed Step etc. issue? Probably not. I tried disabling one after the other in the BIOS, and did not find any combination of these that would cure the odd behavior. Only the lower CPU frequency seemed to improve things a bit, but this applied only to Problem #2, and even there it was a probability thing and not 100% reliable in preventing Problem #2.

- Is this a motherboard/ Intel Chipset / Intel Core i Platform error? Maybe yes...
- DAQ: PCI-6289
- Motherboard: Shuttle SH55J2 (Intel H55 chipset)
- Ram: 4GB DDR3
- CPU: Intel Core i3-560 @ 3.33 GHz nominal
- OS: Windows XP SP3, fresh bare metal install with only MAX and LabView. No network connectivity.
- Lowering the memory clock from 1333 MHz to 1067 MHz didn't help
- Lowering BCLK from 133 MHz to 120 MHz didn't help
- Lowering CPU multiplier from 25x to 15x seemed to help sometimes with Problem #2

- How did the Analog Output DMA error manifest itself? At first I noticed there was no analog output at all. I then found the error -200016 which was generated on DAQmx Write. Since the error message suggested that too high a sample rate might be the problem (I used 40kHz, x3 output channels, on PCI-6289), I tried lowering the sample rate. Using 10kHz worked, but I consider this too low. I finally found that I could use the original sample rate by changing the AO.DataXferMech property node from "DMA" to "Interrupts".

- How did the Analog Input error manifest itself? I noticed that my spectral analysis of the input waveform went from "neat" to "leaky" after a few seconds, and after a lot of troubleshooting I found out that this switch from "neat" to "leaky" is apparently caused by the loss of the last sample (or maybe the first sample, don't know for sure). As described above, after a while the DAQmx Read Waveform VI returns exactly one sample less than requested (missing last sample). This is independent of the number of samples, independent of the sample rate, independent of the transfer method (DMA or IRQ), and only unreliably dependent on CPU frequency (lower is better).

- The last thing left to do is to test a different Socket 1156 motherboard, and I am about to go out and buy one specifically for this test.


So what is the take-home message here? Is the PCI-628x series incompatible with the Intel Core i3/i5/i7 platform? Any insights are appreciated.



0 Kudos
Message 1 of 9
(4,548 Views)

I got a new motherboard, MSI H55M-E23, carried over all components, and I see the same problem, error -200016 in MAX when trying to do analog generation.

 

I think the Intel socket 1156 platform, H55 chipset, or Core i3 CPU is defective i.e. not suitable for NI-DAQ hardware.

 

What a waste of time. Next time I'll buy either AMD or stick to the proven Intel socket 775 platform.

0 Kudos
Message 2 of 9
(4,539 Views)

That's a beast of a problem. I did some trolling on the internet and found one guy who seems to have found a similar issue with their chipsets, which he talks about here. He's using the H55 chipset, I don't know what socket he's using but he has an i5, so my guess is the chipset is causing the memory error. Not sure what you can do about it, other than getting a different computer like you mentioned.

- Regards,

Beutlich
0 Kudos
Message 3 of 9
(4,528 Views)

 Gustep12,

 

 

I have filed a report of this behavior in CAR 295487 so that our R&D team can look into it further.  Thank you for the thorough and detailed description of the behavior, it greatly helps us investigate these issues.

- Regards,

Beutlich
0 Kudos
Message 4 of 9
(4,503 Views)

Hello Beutlich -

 

I recently spent ~$17,000 on ruggedized systems that are the base for portable EEG systems. The systems run Intel Core 2(duo). We experience the exact same behavior as previously reported, but only when running on batteries and only when the batterly level falls below 50%. Are there any updates or fixes to this issue?

 

Cheers,

Dorian

0 Kudos
Message 5 of 9
(4,326 Views)

Forgot to add that the Intel chipset is Intel 82801G (ICH7 family).

0 Kudos
Message 6 of 9
(4,315 Views)

Hi Doorman,

 

 

Please up grade to the latest DAQ driver if you haven't. If you are still seeing the issue, can you tell us what devices you are running, and what OS? There is an unconfirmed work around where you add a 1ms delay using the Delay start trigger property then it works fine at 2.5MS/s that you could also test out.

 

- Regards,

Beutlich
0 Kudos
Message 7 of 9
(4,304 Views)

Hi Doorman,

 

 

One more thing. The original post mentioned some adverse behavior with AI and AO. Is your application seeing the AI behavior mentioned above or are you encountering the AO error he discussed?

- Regards,

Beutlich
0 Kudos
Message 8 of 9
(4,263 Views)

Hello Beutlich -

 

Sorry for the delay in getting back to you. We are experiencing the AO issue (Error 200016). The error occurs on the same machine with either XP or Win7 installed as the OS (currently running Win7). The device is a PCIe 6251. We run the same program on an older computer on a PCI card without problem, although it also has an older chipset. I installed the new NI-DAQ but we still encounter the same error.

 

I am leaning toward some issue with chip set power management because we only encounter this issue when running on batteries. We have not yet had a chance to try the work-around you mentioned.

0 Kudos
Message 9 of 9
(4,246 Views)