LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

M 6259 FIFO analog out

Yes, you are right. My doubt was because of buffer length 10000 as default value, which can’t be because of the 8191 on board limit.

I would like to use 8192 byte of FIFO, but it look like that these is impossible, because buffer length is 8191 which is strange – 8191 is (2^13)-1 why that -1 ??
0 Kudos
Message 11 of 13
(1,334 Views)
Oldi,

The FIFO size is 16-bit wide and 8191 deep. You will be able to store a maximum of 8191 data samples on the FIFO.

Thanks,
Lesley
0 Kudos
Message 12 of 13
(1,330 Views)
Oldi,

There are two separate issues here. One issue is whether to use regeneration and the other is whether to use only the onboard buffer (FIFO). It is possible to use regeneration with either a buffer in the driver or only with the onboard buffer.

From what I can tell, the default analog output configuration is to use regeneration unless you specify otherwise and to use only the onboard buffer unless you write more data than will fit in the onboard buffer. If you write more data than will fit in the onboard buffer, I think the driver will automatically use a buffer and transfer data from the driver buffer to the onboard buffer as needed.

As mentioned before, you can explicitly turn on regeneration as follows:
DAQmxSetWriteAttribute (taskHandle, DAQmx_Write_RegenMode, DAQmx_Val_AllowRegen);

You can explicitly specify to *only* use the onboard buffer as follows:
DAQmxSetChanAttribute (taskHandle, "", DAQmx_AO_UseOnlyOnBrdMem, TRUE);

You can query the size of the onboard memory as follows:
DAQmxGetBufferAttribute (taskHandle, DAQmx_Buf_Output_OnbrdBufSize, &bufferSize);

If you specify to only use the onboard buffer and you try to write more data than will fit in the onboard buffer, you will get an error.

I hope that helps.

-Jeff
Message 13 of 13
(1,316 Views)