Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Double Buffered digital output with DAQPad 6016?

Hello,

I would like to generate 8 different pulse train channel using the 8 digital output line of DAQPad-6016 board. Can I use double buffered digital output? My plan is that I prepare digital patterns on the fly, and transfer this buffers with DIG_DB_Transfer function. It works? And how can I specify the update rate of the pattern?

Thanks - George Cs.
0 Kudos
Message 1 of 10
(4,409 Views)
Hello George Cs,
There's a couple things I need to point out.  First, the function that you mention, DIG_DB_Transfer, is a Traditional (Legacy) NI-DAQ function.  Your device, the DAQPad-6016 is supported by NI-DAQmx only.  So you will not be able to use that function.  Secondly, that device only has static digital I/O lines.  This device does not have the capability to perform hardware timed digital I/O functions.  You can produce pulse trains with the onboard counters of the DAQPad-6016, but there are only two counters.
-Alan A.
0 Kudos
Message 2 of 10
(4,399 Views)
Hi Alan,

At present, I'm using PCI-6023E for AI functions with traditional DAQ API. If the USB multifunction daq devices don't support traditional API, then I stay PCI boards. Anyhow, I want to actualize my above mentioned plan because I need at least 4 programmable, realtime digital outputs for pattern generation. What do you think, if I replace this board with a PCI-6024E, can I actualize this function?

- George Cs. -
0 Kudos
Message 3 of 10
(4,391 Views)
I think, I should use 6025E (because it contains the 82C55 DIO control). But how can I control the DO lines?
0 Kudos
Message 4 of 10
(4,390 Views)
 
Well, the 6025E supports handshaking, but that requires some external handshaking signals.  I would recommend using an M Series board and NI-DAQmx.  M Series boards have timed digital I/O capabilities and NI-DAQmx is much easier to program.  Plus, there are examples of timed digital that install with NI-DAQmx!
-Alan A.
0 Kudos
Message 5 of 10
(4,373 Views)
Yes, I surveyed M-series boards, but my problem is that I have developed many other softwares under traditional API for older E-series boards, and I must keep software compatibility. (Some users don't want to upgrade their older configs.) I suppose, daqmx doesn't support older cards, so I forced to stay by traditional API.
Maybe can I solve pattern generation problem if I loop back an internal clock or timer into the card simulating an external handshake signal? (Clock-frequency would be the control of the ouptut signal-sequence's update rate.)
Whether is it a workable solution?

- George Cs. -
0 Kudos
Message 6 of 10
(4,368 Views)
Hello again George,
NI-DAQmx does support some older devices, including E Series.  If you absolutely must use the Traditional (Legacy) NI-DAQ API, then you might want to consider getting a board that will allow you to use the functions you mentioned previously: DIG_DB_Transfer.  I believe the 653x family would work for you (Both the 6533 and 6534 are supported by both NI-DAQmx and Traditional (Legacy) NI-DAQ).  Regardless, if you are writing any new code, you really should consider using NI-DAQmx.
-Alan A.
0 Kudos
Message 7 of 10
(4,355 Views)
Hi Alan,

many thanks for your help!
Only one question about my above mentioned "external handshake signal simulation"-conception: is it a workable solution?
0 Kudos
Message 8 of 10
(4,337 Views)

You can use the 8255 port of a 6025 with handshaking to in essence accomplish hardware timed DIO to a sample clock.  To do this, wire the sample clock up to one of the handshaking signals and leave the other handshaking signal unwired.  Which handshaking signals you need to use depend on the port and direction, but you can check the user manual for more documentation.  The main drawbacks to this approach are that you can't go very fast and there is no way to know if you missed a clock.  You can't go very fast because each clock edge of the handshaking signal generates an interrupt on the device.  This generally limits your throughput to a few kS/s since your computer has to handle and process thousands of interrupts per second.  Also, since there is no FIFO or other circuitry on the board to detect multiple clocks before a read or write occurs, it's possible you will miss samples without receiving any notification from the driver as your sample clock increases in frequency.  Generally this isn't an issue with handshaking because the feedback handshaking signal self regulates the speed of the acquisition.  However, as I stated above, to achieve sample clock like behavior, this signal must be left unconnected.

There are a couple of other boards that are supported under Traditional DAQ you can use that have correlated digital functionality similar to M Series.  The 673x AO Waveform boards and the 6115/6120 S Series boards both have 8 lines of correlated digital I/O.  They aren't MIO boards, but perhaps they will work for you.  These boards along with the 653x high speed digital boards are supported under both Traditional DAQ and DAQmx.

0 Kudos
Message 9 of 10
(4,331 Views)
Very thanks for valuable informations!
I'm hesitating between a 6533 and a 6733, but if I can use digital I/Os of 6733 for pattern generation with internal timer, then I think this card is better choice for me, because there are plus 8 analog outputs that I can use for specific waveform generations later.
0 Kudos
Message 10 of 10
(4,311 Views)