The connectivity test is a collection of short subtests,
intended to verify all aspects of
module connectivity (Type0 cable, FE & MCC wirebonds) in a minimum
of time, but with the constraint that limited or even no cooling may be
available.
The test now works both
with SURF boards and MAC cards (SURF is faster, more convenient)
The current version takes 3-4
minutes per
module (depends on CPU power). Most of this time is spent running
the digital injection scan, the other sub-tests are very fast.
Only one FE chip is configured at a time. The resulting
power consumption is low enough that we have been able to test disk
sectors without cooling.
A test-summary file is produced for each module. More detailed
results from the register tests are also written out. (The digital and
analog inject scans also write out files, which you should feel free to
ignore - it's just not so easy to disable this deep in the scan
machinery of TurboDAQ.)
Before running the test:
You should start the test with LV and HV off. The test will turn on the
module power if it's safe, and turn it back off when
the test is finished. Please
do load the proper module configuration in the SURF or
static-configuration panel. Choose the proper power panel settings for
your
setup. If you're using a SURF system, then the LV supply type should be
"current SURF channel". This is automatically selected whenever you
switch from MAC to SURF mode.
The individual subtests are described below. For some of the
tests we explain what they verify, since it may not be obvious. If you
notice that (or wonder if) we forgot to test some aspect of module
connectivity, please let us know.
Measurement of NTC temperature: checks that a somewhat
sensible temperature can be read back. This verifies the connection to
the NTC, but also that the connector on the Type0 cable is plugged in
the correct way. (If the connector is plugged in wrong, it is fatal to
turn on the HV.)
Measurement of sensor current using HV bulk supply:
MAC mode: the current from the bulk supply is taken to be
the sensor current.
SURF mode. There may be several modules feeding of the same
HV
supply. The bulk supply is turned on, then the SURF's HV enable
for the current module is turned on and off, and the bulk supply
current measured in both states. The difference is taken to be the
module's sensor current.
measure IDDA, IDDD. Rough cut to make sure LV power is
properly connected.
TPLL phase is automatically adjusted. An MCC receiver test
is run for each phase possible phase setting. The mean of the passing
phase settings
is chosen.
The current config file is resaved with the new phase
setting.
MCC tests in 40 and 80 MHz dual modes.
Global and pixel register tests. The module is reset after
testing each
chip, to keep power low. Subtest will fail if there's a global register
failure, or if a chip has several columns with pixel register failures.
Digital inject scan, 100 hits, one chip at a time, on mask
step only. Resets
module after each chip, to keep power low. Subtest will fail if there
are too many pixels that don't return 100 hits.
Temperature stability: Checks that temperature stays below
limit during the register test and digital inject scans.
IDDA after configuration: Checks that IDDA increases after
each chip has been configured. This verifies that VDDA is actually
connected to each chip.
IDDA after reset: After scanning each chip, checks that
IDDA drops back down to normal low-current state after a module reset
is issued. This verifies that SYNC is connected to each chip.
Analog inject scan, chip 0 only, 1 mask step. Perform the
scan twice, with HV on and off, and compare noise. Cut on noise
difference. If HV off scan does not gives sensible noise value, but the
HV on scan does, then the module passes.
You can choose in the connectivity panel which subtests you
would like
to include. For instance, you may want to run only one of the two HV
tests: If you have a nice HV supply that allows reliable current
measurement in TurboDAQ, there's no need to also run the HV
on/off analog
inject scan, which is about 25 seconds slower.
When using a SURF board setup, you can automatically run the
connectivity test on all connected modules, consecutively. There are
LEDs in the SURF panel that summarize the result.
The user can select in the connectivity panel what should
happen when a sub-test fails. The choices are A) ignore the failure and
keep going, B) skip to the next module, C) stop. In the two
latter modes, HV and LV to the failing module is turned off when a
subtest fails.
We've done a rough tuning of the cuts for each sub-test. The
current values seem to work well for warm modules at LBL, but they may
need to be adjusted to suit everyone. If a cut keeps failing, and you
know the failing module to be fine, then you may try to edit the
relevant cut by hand in the file "connectivity.h." (Recompile
afterwards.) It's quite easy: the
cuts are a bunch of #define statements at the top of the file. If you
find that a change is needed, please email us the cuts that work for
you, and we can improve the defaults in the next TurboDAQ releases.
Temperature and IDDA cuts can be adjusted right in the
connectivity panel.
Improvements to SURF panel
new surf config file format saves additional settings:
config files selected for each module
TPCC channel for each surfboard
SURF boards identified by name, not ID number
(Turbodaq 6.5 is backwards compatible: can still read your
older surf config
files)
temperature reset button for each SURF board
summary LEDs for connectivity test
button to start connectivity test for individual or all
connected modules
Macro panel: ability to automatically continue primlist execution
after
a scan failure: The user can choose TurboDAQ's behavior when a
primitive in a primlist fails: A)abort the primlist execution B)going
to
next module C)ignore the failure. Warning: This feature has not been
fully tested :)
Some default settings in TurboDAQ (Surf board voltages, SURF/MAC
mode upon startup etc) scan be changed in the file preferences.h. You
need to recompile for changes to take effect.
bug
fixes / improvements
SURF mode: Module's I,V,T now all properly logged into
pictmon file during scans (I,V buggy in previous version)
SURF mode: Some improvements to the "current SURF
channel" LV power supply type
No longer issue the annoying warning before executing
turbodaq_startup.primlist
Please
address TurboDAQ comments, complaints, and requests to Sven Vahsen.