Module Testing basics
Contact
fravera@fnalNOSPAMPLEASE.gov,
jennetd@fnalNOSPAMPLEASE.gov,
izoi@fnalNOSPAMPLEASE.gov with questions
For the
BurnIn Box instructions:
BurnInBox
For details specific to 2S or PS modules check the respective Twiki (TO BE UPDATED).
Configure the FC7
Go to the Ph2_ACF area or install a new Ph2_ACF version.
We are using the Dev branch of
https://gitlab.cern.ch/cms_tk_ph2/Ph2_ACF
.
Check the dedicate website for updated installation instructions but briefly the main steps to be executed in the lenny01 Programming directory are:
$> git clone --recurse-submodules https://gitlab.cern.ch/cms_tk_ph2/Ph2_ACF.git # N.B. to syncrhonize only the submodule: `git submodule sync; git submodule update --init --recursive --remote`
$> cd Ph2_ACF
$> source setup.sh
$> mkdir build
$> cd build
$> cmake3 .. # add -DCMAKE_BUILD_TYPE=Debug if you plan to use gdb for debugging
cd /home/modtest/Programming/Ph2_ACF # change the directory accordingly
source setup.sh
Make sure you can ping the FC7. If you don't know the IP address check in the /etc/ethers file.
ping 192.168.0.12
If not already don, insert the correct machine and IP address in the xml file located in the settings directory that you are going to use.
<connection id="board" uri="localhost://192.168.0.12:50001" address_table="file://settings/address_tables/uDTC_OT_address_table.xml" />
List firmware on SD card:
[modtest@lenny01 Ph2_ACF]$ fpgaconfig -c settings/MyXML.xml -l
To load a new firmware: The firmware are stored in
https://udtc-ot-firmware.web.cern.ch/
. Be sure the version you are downloading is compatible with the code version you are using, the module type, the CIC version etc.
[modtest@lenny01 Ph2_ACF_LpGBT]$ fpgaconfig -c settings/MyXML.xml -f PATH_TO_FILE -i FW_NICKNAME
[modtest@lenny01 Ph2_ACF_LpGBT]$ fpgaconfig -c settings/MyXML.xml -i FW_NICKNAME
To load an existing firmware just use the second line above.
Blue light on FC7 blinks at 1Hz if firmware loaded properly.
Run a test
cd /home/modtest/Programming/Ph2_ACF
source setup.sh
Be sure that the settings/MyXML.xml has the right CIC version, module type, master patch, lpgbt version etc etc in it.
The first time you run on a module (assuming it has the LV on) you need to reconfigure it:
ot_module_test -f settings/MyXML.xml --reconfigure
Run the usual noise test (if you already reconfigured the module you can remove the --reconfigure option to be faster):
ot_module_test -f settings/MyXML.xml --reconfigure -b -m -a -t
The options are:
- -b to run in batch → no canvases popping up
- -t to do the trimming
- -a to run on all channels at once (important for PS modules to speed up the measurement)
- -m to measure the noise with the s-curves
A descritpion of what to check in the terminal printout and output fiel to be added.
To run an injection test (to properly see the noise also disable the s-curve fit option):
1) Check the latency, enlarge the
LatencyRange
in the xml e.g. to 150
ot_module_test -f settings/2S_Module_KITleft.xml --scanL1
and check the latency map to find the value to put in the xml (199)
2) In the xml: set the latency of each hybrid to the value found above (199), uncomment the line with
PedeNoisePulseAmplitude
3) run with the usal command
ot_module_test -f settings/MyXML.xml --reconfigure -m
Trouble shooting
- Things to check while reconfiguring: all chips fine? both CICs configured properly?
- Things to check while trimming: different chips have different (but similar) pedestal values, pedestal should not be zero nor the maximum available value. Is the pedestal distribution narrow?
- Things to check while measuring the noise: Are the scurve reasonable? Is the noise as expected?
- LpGBT not locking: reload the firmware, check the optical fiber connection, clean the optical fiber, if switching lpgbt version or similar changes try to reconfigure the cdce (REMEMBER to set it back to 0 afterwards)
- Symptom of a wrong firmware
D19cOpticalInterface::Read -- Corrupted CPB reply
terminate called after throwing an instance of 'std::runtime_error'
what(): D19cOpticalInterface::Read -- Corrupted CPB reply
Aborted (core dumped)
- You possibly have the wrong
trigger_source
in the xml. For the trimming & noise measurement it should be 3.
[...]
D19cL1ReadoutInterface timed-out while waiting for trigger FSM...[ReadoutAttempt#9]
02.12.2022 16:05:58: |140527162002880|I| D19cL1ReadoutInterface::ReadEvents.. took 10 attempts to readout L1 data.
02.12.2022 16:05:58: |140527162002880|I| Failed to ReadNEvents
terminate called after throwing an instance of 'Exception'
what(): Failed to ReadNEvents....
Aborted (core dumped)