Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

PXI-6534 burst mode

I am running a PXI-6534 exclusively in output mode, where port 0 is 16 bits wide and uses the burst handshake, and port 2 is 8 bits wide and uses no handshake. I have a vi that works, and it is based on the LabVIEW example called
Burst Mode Output.vi, where it uses the clock reverse parameter and traditional NI-DAQ vis. I installed NI-DAQ 7.4 and attempted to implement the same functionality using DAQmx functions, but it just does not work. There are two persistent errors:

1. I run Clear Task.vi at the end. When I restart the vi it errors out with "task already running". The only way I can get rid of the task is to quit LabVIEW, even though I have been diligent about running task clear properly.

2. After configuration of the 16 bit task so that I write one 16 bit word in a finite stream, which happens OK, when I run DIO write I get an error such as data output increment is 2. If I configure the task to output 0 words it tells me that the minimum increment is 1. If I configure for 2 words it tells me the first error again.

My channel decl is port0_16, my LabVIEW is version 7.0, and NI-DAQ is 7.4.

The goal is to setup an address on port 2 and then output one 16 bit word on port 0 using burst handshaking. I do not want to use the data buffer in the card.
0 Kudos
Message 1 of 4
(3,518 Views)
The goal is to setup an address on port 2 and then output one 16 bit word on port 0 using burst handshaking. I do not want to use the data buffer in the card.

If you don't want to use the data buffer on the card, why don't you just use static output on the whole 32-bit port? Or are you relying on the control signals that burst handshake offers?

If you are relying on the control signals, you can switch to interrupt-driven data transfer. The minimum transfer requirements are restrictions from the DMA controller. The interrupt-driven data transfer will not have these restrictions. The property to switch to interrupt-driven data transfer is DAQmx Channel : Digital Output : General Properties : Advanced : Data Transfer and Memory : Data Transfer Mechanism. Set the property to "Interrupts."

0 Kudos
Message 2 of 4
(3,513 Views)
I have to rely on the control signals (inherited project for me).

I tried your suggestion and it removed the second problem, Thank You.
I still cannot clear the tasks and restart them, nor does it perform
the actual communication, but that may be another issue.

Will your tri-state idea, expressed in another message on this board work,
via turning around read and write using different tasks, on the 6534?

Is there a way to use the tri-state idea with traditional NI-DAQ?

Thanks again!
0 Kudos
Message 3 of 4
(3,503 Views)
  • I run Clear Task.vi at the end. When I restart the vi it errors out with "task already running". The only way I can get rid of the task is to quit LabVIEW, even though I have been diligent about running task clear properly.

You may want to first try running the Stop Task.vi and then clear that task.  It should allow you to stop the task without having to reboot LabVIEW

Regarding your question about Tri-State capabilities there is a KnowledgeBase online that explains a bit more about where to find information on this.
What Is Wired-OR (Tri-State) and Which DAQ Devices Support It?

This KnowledgeBase should show you how to do that with Traditional DAQ.
Configuring NI 653x Device for Wired-OR Output Mode In LabVIEW

Regards,
0 Kudos
Message 4 of 4
(3,486 Views)