trimictrl
Section: USER COMMANDS (1)
Updated: January 2, 2014
Index
Return to Main Contents
NAME
trimictrl - Setup the TRIMI (TRIVA mimic) connections of a VULOM/TRIDI.
SYNOPSIS
trimictrl --addr=A [file.rbt[,comment.txt]] [OPTIONS]
DESCRIPTION
The TRIMI section of a TRLO II-running VULOM/TRIDI requires setup of
which front-panel in- and output to use. This program performs that.
OPTIONS
- --addr=A
-
Select the VME address A of the module to handle.
The address is given in hexadecimal.
(The default is 2.)
- --help
-
Display a short help text and exit.
- --show
-
List available in- & outputs. See further under I/O.
- --print-config
-
Print current status and connections.
- --link-status
-
Continuously monitor the status of the serial trigger link.
(Abort with Ctrl+C)
- sendmsg=[N|0xHEX]
-
Send a side-band one-byte message with the value given on the serial
trigger link.
- --send-ident[=MSG]
-
Continuously send identification side-band messages on the serial
trigger link.
Useful to identify a source of serial trigger link.
Use at the transmitting end.
- --recv-ident
-
Continuously look for identification side-band messages on the serial
trigger link.
Useful to identify a source of serial trigger link.
Use at the receiving end.
CONFIGURATION OPTIONS
- link_period=N
-
Set the serial output baud (symbol) length to N clock cycles (usually 10 ns)
of the transmitter.
With short electrical cables (low signal dispersion), a value of 8 works.
(The receiver has with testing been found to intrinsically not be able to
reliably lock on signals with a symbol length shorter than 6.75 clock cycles.)
- fast_dt=N
-
Cover with local deadtime for N clock cycles, to bridge the time
until dead-time is seen from slaves.
The deadtime receive circuit will hold a local deadtime until the serial
trigger transmitter has sent the trigger.
A slave TRIMI will set its deadtime output at the latest when it has
fully received the trigger.
It will take a certain time for the serial trigger to reach the slave, and
an similar for the deadtime signal to reach the master.
With signal speeds of 5 ns/m, a minimum choice would be twice that.
The deadtime receive circuit has features to help detect glitches in
the deadtimes received.
Most often, there will be no deadtime hole, as the master
processor has not finished processing until the deadtime from the slaves
have appeared.
If that is not the case however, the usual effect of a glitch is that the
master manage to issue a trigger while a slave is still processing the
previous. One trigger will then be missed, and a mismatch will be reported
on the following trigger.
CONNECTION OPTIONS
The TRIMI can use any front-panel in- or output connector for each
signal needed or produced.
For signals where several signals are possible, the list of used connection
can also be incrementally enlarged or reduced by using += or -=
instead of =. Multiple adjecent connectors of the same kind can be
specified as CONN(a:b) instead of CONN(a),CONN(a+1),...,CONN(b).
Enclose arguments with connector names in quotation marks, lest your
shell thinks the parentheses are to be interpreted.
- encoded_in=CONN
-
Use the specified CONNector (with the three following inputs, i.e.
in a bunch of four) as source for the encoded trigger input. (Equivalent to
T1-4 (ECL IN 1-4) for a TRIVA). Only indices divisible by four can be used.
When operated together with the TRLO II of the same module as the TRIMI,
specify TRLO_ENCODED_TRIG to use the encoded trigger output of the TRLO II
trigger box.
- serial_out=CONN[,CONN]
-
Send the serial trigger messages to the given output CONNectors.
The serial trigger message must either here or with other electronics
be fanned out to all slave modules.
When operated as a slave, the TRIMI will pass on the received serial
trigger signal unchanged (and unclocked!) to the given outputs.
- serial_in=CONN
-
Receive serial trigger messages from input CONN.
- dt_out=CONN[,CONN]
-
Send deadtime to the given output CONNectors.
For a slave module, the signal must be sent to the master TRIMI.
(Or a TRIMI which has relayed the serial trigger link signal if
itself operating as a slave.)
For a master module, the deadtime should be given to the trigger logics.
When interacting directly with the TRLO II of the same module as the TRIMI,
the deadtime is available in the internal TRLO II multiplexer,
as TRIMI_TDT.
- dt_in=CONN[,CONN]
-
Use the input CONNectors for the deadtime receive circuit.
The deadtime from each slave must be included here, either directly or
with some other fan-in module.
(Otherwise, the slave might loose triggers and become desyncronised
with the master TRIMI.)
With direct connections, the additional monitoring facilities of the
deadtime receive circuit can be used.
I/O
Output signals are logically ORed together with the TRLO II output signals.
Take care.
The names of the connectors are stored in a RAM block of the module FPGA
firmware, and read by trimictrl on startup.
They can be listed be the --show option.
Connector | VULOM | TRIDI | Comment
|
|
|
|
|
CTRL_IN | | 1:8 | Bus connections.
|
TRIG_BUS_IN | | 1:8 | Bus connections.
|
NIM_IN | | 1:8 |
|
ECL_IN | 1:16 | 1:8 |
|
ECL_IO_IN | 1:8 | |
|
LEMO_IN | 1:2 | |
|
| | |
|
CTRL_OUT | | 1:8 | Bus connections.
|
| | | i.e. in see out.
|
TRIG_BUS_OUT | | 1:8 | Bus connections.
|
NIM_OUT | | 1:8 |
|
ECL_OUT | 1:16 | |
|
ECL_IO_OUT | 1:8 | |
|
LEMO_OUT | 1:2 | |
|
MULTI-LEVEL OPERATION
The TRIMI serial trigger link can be operated in a tree-like fashion:
Connect the serial outputs of a slave module to further slaves, and
the returned deadtime from those slaves to the deadtime receive circuit
of the first module.
To the DAQ software running on all involved processors, the behaviour
will be as for a normal (flat) trigger link.
EXIT STATUS
0 after successfully operation, 1 on failure.
EXAMPLES
Note the necessity to enclose arguments with connector names in
quotation marks, to prevent the shell from doing Bad Things (TM) to the
parentheses.
- Take triggers from TRLO II in a module at VME address 0x02.
-
trimictrl --addr=2 encoded_in=TRLO_ENCODED_TRIG
- Together with the above, set the TRLO II to generate triggers and respect the TRIMI deadtime:
-
trloctrl --addr=2 --clear-setup \
"period(1)=10us" "TRIG_PENDING[1]=PULSER(1)" \
"DEADTIME_IN(1)=TRIMI_TDT"
- For a master module with an external trigger logic, encoded triggers from ECL_IO_IN(1):4. With the trigger link on first LEMO out, and deadtime return on first lemo in:
-
trimictrl "encoded_in=ECL_IO_IN(1)" "serial_out=LEMO_OUT(1)" \
"dt_in=LEMO_IN(1)" link_period=8 fast_dt=40
- For a corresponding slave module:
-
trimictrl "serial_in=LEMO_IN(1)" "dt_out=LEMO_OUT(1)"
AUTHOR
Håkan T. Johansson <f96hajo@chalmers.se>
SEE ALSO
trloctrl(1),
vulomflash(1)
BUGS
The TRLO II part signal multiplexer setup registers are cleared to 0 value
on startup, meaning in particular that all module outputs propagate the
signal of the first module input.
Fix by doing:
trloctrl --addr=X --clear-setup.
Without a CPLD upgrade, a VOLUM or TRIDI module will not propagate
interrupt acknowledge responses. The TRIMI can still be operated in
polled mode.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- CONFIGURATION OPTIONS
-
- CONNECTION OPTIONS
-
- I/O
-
- MULTI-LEVEL OPERATION
-
- EXIT STATUS
-
- EXAMPLES
-
- AUTHOR
-
- SEE ALSO
-
- BUGS
-
This document was created by
man2html,
using the manual pages.
Time: 19:42:12 GMT, November 08, 2024