Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

How to use the PCI-6534 onboard memory ?

Excuse me for this superficial question, but I wasn't able to retrieve from ni.com the information I am asking about. The PCI-6534 differs from PCI-6533 because of a large onboard memory (32 Mb per DIO group ?). Which NI-DAQ functions allow me to organize this memory ? I mean, it would be great to access this memory during an handshaked Input operation like a FIFO, and read its content while it is filled up by a peripheral device. Is this possible programmatically ? How to check the empty- and full-memory conditions ? If the above is impossible, how NI-DAQ suppose to offer benefits from this memory ?
Thanks in advance,
Marco
0 Kudos
Message 1 of 22
(6,715 Views)
NI-DAQ always uses the memory on the 6534 as a FIFO between the Digital I/O and the DMA controller. (The only exception is when you enable PATTERN_GENERATION_LOOP_ENABLE to make the device output the same buffer of data from on-board memory repeatedly.)

If you are doing continuous handshaking input, the device will acquire data any time there is space in on-board memory available. At the same time, the DMA channel will move data from on-board memory to your PC memory buffer as long as there is data to be transferred and space in your buffer.

When the on-board memory fills up, the device pauses its handshaking until more space becomes available. When the PC memory buffer fills up, the DMA channel pauses until you read more data out of your buffer.

You can still use th
e functions DIG_DB_Half_Ready, DIG_Block_Check, and DIG_DB_Transfer to monitor your data transfer.

I hope this answers your question.
Message 2 of 22
(6,692 Views)

To double check that I'm reading this correctly...  will someone confirm the following?

There are no specific methods for accessing the 6534 onboard memory.  For data transfer/monitoring, there are no differences programmatically between the 6533 and 6534, no new functions, etc.  All of the onboard memory actions are for the board's internal use, only.

0 Kudos
Message 3 of 22
(6,502 Views)
Hi MES-

There can actually be significant differences between programming for a 6534 versus the essentially FIFO-less 6533.  The last post in this thread was from 5 years ago and discussed the Traditional (Legacy) NI-DAQ driver, so let's assume now that you're using the newer NI-DAQmx driver.

The existence of deep onboard memory (aka SCARAB) on the 6534 means that you can operate at the full speed of the device for a much longer period of time than with a 6533.  This is true for a few reasons.  First, as the original response indicated, in the case of a continuous double-buffered operation, the onboard FIFO will be used to buffer samples if there is no PCI bus bandwidth available at the time.  This is a significant advantage over the 6533 because the 16 sample buffer on that device will overflow quickly when using a high acquisition rate if the bus becomes temporarily unavailable.  This advantage will be handled seamlessly by the NI-DAQmx driver, just as the Traditional NI-DAQ driver would have done previously.

In the case of a finite acquisition less than 32Msamples you can make use of the FIFO to acquire all samples onto the card independently of PCI bus activity and then later transfer the data across after the time-critical acquisition period.  This behavior is controlled by adjusting the DAQmx Channel Property "Data Transfer Request Condition" to only transfer samples from the board's FIFO when an acquisition has completed.  This is done in C using the "DAQmxSetDIDataXferReqCond(TaskHandle taskHandle, const char channel[], int32 data);" property, or in LabVIEW as shown here:


Hopefully this helps-

Message Edited by Tom W [DE] on 02-14-2006 08:46 PM

Tom W
National Instruments
Message 4 of 22
(6,500 Views)

Thanks a lot for the information, you've been a great help.

Chances are pretty great that I'll be using traditional Ni-daq, though (no real choice in the matter).  I'm guessing that there are no methods like the one you mentioned in traditional that will transfer data after the aquisition?

0 Kudos
Message 5 of 22
(6,490 Views)

Two more additions to the above post (apparently we can't edit our post after some time?)

Is there a manual with that information in it?  I have looked through several and haven't found that method listed.                                          ..

If it helps, I'm currently using labwindows 7.0 and will probably be using labwindows 8.0 soon with traditional ni-daq only for a 6534 board.

Message Edited by MES on 02-15-2006 11:41 AM

Message Edited by MES on 02-15-2006 11:41 AM

0 Kudos
Message 6 of 22
(6,489 Views)

The NI 6534 documentation is contained in two separate documents, depending on which version of NI-DAQ you are using.

NI 653X User Manual for Traditional NI-DAQ (Legacy)
NI 6533/6534 Devices for NI-DAQmx Help

Addditional programming information can be found in the the NI-DAQ Traditional (Legacy) or NI-DAQmx documentation for the ADE you are using.

0 Kudos
Message 7 of 22
(6,467 Views)
I have been through those files and searched through ni.com/manuals as well as google and through manuals on my machine.  Nowhere can I find any reference to the method supplied in the earlier post.  Are we supposed to just know what you named all of the methods, or is there a public document somewhere that provides this information?
0 Kudos
Message 8 of 22
(6,462 Views)

Hi MES-

NI-DAQmx gives you enhanced control over the device memory that is not available in Traditional NI-DAQ in a lot of cases.  The "behind the scenes" double buffered approach of Traditional NI-DAQ will still work well in most applications, but if you can switch to NI-DAQmx I can assure you that you will enjoy better performance and more explicit control of the device (as in this case).

The two manuals that cajacobs posted are a great starting point, as are the examples that ship with the NI-DAQ/NI-DAQmx drivers for CVI.

Hopefully this helps-

Tom W
National Instruments
0 Kudos
Message 9 of 22
(6,445 Views)

Tom

Are you saying that the only way to get a Daqmx C reference is with the delivery of the part?  I won't be receiving it for several weeks, and I feel that it would answer a lot of my questions to have this information.  I found the 6534 user manual some time ago and have been through it a couple times.  Searching ni.com/manuals or any other part of ni.com hasn't helped at all to get the information I want.

I have very little experience with this type of programming, and I've never used labwindows, much less Daqmx.  It's extremely frustrating to know that help documents, namely an updated C reference for 6534 daqmx, isn't easily available from the people who are producing these products.  I'm sure everything from your perspective looks fine, but I'm still going to be lost.

0 Kudos
Message 10 of 22
(6,440 Views)