mqdc create name ?option value...?
mqdc config name option value?..?
mqdc cget name ?option?
The MQDC32 is a 32 channel charge sensing ADC. The mqdc allows users to create and use modules that support it.
-base vme-addressConfigures the module's base address. This must match the base address set in the module's rotary switches. If not explicitly configured (not recommended), this defaults to 0
-id id-8bits
This programs the unique 8 bit value that will appear in the data
to identify it came from this module. Each module should be given
a unique -id value. If not explicitly configured,
(not recommended)
this defaults to 0
-timestamp enabled | disabled The module allows a timestamp or event sequence number to be put in the trailer for data from the module. If this option is not explicitly configured, it defaults to disabled which results in event sequence numbers being placed in the data.
-usethresholds enabled | disabled
If enabled, threshold values, programmed via the
-threshold option are used to zero suppress the data from
the module. If not explicitly configured, this defaults to
enabled During testing it may be useful to turn this to
disabled in order to check the actual pedestal values so that
you know how to set the thresholds.
-thresholds 32-element-list
Provides a list of 32 thresholds, one for each channel. List element 0
is the threshold for channel 0 and so on. Each threshold must be in the
range 0-0x1fff. If -usethresholds is enabled, channels
with conversions below their thresholds are suppressed from the data
returned for an event. If not configured, the default value is a list of
32 zeroes which, effectively, turns off zero suppression when
-usethresholds is enabled.
-ipl IRQ-levelIf useing the module to trigger a list with interrupts, this should be programmed with the interrupt priority level the module should use when making an interrupt request on the backplane. The default, if not configured is 0 which is suitable for use with the FRIB mvlc readout system. An value of zero disables interrupts. Values of 1-7 enable interrupts and define the IRQ line on which th module will request an interrupt.
-vector interrupt-status-idIf interrupts are being used, this configures the status id (vector) the module will put on the bus in response to an interruprt acknowledge (IACK). Legal values are 0-255. If not explicitly configured, this will default to 0.
-irqthreshold wordsIf interrupts are used, this determines the minimum number of words that must be buffered in the FIFO before an interrupt is requested. Valid values are between 0 and 0xffff. If not configured, this defaults to 1 which means that, if interrupts are enabled, the mdoule will interrupt as soon as any data hits the FIFO.
-multievent off | on | limited
Determines the multi-event readout mode. The default, if not configured
is off. If limited is used then
each read will return at most -maxtransfers words.
on implies that a read, if large enough will transfer
all of the data in the FIFO.
-maxtransfers words
When -multievent is limited,
this determines the maximum number of words that can be transferred
from the FIFO in a single read. Valid values 0-0xffff and the
default, if not explicitly programmed is 1.
-countevents on | offIf not configured, this defaults to off. If on, one of the module registers, that counts the amount of data present will count events, not words. Note that at this point, that has no effect on readout as the transfer size is not determined by that register.
-skipberr on | offIf not configured, this defaults to off. That value is normally correct for FRIB. Off, causes the module to terminate transfers, when there is no more data with a BERR. If enabled, the transfer will transfer all of the requested words but an EOB word will indicate when the rest of the data are not meaningful. See the desription of register 0x6036 in the MQDC32 manual for more information about EOB.
-bankoffsets two-offset-listProvides a shift of the data from the module by as much as +/- 1000. The value consists of a shift value for each bank of 16 channels. A value of 128 represents a shift of 0. If not programmed, the default is a two element list with values 128 for both elements, that is zero shift for both banks.
-gatemode common | separateThe module can be run with a common gate or as an effective pair of 16 channel modules. Each 16 channel module group is a bank. In common gate mode all 32 channels share a single gate and a read of the module will only return one packet of data. In separate gate mode, each bank has a separate gate and the module will return two packets of data per event, one for each bank. If not configured, this defaults to common.
-gatelimits two-element-listProvides limits on the gate widts for each bank. By default, if not configured, this defaults to two elements of 255 which does not limit the gate. For more information about this and a table of values and the gate limits they provide, see the description of register 0x6050 and the next page in MQDC32 manual
-exptrigdelays two-element-listSets the experiment trigger delay. this value is in the range 0-0x3fff. If not programmed, this is a list of two zeroes. For more on this see the section: Delayed gating with experiment trigger in MQDC32 manual.
-inputcoupling0 -inputcoupling1 AC | DCSets the module's input coupling for bank 0 and 1 respectively. If not programmed, this will default to AC coupling.
-pulser on | off
Enables the test pulser. By default, if not programmed, this
is off See, however
-pulseramp to set the pulser amplitude.
-pulseramp amplitude
This sets the test pulser amplitude, when it is enabled via
-pulser By default the value is 32 if not
configured. This should result in conversions at bin 2000.
See register 0x6072 in the
MQDC32 manual.
-ecltermination on | offControls the ECL control bus termination. If the ECL Control lines are bussed, only the last module on the bus should be terminated. If on, the default, the terminators for the module's ECL control bus are enabled. This is only suitable for individually cabled ECL control bus cables.
-ecltiming enabled | disabled
Recall that the module can place a timstamp int the event.
The clock that increments the timestamp is
either the VME bus 16MHz clock or an external clock
that can either be the gate1 input on the ECL bus or the
Gate1 NIM input (but not both).
If this parameters is enabled, the ECL gate1 input is programmed
to provide a clock input and the FC input a timestamp reset.
Note that the -timingsource must be set to
external for this to mean anything. See, as well
-nimtiming and -timingsource
-nimtiming enabled | disabled
If enabled, the NIM Gate1 input can be the source of the
timestamp clock. See the discussion of timing in
-ecltiming above.
-nimbusy busy | rcbus | full | overthreshold
Programs the meaning of the Busy output. If busy, then the output is asserted
when the the module is busy. Note that in individually gated mode, this is asserted
only when both banks are busy. rcbus allows the module to control Mesytec
modules that support the Mesytec control bus. While we have support software
for several modules we recommend, instead the use of Mesycontrol software
along with an MRCC as the firmware in the controlled modules changes
too rapidly for us to keep up with controls requirements. full indicates the
module multi event buffer is full and overthreshold that the module's FIFO
has more words than the -irqthreshold.
-timingsource external | vme
Sets the source of the timestamp clock. vme, the default if not configured,
uses the VME backplane 16MHz clock to increment the timestamp counter.
external requires that either -nimtiming or
-ecltiming be enabled, (but not both), in which case,
they provide the clock.
-timingdivisor divisorThis value is a scaledown factor for the timestamp clock. Note that 0 means 65536 and values can be in the range 0-0xffff. If not configured, this defaults to 1.
-resetlogic never | begin_run | extern_oneshotDetermines when the internal counters, including the timestamp are reset to zero. If never the counters run continously from power up. If begin_run (the default if not configured), the counters are cleared as the run is starting. Note that no attempt is made to synchronize this clear with the clear of other modules. In fact, there will be skew from with the modules earlier in the stack being cleared first. If extern_oneshot an external clear is used. Note that in the case the module is in a madchain modules programmed for begin_run clear have timestamps synchronously cleared but that will not synchronize with the clears of modules not in the same chain or not capable of being in chains. The most releable way to get a common clear is to use an external clear signal.
-multlowerlimit0 multiplicityIf the banks are run with a common gate, this represents the lower limit of the multiplicity filter for all channels. If separately, this represents the lower multiplicity limit for bank 0 (channels 0-15). If not configured, the default is 0.
-multlowerlimit1 multiplicityIF the banks are run with separate gates, this is the lower limit of the multiplicity filter for bank 1 (channels 16-31). If common gates are used, this is ignored. If not configured, this parameter is set to 0.
-multupperlimit0 -multupperlimit1 multiplicity
See the previous two options. These parameter set the upper multiplicity limit for the
multiplicity filter. As with the low limits, -multupperlimit0 is used
when the banks are not split with separate gates. The default values, if not
configured are 32 for -multupperlimit0 and
16 for -multupperlimit1. If I were using the module and running in
split gates, I would probably set -multupperlimit0 to 16 just to be safe.