The module configuration files are downloaded by the command getDBfiles, which is documented here: getDBfiles
The configuration files have lots of elements, most of which you should not need to edit. So here, we document only those which might be edited by hand for debugging purposes, during testing and ignore the rest.
Element Attribute Contains --------------------------------------------- module sn serial number active whether the whole module is enabled active or not. should be 1 unless something really goes wrong. select is 0 by default. select = 1 means that the modules will use the redundant TX signal chain. Note that power supplies in DCS should be configured for this redundancy separately. chip id ABCD chip id, (0..11). reads out 128 channels. address hardware address active is 1 by default. unless you want to switch the chip off by setting this to 0. config explained below. mask is all f's unless you want to turn off some channels. remember one f = 1111 -- hence 4 channels are turned on. ffffffff = 32 channels, repeated 4 times: 128 channels.
Be careful here with
- using redundant TX. DCS should also be configured.
- masking off channels and chips using the configuration files. Both mask and active need to be changed.
The last 5 bits of a fully working module's chip config looks like this:
----------------------- I O M E C ----------------------- Chip M0 0 0 0 0 1 Chip S1 0 0 1 0 1 Chip S2 0 0 1 0 1 Chip S3 0 0 1 0 1 Chip S4 0 0 1 0 1 Chip E5 0 0 1 1 1 ----------------------- Chip M6 0 0 0 0 1 Chip S7 0 0 1 0 1 Chip S8 0 0 1 0 1 Chip S9 0 0 1 0 1 Chip S10 0 0 1 0 1 Chip E11 0 0 1 1 1 -----------------------
When a modified module is used (ie. on Barrels 4,5 and 6), the last 5 bits of the configuration register is changed for some chips as follows:
Reading through Link0: (counting consequtively from 0)
normally changed to Chip 5 0 0 1 1 1 1 0 1 0 1 Chip 6 0 0 0 0 1 0 0 1 1 1 Chip 7 0 0 1 0 1 0 1 1 0 1 Chip 11 0 0 1 1 1 0 0 1 0 1
Reading through Link1: (counting consequtively from 0)
normally changed to Chip 0 0 0 0 0 1 0 0 1 1 1 Chip 1 0 0 1 0 1 0 1 1 0 1 Chip 5 0 0 1 1 1 0 0 1 0 1 Chip 11 0 0 1 1 1 1 0 1 0 1
Documentation about the meaning of these bits in the configuration files are at ConfigurationFileComments.
If a modified module was not available (ie. for Barrel3 ) or if there are future failures in reading out links, the following can be used to read out 11 chips through one link.
Reading through Link0, the bits should be changed to: (counting consequtively from 0)
Chip 5 1 0 1 0 1 Chip 6 0 0 0 1 1 THIS CHIP IS NOT READ OUT so why does its config matter? Only change here is master(0) -> slave(1) Chip 7 0 1 1 0 1
Reading through Link1: (counting consequtively from 0)
Chip 0 0 0 0 1 1 THIS CHIP IS NOT READ OUT so why does its config matter? Only change here is master(0) -> slave(1) Chip 1 0 1 1 0 1 Chip 11 1 0 1 0 1
For endcap modules (info from Joost):
To read out and endcap module through Link0 the bits should be changed to: (counting consequtively from 0)
Chip 5 0 0 1 0 1 Chip 6 0 0 1 0 1
To read out and endcap module through Link1 the bits should be changed to: (counting consequtively from 0)
Chip 0 0 0 1 0 1 Chip 11 0 0 1 0 1
From Chris:
I have been told that the barrel inter-chip links are always a sub set of the endcap inter-chip links, so: (*) a barrel chip config will always "work" on an endcap module (*) an endcap chip config with NOT always work on the barrel (*) a barrel chip config used on the endcap may not be optimal
Bit descriptions:
* Edge detect: Hit only registered if preceded by a 0. * Send mask: Copy the mask register into the pipeline * Accumulate: Specify accumulate mode (a 0 falling out of the pipeline won't over-write a 1 in the output buffer) * Input bypass * Output bypass * Master: 0 to specify master chip, 1 to disable master funtion (enables the chip to be used as part of a read out chain from the other side). All slaves have Master=1. * End: * Feedthrough: Normally 1, set to 0 to get clk/2