Skip to content

Commit 6503e9b

Browse files
committed
Added documentation on terminal connections (especially for clocking)
1 parent e682e80 commit 6503e9b

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

docs/source/devices/ni_daqs.rst

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,53 @@ Note that the counter connection is specified using the logical label `'ctr0'`.
105105
The physical wiring for this configuration would have port0/line0 wired directly to PFI9, with PFI1 being sent to the master pseudoclock retriggering system in case of timeout.
106106
If timeouts are not expected/represent experiment failure, this physical connection can be omitted.
107107

108+
In addition to their external ports, some types of NI DAQ modules (PXI, PXIe, CompactDAQ) feature internal connections between modules on the same chassis.
109+
These connections can be used for sharing clocks or triggers between modules in the same chassis (note: if sufficient clocklines and external inputs are available, it is likely preferable to simply use a unique clockline for each card).
110+
Within labscript, there are two methods for accessing this functionality.
111+
For sharing the clock input signal to other cards, the `clock_mirror_terminal` argument in the constructor can be specified. For example, in a system with two PXI-6733 analog cards in a PXI chassis (which supports 8 internal triggers, named `PXI_TrigN`), the connection table entries are
112+
113+
.. code-block:: python
114+
115+
NI_PXI_6733(name='dev_1',
116+
...,
117+
clock_terminal='/Dev1/PFI0',
118+
clock_mirror_terminal='/Dev1/PXI_Trig0',
119+
MAX_name='Dev1')
120+
121+
NI_PXI_6733(name='dev_2',
122+
...,
123+
clock_terminal='/Dev2/PXI_Trig0',
124+
MAX_name='Dev2')
125+
126+
However, some NI DAQ modules can not be clocked from certain terminal.
127+
To determine this, consult the `Device Routes` tab in NI MAX.
128+
If there is not a `Direct Route` or `Indirect Route` between the clock source and clock destination, the best option is to choose a different `clock_mirror_terminal` if possible.
129+
For some combinations of modules, there will be no pair of triggers linked to all the cards.
130+
To handle this situation, two triggers can be linked using the `connected_terminals` argument.
131+
This argument takes a list of tuples of terminal names, and connects the first terminal to the second terminal.
132+
For example, to share the clock in the previous with an additional PXIe-6535 digital card (which can not use `PXI_Trig0` as a clock), the connection table entries are
133+
134+
.. code-block:: python
135+
136+
NI_PXI_6733(name='dev_1',
137+
...,
138+
clock_terminal='/Dev1/PFI0',
139+
clock_mirror_terminal='/Dev1/PXI_Trig0',
140+
MAX_name='Dev1')
141+
142+
NI_PXI_6733(name='dev_2',
143+
...,
144+
clock_terminal='/Dev2/PXI_Trig0',
145+
MAX_name='Dev2')
146+
147+
NI_PXIe_6535(name='dev_3',
148+
...,
149+
clock_terminal='/Dev3/PXI_Trig7',
150+
MAX_name='Dev3',
151+
connected_terminals=[('/Dev3/PXI_Trig0', '/Dev3/PXI_Trig7')])
152+
153+
In addition to clocking, the `connected_terminals` argument can be used to link output terminals on an NI DAQ module to shared triggers, then link those shared triggers to input terminals of another NI DAQ module in the same chassis.
154+
108155

109156
Detailed Documentation
110157
~~~~~~~~~~~~~~~~~~~~~~

0 commit comments

Comments
 (0)