Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

High speed pattern generation from PXI-6534

Greetings,
 
I am using a PXI-6534 card to generate 16 bit output patterns at a 20 Mhz cycle time. If I use the standard DIO Config, DIO Write, & DIO Start VIs, I occasionally get a -10843 error from the Digital Buffer Write VI. Apparently, even though the 6534 card has 32 Mb of on-board memory, the system tries to write the data to the card through the PCI bus while it generates the pattern.
 
Will setting the "Scarabs Preload Enable" parameter on between the DIO Config and DIO Write VIs force the use of the on-board memory? The examples I have seen where the on-board memory is used are generating patterns continuously. I just want to run the pattern 1 time out of the on-board memory at a 20 Mhz rate, without having to worry about other activity on the PCI bus interferring with the pattern generation.
 
Thanks,
 
Bob
0 Kudos
Message 1 of 4
(3,700 Views)

Hello Bob,

By default, the the on-board memory of the 6534 is used.  The "Scarabs Preload Enable" parameter is normally used when filling the memory will take too much time in a time constrained application.  You could create a finite task for your pattern generation. 

Another suggestion would be to switch to the NI-DAQmx driver, which offers greater flexibility and higher performance than the Traditional NI-DAQ driver.  You can download the NI-DAQmx driver from the Driver and Updates page. 

Here are a couple tutorials that should help get your going:
Transitions from Traditional NI-DAQ to NI-DAQmx
What are the Terminology Changes in NI-DAQmx?

Most people find it MUCH easier to develop your program in NI-DAQmx!  You'll be saving yourself a certain headache Smiley Wink

Regards,

Micaela N
National Instruments
0 Kudos
Message 2 of 4
(3,681 Views)

Micaela,

If I  use the standard DIO Config, DIO Write, & DIO Start VIs, when does the pattern data get loaded into the on-board memory?

There is a Knowledge Base article titled "Performance Benchmarks For The High-Speed Digital I/O - NI-653x". This article states that "NIDAQ reports a -10843 error if the PCI bus does not transfer data into the onboard memory fast enough to maintain the predetermined output rate, resulting in an onboard memory underflow." This would seem to indicate that the data is being transfered into the on-board memory at the same time the pattern is being generated, using the memory as a FIFO buffer.

Do I need to use the Advanced Digital I/O VIs?

Thanks,

Bob

0 Kudos
Message 3 of 4
(3,672 Views)
Hello Bob,

If you turn on Context Help (Ctrl-H) in LabVIEW and hover over the DIO Write VI, it explains that the DIO Write VI calls the Digital Buffer Write VI to write to the internal transfer buffer, and the internal buffer is the memory of the 6534.

If you are preforming a finite DO task that the total samples can be held within one buffer, NI-DAQ will not transfer data into the FIFO, on board memory, while the task is generating data.  The -10843 error can occur if you are writing more data than the buffer can hold, in either a finite or continuous task, and it is being generated faster than it is written to the buffer.

Is your task finite or continuous?  And how many samples are you writing to the buffer?

Regards,
Micaela N
National Instruments
0 Kudos
Message 4 of 4
(3,650 Views)