Readout of 2 CRUs with LTU

Dear CRU team,

we want to read out more FECs with 2 CRUs and the LTU. So far, we did setup the system to use the LTU as a trigger and clock source and the patplayer to convert the trigger bit from the LTU to the control pattern for the FECs.

I would expect that the readout starts after the trigger from the LTU is received. So one “arms” the system beforehand, then sends the trigger and the data is dumped to disk. However, if we don’t use daq_start, nothing happens. If we use daq_start, the readout runs immediately and then stops.

Since we need to read out both CRUs synchronously, what is the proper way to do this? Enabling the data taking will not work due to the delay between the execution of the daq_start for 2 CRUs.

Thanks & Cheers,

I think the only way to sync properly the 2 CRUs it will be to use in the correct way the trigger information.
I will disucss with the other but what I can see as a proper list of instruction would be like:

  1. start DMA
  2. ENABLE CRU with daq_start
  3. collect data when the Start Of Continuous trigger is received


Hi Pippo,

well, how do we set it up the correct way? We followed the instructions by Tuan and Roman.

We modified the script:

python -i $1 -c ttc -t pattern --pon-upstream --onu-address 1

This should put the CRU in the mode that the LTU provides the trigger and clock and that the SYNC trigger is translated by the patgen into the SYNC pattern for the FEC.

The patplayer is set up to use trigger-bit 29 (that’s the one for the SYNC trigger according to Roman).

python -i 4:0.0 --idle 0xffffffffffff --sync 0xff0000fffff --reset 0xfffffff00000 --sync-length=32 --reset-length=32 --sync-delay=0  --sync-trg-sel=29 

The rest is the standard procedure for the readout. First, start the DMA:

roc-bench-dma --verbose   --id=05:00.0   --buffer-size=12Mi --superpage-size=1Mi --links=0-7  --no-errorche --bytes=12Mi  --to-file-bin=/tmp/rdo_0-7_001_ltu.bin --loopback=NONE --generator=0

Followed by the DAQ start.

In the LTU GUI we set the SYNC trigger to 1 and send it manually.


Actually, regarding the synchronization of two CRU, we did not yet implement the logic to use the Start of Triggered/Continuous to actually start the run adequately for raw recording detector. We opened an issue and will solve this soon.