My project:
I am building an automated test equipment with the PCI-6534, NI-DAQ and LabWindows/CVI. I have configured two groups using the NI-DAQ function DIG_Grp_Config:
device=1, group=1, 16-bit group, A and B, input port
device=1, group=2, 16-bit group, C and D, output port
With the functions DIG_Block_PG_Config and DIG_Trigger_Config I select pattern generation, internal request, time base, interval, hardware start trigger, for group 1 and group 2.
I initiate transfer of data using DIG_Block_Out and DIG_Block_In. The PCI-6534 performs simultaneous I/O upon my hardware trigger.
I check for the completion of the transfer using DIG_Block_Check.
My results:
With transfer rate = 5 MHz and
simultaneous I/O of
16 000 000 items DIG_Block_Check returns okay (0).
With transfer rate = 10 MHz and simultaneous I/O of
16 000 000 items DIG_Block_Check of group 2 returns underFlowError (-10843).
With transfer rate = 10 MHz and simultaneous I/O of
1 500 items DIG_Block_Check returns okay (0).
With transfer rate = 20 MHz and simultaneous I/O of
1 500 items DIG_Block_Check of group 2 returns underFlowError (-10843).
With transfer rate = 20 MHz and simultaneous I/O of
16 items DIG_Block_Check returns okay (0).
My questions:
My buffer of output data completely fits into the 32 MB of onboard memory. By default, NI-DAQ loads the SCARAB with the complete data buffer. Therefore the PCI bus is irrelevant to the operation. Why do I get an underflow error? Why is the performance better with 1 500 items?
Thanks Martin