Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

6534 scarab output buffer use

we use the 6534 for contiuous double buffered output of a changing 32 bit digital sequence. The large on board scarab buffer memory causes a delay when the sequence is changed. We can use set_daq_device_info to set ND_FIFO_TRANSFER_COUNT to ND_None, but what we need is a small buffer, bigger than ND_none but smaller than 32 MBytes. Is there a way of finding the acutal on board scarab buffer fill level. We could use that to avoid filling the scarab memory so that we can limit the delay, and still use the buffer.

thanks, Alex
0 Kudos
Message 1 of 2
(3,229 Views)
Alex,

I would say there is an important thing to watch for here. The board/driver behaves differently depending on whether you have enabled regeneration or not.

For Regenerative output operations the driver will fill up the entire on-board memory (Scarab) with the pattern in the host buffer.

Non-Regenerative operations are limited to using only as much on-board memory as the host buffer size. A 50k Sample buffer in the host memory would mean that the board will only use 50KSamples worth of its on-board memory.

As you can see you can limit the amount of on-board memory used by disabling the regeneration of data. This of course makes your application vulnerable to speed issues but guarantees that you'll be able to update your output with much less delay.


KB Online - 2QGEIN85 talks about this.

(search for: +6534 +generated +data)

You will also find KB Online - 2MOESVN5 very useful. It mentions a function call you can use to keep track of how much data has actually been generated by the board, which is related to the on-board memory status (empty/full) for non-regenerative operations.

I hope this helps,

Alejandro Asenjo
National Instruments
Applications Engineer
0 Kudos
Message 2 of 2
(3,229 Views)