From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

multidevice multirecord acquisition hsdio

Hi,

I have two PXI-6561 board, and would like to setup them up so that they both can do multirecord acquisition, I would also like so that both cards start the multirecord acquisition at the same time, and also advance to subsequent records at the same time. For a one 6561 board setup, I use a script, which does as follows


wait for ready to start event
generate waveform 1
generate waveform 2 (marker event 0)
repeat 3999
wait for ready to advance event
generate waveform 2 (marker event 1)
end repeat

Marker event 0 and marker event 1 are used to start the multirecord acquisiton and advance the multirecord acquisition, respectively. The triggers are exported to the RSTI lines 0, 1, 2, and 3 for a one board setup.

I am unsure how to scale this to a multi-6561 board setup. This setup is slightly different than the hsdio examples that I have found. Any suggestions would be appreicated,

Thank you in advance,

-Tim
0 Kudos
Message 1 of 7
(4,961 Views)

Hi Tim,

Though you can start both devices at the same time, we currently don't support advancing records on multiple devices at the same time.  Can you please give more details about your setup, connections and what you are trying to accomplish?  Seems like your setup is doing both acquisition and generation since you refer to a script.  We may be able to work out a solution using a single record case.

Thanks
Onome Ufomata
Software Engineer,
High Speed Digital IO

Message 2 of 7
(4,958 Views)
Hi,

We have a setup to test 30 DUTs. The DUT are ICs. One clock signal is exported to the 30 DUTs from one of the pxi 6561 board. Two more 6561 boards are used for acquiring data. We currently only use two boards, becuase we don't have 30 DUTs, but want to build the code so that it will work with three 6561 boards. 6 generation channels are used, two on each board, and ten acquisition channels are used on each board, so that there are a total of 36 active channels. However, only 12 will be used on each pxi 6561 board.

We had some code that worked for the case of a single pxi 6561 board. We used only one generation channel here and 6 acquisition channels. The setup was setup so that there was a script and we used multi record acquisition.

I used two events from multi record acquisition:

1. the ready to start trigger,

2. ready to advance trigger

Two triggers are also used for multi record acquisition

1. start trigger

2. advance trigger

On the generation session,there are two marker events
1. marker event 0

2. marker event 1

and two triggers
1. script trigger 1

2.script trigger 2

Events are exported onto rsti 0 to 3.

marker event 0 on rsti 0
marker event 1 on rsti 1

ready to advance on rsti 2
ready to start on rsti 3

The triggers are on the same lines as the events
start trigger on rsti0
advance trigger on rsti1
script trigger1 on rsti2
script trigger2 on rsti3

Thus in the script, we do as follows,

wait for a ready to start event, which is script trigger 1
generate waveform with marker event 0 to start the multirecord acquisition
repeat 4000
wait for ready to script trigger 2 or ready to advance trigger
generate waveform with marker event 1 to advance the multirecord acquisition
end repeat

The problem is now to scale this to more than one pxi 6561 module, so that the multirecord acquisition starts and advances at the same time for all boards.

Thank you,

-Tim

0 Kudos
Message 3 of 7
(4,949 Views)

Hello Timothy,

You cannot use one script to run three separate boards.  Once you develop the script, it will actually be downloaded to the physical board.  However, there might be a way to synchronize all three boards for your application.  If you export the clock on one of the boards to the other two, then they will be acquiring and generating at the same rate.  The next step is to use triggers to synchronize your boards.  This method will require you to develop a complex script for each board.  Now all three boards will be synchronized because they are using the same clock and they are advancing using the same triggers.

Respectfully,

Rob F
Test Engineer
Condition Measurements
National Instruments
Message 4 of 7
(4,933 Views)
Hi Timothy,
You should be able to accomplish your setup using the NI-TCLK API which is used to tightly synchronize multiple high speed digital devices (within picoseconds).  There are a couple of examples that should be good starting points for what you are trying to accomplish.  These are:
- Multi-Device Dynamic Generation and Acquisition - Source Synchronous (TClk), and
- Dynamic Acquisition of Multiple Records: Don't need this so much since you are already familiar with configuring multi-record acquisitions
 
Using the first example as a starting point, you can synchronize the generation engines on all three devices to generate data simultaneously (i.e. synchronize within picoseconds), as well as synchronize your acquisition as well.  The NI-TClk API synchronizes the start trigger, marker events, exported clocks and data active events on the generation engine, and synchronizes the start and reference triggers on the acquisition engine.  As I mentioned earlier, the advance trigger on the acquisition engine is NOT synchronized by TClk.  So we may or may not have to make some minor changes to your current paradigm.
 
Using the TClk API, only one device (the master) has to receive a trigger.  The TClk API will internally export synchronous triggers to all the other devices.  So you will only need to route the "Ready for start" and "Ready for Advance" events to "Start trigger" and "Script Triggers" on one device only.  (Starting with the example, enclose the code in the "for loop" in a case structure that configures the start and script trigger only for index 0 of the for loop).  You should download the exact same script to all three devices as they will all be receiving an internally routed trigger.
 
Now for the advance trigger.  There are two options for this:
1)  Since the advance trigger is not synchronized with TClk, you are no guarantees that all devices will advance at the same time.  You can get away with not configuring an advance trigger, and let the device advance immediately after acquiring a record.  The reference trigger however is TClk synchronized.  So if you can provide a reference trigger instead and fetch your data relative to the reference trigger.  This will require some change to your program
2)  Since your generation markers are synchronized, and your markers are routed as your advance triggers, then all devices should advance at the same time.  This approach is in line with what you are currently doing and shouldn't require any change to your paradigm.  Take note though that you should not have to TClk your acquisition sessions since you are relying on the markers (which are routed as your start and advance triggers) being synchronized.
 
I think your setup will work just fine with number 2 above.  Number 1 above was to show another way you may be able to accomplish your setup in case 2 doesn't meet your synchronzation requirements due to some omission on my part.
 
Hope this all helps.
 
Onome Ufomata
Software Engineer
High Speed Digital IO
Message 5 of 7
(4,922 Views)
Hi Robert F,

Thank you for your reply. If I export the clock of one PXI-6561 out to the DDC connector on the CLK_OUT LVDS location, and send this to my DUTs, and then route this back to the STROBE input of the two other PXI-6561 boards, and the STROBE input of the PXI-6561 board, do I have to worry about impedance mismatch effects, because I now have the input impedance of the three boards and my DUTs in parallel. If so, is there a lvds driver that I need to put in front of each STROBE input, so that this does not cause a problem.

Thank you,

-Tim
0 Kudos
Message 6 of 7
(4,925 Views)

You will have impedance mismatch, since the three PXI-6561 STROBE inputs are going to be in parallel like you said, giving you an impedance of 33 ohms. If the DUT output is 50 ohm you might try it.  If it does not work then you will need a Bus LVDS, LVDS driver, and it will depend on your DUT device specifications. But at the end what you need to accomplish is be able to source approximately 3.5 mA to each of the Strobe Pins.

Jaime Hoffiz
National Instruments
Product Expert
0 Kudos
Message 7 of 7
(4,877 Views)