Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

6534 doesn't set halfready flag after 2 seconds

My goal is to use pattern generated I/O with double buffered input and onboard or pc memory looping given various output buffer sizes.

The output buffer contains 16bit addresses and another device will respond with 16bit data sample for each address. Incoming data uses external REQ2 latching and outgoing data uses internal REQ latching. Incoming data is double buffered. I tried double buffering on and off for output - makes no difference.

The problem is that results are intermittent. I have testcases ranging from consistent failure to intermittent failure.

If I don't use onboard looping, I get missing points at the beginning of the output buffer (meaning that the data going out doesn't start at the beginning of th
e buffer) when the output buffer has about 144 words (16bit points). If I increase the number of points in the outbuffer, things work better.

If I use onboard looping, data is always correct for a couple of DIG_DB_HalfReady() calls, but after that, the halfready flag isn't set anymore even though data is still flowing. There are cases were everything just
seems to work ok, but I can get it to fail by stopping/starting the program.

Data rates are quite low, i.e. 24 2byte samples/s

I enabled onboard looping and disabled the memory preload using Set_DAQ_Device_Info.

I don't get any error messages from nidaq.

NI Software : Borland C++/Builder version 6
NI Hardware : Digital Input/Output device PCI-6534
Driver Version : 7.1
OS : Windows XP
0 Kudos
Message 1 of 3
(3,352 Views)
Hello:

First of all, NI-DAQ 7.0 and later does not support the Borland / C++ compiler. NI-DAQ 6.9.3 is the latest DAQ driver that is compatible with Borland C++. Please start by uninstalling NI-DAQ 7.1 and installing NI-DAQ 6.9.3. If the problem still occurs, please continue...

You should be able to do buffered pattern input and output at the same time without losing samples, etc. Will the data you need to output fit on the on-board memory so you can just regenerate from there? If so, I think that is the best bet for that. What speed are you inputting and outputting data? Is it as the same rate (same signal to both REQ lines?)...

Good Luck!

Sincerely,
Brooks B
Applications Engineer
National Instruments
0 Kudos
Message 2 of 3
(3,352 Views)
Hi,

The website that showed the recommended version of s/w for 6534 did not clearly state the fact about borland not being supported - that's something you could have done more clearly IMHO.

I had quite a bit of trouble uninstalling 7.1 (some kind of uninstaller issue) and reinstalling 6.9.3. Now I will have to experiment with the onboard looping since I've never tried this in 6.9.3. only in 7.1.

The outgoing data will fit into the onboard memory, so I'm hoping that the onboard looping will fix the intermittent issue with the data corruption. The transfer speeds are not very high, about 1KHz and the rate is the same for both input and output.

Why did NI drop support for Borland compiler after 6.9.3?
0 Kudos
Message 3 of 3
(3,352 Views)