Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

6534 - how to improve performance

Hello,
I am using a PXI-6534 card connected to a custom piece of hardware. The 6534 is configured for 32bit, continuous input. (the C code is shown below) We are using Handshake Mode (using pins 2,9 & 3,8). With this mode we seem to be limited to about 7MB/sec. We are trying to increase the data rate to about 20MB/sec.

I am trying to find out if the performace can be improved without changing our hardware. The current design does not have pins 4,5,6 or 7 connected.

If it is not possible to improve the performance without changing our hardware, what would be the recommended mode if we connect pins 4,5,6 and 7,.

Thanks!
Paul



DAQmxCreateTask
("",&m_taskHandle); DAQmxCreateDIChan(m_taskHandle,"Dev3/port0_32","",DAQmx_Val_ChanForAllLines);bool bRet = false; // continue generating samples until stop.  bRet = DAQmxErrChk(DAQmxCfgHandshakingTiming(m_taskHandle,DAQmx_Val_ContSamps,m_numofSampletoRead)); // specify the buffer size bRet &= DAQmxErrChk(DAQmxCfgInputBuffer(m_taskHandleBUFFER_SIZE)); // Handshake event deasserts after the handshake trigger asserts, plus the amount of time specified with Deassert Delay Value. bRet &= DAQmxErrChk(DAQmxSetExportedHshkEventOutputBehavior(m_taskHandleDAQmx_Val_Interlocked)); // No delay for asserting the handshake event after handshake trigger deasserts... bRet &= DAQmxErrChk(DAQmxSetExportedHshkEventDelay(m_taskHandle, 0)); // No delay for handshake cycle... bRet &= DAQmxErrChk(DAQmxSetHshkDelayAfterXfer(m_taskHandle, 0)); // specify the asserted level of the exported handshake event... bRet &= DAQmxErrChk(DAQmxSetExportedHshkEventInterlockedAssertedLvl(m_taskHandleDAQmx_Val_High));  // interlocked Deassert delay value... bRet &= DAQmxErrChk(DAQmxSetExportedHshkEventInterlockedDeassertDelay(m_taskHandle, 0)); //Active high for handshake event pulse polarity... bRet &= DAQmxErrChk(DAQmxSetExportedHshkEventPulsePolarity(m_taskHandleDAQmx_Val_ActiveHigh)); // the handshake event pulse width... bRet &= DAQmxErrChk(DAQmxSetExportedHshkEventPulseWidth(m_taskHandle, 0));
0 Kudos
Message 1 of 3
(5,587 Views)

Hi,

 

Could you provide a little more information about the device you are interfacing with?  I'm curious if it would be possible to use burst handshaking for your application (http://zone.ni.com/reference/en-XX/help/371893D-01/6536and6537help/burst_timing_type/).

 

James K.
National Instruments
Applications Engineer
0 Kudos
Message 2 of 3
(5,556 Views)

Hi James,

 

Thanks for offering to help.  Regarding the device we are interfacing to...this is an internally developed peices of harware.  The data is generated by an FGPA so we have some flexibility. 

 

Unfortunately, not all pins are connected to the FPGA.  (pins 4,5,6,7 are not connected)  My understanding is that the burst mode protocol requires these connections.

 

I have since been reading that if we use the Sample Clock timing mode then we can acheive simialr performace (20Mhz depending on cable lenght)  And this uses pins 2,3,9,10 which we do have connected.

 

Can you confirmt this.  I can provide as much detail as necessary on the board (scnematics etc) if we move this off line. 

 

Pau

0 Kudos
Message 3 of 3
(5,550 Views)