Difference between revisions of "SBS DAQ: GEM TEDF BigBite setup"

From Hall A Wiki
Jump to: navigation, search
(MPD/SSP/APV Config files)
 
(24 intermediate revisions by 4 users not shown)
Line 13: Line 13:
 
:- Scripts locations:
 
:- Scripts locations:
 
:* '''daq@tedbbdaq'''
 
:* '''daq@tedbbdaq'''
::- <tt>~/gem_scripts/setupCODA.bash</tt>
+
::- <tt>~/sbs-onl/coda_scripts/</tt>
::- <tt>~/gem_scripts/coda_scripts/</tt>
+
 
:* '''sbs-onl@intelbbgem'''  
 
:* '''sbs-onl@intelbbgem'''  
 
::- <tt>~/coda_scripts/</tt>
 
::- <tt>~/coda_scripts/</tt>
Line 23: Line 22:
 
* Execute a function call on the specified remote Host
 
* Execute a function call on the specified remote Host
 
:- Run without arguments for usage
 
:- Run without arguments for usage
 +
==== Usage for setting trigger source (BBGEM only) ====
 +
* TSINPUT
 +
<code>remex ROC1 "rocSetTriggerSource(0)"</code>
 +
* Random Pulser
 +
<code>remex ROC1 "rocSetTriggerSource(1)"</code>
 +
* Fixed Pulser
 +
<code>remex ROC1 "rocSetTriggerSource(2)"</code>
  
 
=== <tt>tiLibTest</tt> ===
 
=== <tt>tiLibTest</tt> ===
Line 29: Line 35:
 
:- Puts the local TI in master mode (with no slaves).
 
:- Puts the local TI in master mode (with no slaves).
 
:- Accepts triggers either from Front Panel TSinputs or Internal Random Pulser
 
:- Accepts triggers either from Front Panel TSinputs or Internal Random Pulser
 +
 +
=== <tt>mpdStatus</tt> ===
 +
<code>$LINUXVME/mpd/libsrc/test/mpdStatus <mpd slot number></code>
 +
* Show the status of MPD at slot <code><mpd slot number></code>
 +
:- Run without <code><mpd slot number></code> to scan all slots.
 +
 +
=== <tt>sspMpdStatus</tt> ===
 +
<code>$LINUXVME/ssp/test/sspMpdStatus <ssp slot number></code>
 +
* Show the status of SSP at slot <code><sp slot number></code>, as well as their fiber connected MPDs
 +
:- Run without <code><ssp slot number></code> to scan all slots.
  
 
=== <tt>i2c_test</tt>===
 
=== <tt>i2c_test</tt>===
Line 35: Line 51:
 
:- Does the same initialization that is done in <code>mpd_list.c:rocDownload()</code>
 
:- Does the same initialization that is done in <code>mpd_list.c:rocDownload()</code>
 
:- Also attempts the readback of the APV registers with <code>mpdApvStatus(0xffff)</code>
 
:- Also attempts the readback of the APV registers with <code>mpdApvStatus(0xffff)</code>
 +
 +
=== <tt>mpdI2CScan</tt>===
 +
<code>$LINUXVME/mpd/libsrc/test/mpdI2CScan <mpd slot number></code>
 +
* Scan i2c addresses for any APVs from MPD in specified slot number
 +
:- Configure those found APVs with some default register values
 +
:- Display the APV registers
 +
 +
=== <tt>sspMpdInit</tt>===
 +
<code>~/linuxvme/ssp/test/sspMpdInit</code>
 +
* Same function as ssp_mpd_setup() in the readout list without running CODA
  
 
=== <tt>sspFirmwareUpdate</tt>===
 
=== <tt>sspFirmwareUpdate</tt>===
Line 59: Line 85:
 
* Modify the value of specified size of the specified VME address.
 
* Modify the value of specified size of the specified VME address.
 
:- Run without arguments for usage
 
:- Run without arguments for usage
 +
 +
=== <tt>sudo systemctl restart platform</tt> ===
 +
<code>sudo systemctl restart platform</code>
 +
* Restart the CODA 3 platform systemd service.
 +
:- Can be run from any account in the 'coda' group on tedbbdaq
 +
::- bbshower, bbhodo, bbgem, daq
  
 
== MPD/SSP/APV Config files ==
 
== MPD/SSP/APV Config files ==
Line 76: Line 108:
  
 
:* Programs useful for debugging config file format
 
:* Programs useful for debugging config file format
::- <tt>$LINUXVME/mpd/libsrc/test/mpdConfigTest</tt>
+
::- <tt>$LINUXVME/mpd/libsrc/test/mpdConfigTest <config filename></tt>
::- <tt>$LINUXVME/mpd/libsrc/test/sspMpdConfigTest</tt>
+
::- <tt>$LINUXVME/mpd/libsrc/test/sspMpdConfigTest <config filename></tt>
  
 
== Superbigbite Logbook Entries ==
 
== Superbigbite Logbook Entries ==
Line 110: Line 142:
 
source ${HOME}/gem_scripts/setupCODA3.bash
 
source ${HOME}/gem_scripts/setupCODA3.bash
 
</pre>
 
</pre>
:::- <tt>~/gem_scripts/setupCODA.bash</tt>
+
:::- <tt>~/gem_scripts/setupCODA3.bash</tt>
  
 
==== intelbbgem ====
 
==== intelbbgem ====
Line 150: Line 182:
 
::* Slot 21: TI
 
::* Slot 21: TI
  
== Stuff to finish ==
+
==== bbgemvxs ====
 +
VXS crate with intelbbgem and SSP
 +
 
 +
==== bbhodovme ====
 +
*VME crate with intelbbhodo, two 1190s and two v792s
 +
* can power cycle through web interface
 +
 
 +
==== intelbbhodo ====
 +
* Power cycle bbhodo VXS crate. Connect to crate through local webbrowser as bbhodovme
 +
** In needed username: private and psd: private.
 +
* readout list
 +
<pre>
 +
The readout lists are in
 +
    sbs-onl@intelbbhodo:~/rol/
 +
with bbhodo_list.c as the one used in the current BBHODO_Readout config.
 +
The Makefile will build a readout list for using a TI_MASTER
 +
(bbhodo_list.so) and TI_SLAVE (bbhodo_slave_list.so) with:
 +
    make bbhodo_list.so bbhodo_slave_list.so
 +
or to compile all
 +
    make
 +
</pre>
  
=== Fix MPD Crate VME Controller Diskless OS ===
+
=== intelbbshower ===
::- Should be fixed with new host name
+
* Readout list sbs-onl@intelbbshower:~/rol/bb_shower
 +
* F1 tdc installed.
 +
** To read or write the F1 config file: sbs-onl@intelbbshower:~/cfg/f1config_{make,show}
 +
** The readout list is currently using ~/cfg/intelbbshower_f1tdc.cfg
 +
* Four F250 ADCs installed.
 +
** Configuration file ~/cfg/intelbbshower.cnf
 +
** Set so all Offset = 1200ns, width = 796ns, NSB = 12ns, NSA = 96ns
  
=== Check MPD library x86_64 compilation ===
+
=VTP crate=
::- Run a program that configures and gets the status of the MPDs in the crate.
+
==intelsbsgem3==
 +
129.57.36.159 XVR16 for VXS VTP crate
  
=== Update MPD firmware ===
+
==bbgemvxs2==
::- program with <tt>Fpga_4_Fiber_200811.jic</tt>
+
129.57.37.140 VXS crate
  
=== Check SSP-MPD Fiber connection ===
+
==intelsbsgem2==
::- Run a program that configures and gets the status of the MPDs in the crate (from the SSP)
+
129.57.37.139 XVR16 for 3rd VXS VTP crate
  
=== Verify config files ===
+
==sbsts==
::- Need to input the APV - MPD map into the MPD/APV config files.
+
Serial portserver
 +
port 4 VTP serial
  
=== Setup data output path ===
+
==MPD in slot 14==
::- Find where we can put the data.
+
  
===Setup CODA3 environment for MPD crate ? ===
+
one APV connected
::- May be useful for debugging problems with MPD/APVs without the SSP crate.
+
apv:
 +
  (
 +
  { adc = 0; i2c = 0; }, // j0m0y1 - rigidx5 (J0-M12: Left-Y-5slot-BP)
 +
  { adc = 1; i2c = 1; },
 +
  { adc = 2; i2c = 2; }
 +
//  { adc = 3; i2c = 3; },
 +
//{ adc = 4; i2c = 4; },
 +
    );

Latest revision as of 10:49, 29 April 2021

CODA scripts

Frontend scripts to use on tedbbdaq

startCoda

  • executes each CODA component (platform, rcgui, PEB, all ROCs) in a separate xterm

restartStuff

  • kills and restarts the PEB and ROCs. The xterms are not killed with this script.

kcoda

  • kills all CODA components

coda_scripts

- github page
- Scripts locations:
  • daq@tedbbdaq
- ~/sbs-onl/coda_scripts/
  • sbs-onl@intelbbgem
- ~/coda_scripts/

Useful stand-alone programs

remex

$CODA_BIN/remex <remexHost> <function call>

  • Execute a function call on the specified remote Host
- Run without arguments for usage

Usage for setting trigger source (BBGEM only)

  • TSINPUT

remex ROC1 "rocSetTriggerSource(0)"

  • Random Pulser

remex ROC1 "rocSetTriggerSource(1)"

  • Fixed Pulser

remex ROC1 "rocSetTriggerSource(2)"

tiLibTest

$CODA_VME/ti/test/tiLibTest <TI slot number>

  • Test triggering capabilities of the local TI.
- Puts the local TI in master mode (with no slaves).
- Accepts triggers either from Front Panel TSinputs or Internal Random Pulser

mpdStatus

$LINUXVME/mpd/libsrc/test/mpdStatus <mpd slot number>

  • Show the status of MPD at slot <mpd slot number>
- Run without <mpd slot number> to scan all slots.

sspMpdStatus

$LINUXVME/ssp/test/sspMpdStatus <ssp slot number>

  • Show the status of SSP at slot <sp slot number>, as well as their fiber connected MPDs
- Run without <ssp slot number> to scan all slots.

i2c_test

$LINUXVME/mpd/libsrc/test/i2c_test <mpd slot number>

  • Test the initialization and configuration of the APVs in the specified MPD.
- Does the same initialization that is done in mpd_list.c:rocDownload()
- Also attempts the readback of the APV registers with mpdApvStatus(0xffff)

mpdI2CScan

$LINUXVME/mpd/libsrc/test/mpdI2CScan <mpd slot number>

  • Scan i2c addresses for any APVs from MPD in specified slot number
- Configure those found APVs with some default register values
- Display the APV registers

sspMpdInit

~/linuxvme/ssp/test/sspMpdInit

  • Same function as ssp_mpd_setup() in the readout list without running CODA

sspFirmwareUpdate

$LINUXVME/ssp/firmware/sspFirmwareUpdate <firmware .bin file> <SSP VME ADDRESS>

  • Update SSP at specified VME address.

ProgramEpcs

$LINUXVME/mpd/libsrc/firmware/ProgramEpcs -s <mpd_vme_slot> -v <firmware .jic file>

  • Update MPD firmware at specified VME address.
- Described in https://hallaweb.jlab.org/dvcslog/SBS/251

RunUserFpga

$LINUXVME/mpd/libsrc/firmware/RunUserFpga -s <mpd_vme_slot> (-f)

  • Change between user and factory FPGA image.
- Described in https://hallaweb.jlab.org/dvcslog/SBS/251

vme_display

$CODA_VME_BIN/vme_display <VME Address> <read size in bytes>

  • Display the read value of specified size from the specified VME address.
- Run without arguments for usage

vme_modmem

$CODA_VME_BIN/vme_modmem <VME Address> <read/write size in bytes>

  • Modify the value of specified size of the specified VME address.
- Run without arguments for usage

sudo systemctl restart platform

sudo systemctl restart platform

  • Restart the CODA 3 platform systemd service.
- Can be run from any account in the 'coda' group on tedbbdaq
- bbshower, bbhodo, bbgem, daq

MPD/SSP/APV Config files

  • Config files for configuration of APVs and MPD / SSP can be found in
- sbs-onl@intelbbgem:~/bbgem-cfg/
  • The SSP readout list (mpd5_ssp_list.so) uses
- sbs-onl@intelbbgem:~/bbgem-cfg/ssp_config.txt
- sbs-onl@intelbbgem:~/bbgem-cfg/ssp_apv_default.txt
  • The MPD readout list (mpd_list.so, mpd_slave_list.so) uses
- sbs-onl@intelbbgem:~/bbgem-cfg/mpd_config.txt
- sbs-onl@intelbbgem:~/bbgem-cfg/mpd_apv_default.txt
  • Both use common files to configure the MPDs/APVs given the MPD's slot number. For example, slot 5 MPD:
- sbs-onl@intelbbgem:~/bbgem-cfg/bbgem_crate_1/MPD_vmeSlot_5.cfg
  • Programs useful for debugging config file format
- $LINUXVME/mpd/libsrc/test/mpdConfigTest <config filename>
- $LINUXVME/mpd/libsrc/test/sspMpdConfigTest <config filename>

Superbigbite Logbook Entries

  • Entry script:
- daq@tedbbdaq:~/gem_scripts/MakeEntry.sh %(rt) <START/END> %(rn)
- DAQNAME=BBGEM
- Executed by PEB1 before Prestart and after End

Machines in use

atedf3

  • NFS server, tftp server for VME Controllers
  • CODA and hardware drivers : /data/disk2/SBS/coda/3.10_arm
  • sbs-onl home directory : /data/disk2/home/sbs-onl
  • Read-only permissions for all machines in 36 subnet
  • Read-Write permissions for a few select machines / vme controllers

tedbbdaq

  • DAQ Computer (RunControl, Event Building)
  • Mount atedf3:/data/disk2/SBS to /mnt/SBS
- Uses autofs. /etc/auto.SBS should be included in a line in /etc/auto.master
  • User: daq
  • CODA (3.10) : ~/coda3/3.10_arm/
- ~/.bashrc
# CODA 3 setup : SESSION=bbgem 01dec2020
export CODA=/mnt/SBS/coda/3.10_arm
export SESSION=bbgem
export EXPID=tedbbdaq
source ${HOME}/gem_scripts/setupCODA3.bash
- ~/gem_scripts/setupCODA3.bash

intelbbgem

  • XVR16 VME Controller
  • User: sbs-onl
  • home directory : atedf3:/data/disk2/home/sbs-onl/bbgem
  • CODA3 environment setup:
- ~/.bashrc
# CODA 3 using coda_scripts : SESSION=bbgem 01dec2020
export SESSION=bbgem
export EXPID=tedbbdaq
source ${HOME}/coda_scripts/setupCODA3.bash
- ~/coda_scripts/setupCODA.bash
  • Slots 6 : SSP - initial firmware: fe_ssp_mpd_v1_8_aug11_2020.bin
  • Slot 21: TI
  • LINUXVME (mpd,ssp)
- ~/linuxvme/
# LINUXVME for mpd and ssp
export LINUXVME=${HOME}/linuxvme
export LINUXVME_INC=${HOME}/linuxvme/include
export LINUXVME_LIB=${HOME}/linuxvme/${MACHINE}/lib
export LINUXVME_BIN=${HOME}/linuxvme/${MACHINE}/bin
export LD_LIBRARY_PATH=.:${LINUXVME_LIB}:${LD_LIBRARY_PATH}
export PATH=.:${LINUXVME_BIN}:${PATH}
  • readout lists
- ~/rol/

hatsv48

  • XVB601 VME Controller
  • 'daq' login
  • Slots 2-8, 10-16: MPDs
  • Slot 21: TI

bbgemvxs

VXS crate with intelbbgem and SSP

bbhodovme

  • VME crate with intelbbhodo, two 1190s and two v792s
  • can power cycle through web interface

intelbbhodo

  • Power cycle bbhodo VXS crate. Connect to crate through local webbrowser as bbhodovme
    • In needed username: private and psd: private.
  • readout list
The readout lists are in
    sbs-onl@intelbbhodo:~/rol/
with bbhodo_list.c as the one used in the current BBHODO_Readout config.
The Makefile will build a readout list for using a TI_MASTER
(bbhodo_list.so) and TI_SLAVE (bbhodo_slave_list.so) with:
    make bbhodo_list.so bbhodo_slave_list.so
or to compile all
    make

intelbbshower

  • Readout list sbs-onl@intelbbshower:~/rol/bb_shower
  • F1 tdc installed.
    • To read or write the F1 config file: sbs-onl@intelbbshower:~/cfg/f1config_{make,show}
    • The readout list is currently using ~/cfg/intelbbshower_f1tdc.cfg
  • Four F250 ADCs installed.
    • Configuration file ~/cfg/intelbbshower.cnf
    • Set so all Offset = 1200ns, width = 796ns, NSB = 12ns, NSA = 96ns

VTP crate

intelsbsgem3

129.57.36.159 XVR16 for VXS VTP crate

bbgemvxs2

129.57.37.140 VXS crate

intelsbsgem2

129.57.37.139 XVR16 for 3rd VXS VTP crate

sbsts

Serial portserver port 4 VTP serial

MPD in slot 14

one APV connected apv:

 (
 { adc = 0; i2c = 0; }, // j0m0y1 - rigidx5 (J0-M12: Left-Y-5slot-BP)
 { adc = 1; i2c = 1; },
 { adc = 2; i2c = 2; }

// { adc = 3; i2c = 3; },

//{ adc = 4; i2c = 4; },
   );