sis330x -- Driver for SIS3300/1 FADC


package require SIS330XDriver

sis3300 name ?options?

name configure options

name cget option

addtcldriver name


Provides support for the SIS 3300/3301 flash adc module. This is a Tcl driver, hence the need for a package require command to load the driver and a addtcldriver command to connect a driver instance with the framework.

The driver support restricting the readout to a subset of the channels. See the -groupsread option for more information in OPTIONS below.

The structure of data read from the SIS3300/3301 is shown below (all elements are 32 bit integers unless otherwise indicated):

|  Group Mask                   | (16 bits)  (1)
|  Group size                   |            (2)
| Group data                    |
|          ...                  |            (3)

The low order four bits of this 16 bit data word describe which ADC groups are present. If bit 0 is set, group 1 is present, if bit 1 is set group 2 and so on.

Group data that follow are in order of low numbered group to high numbered group for each group whose bit is set in this group mask.

The group mask is followed by group data for each bit set in the mask. This field contains the number of longwords of group data that follows. The size is not self-inclusive.
Group data is the raw ADC trace data from the data buffer. The format of these longwords is shown in section 4.34 of the SIS manual.


-base base-address

Module base address in VME.

-clocksource clocksource

Module clock source. This must be a value chosen from one of the following strings: 100Mhz, 50Mhz, 25Mhz, 12.5Mhz, 6.25Mhz, 3.125Mhz FrontPanel P2Connector. The clock source determines the sampling rate of the ADC (or when data are clocked in in the case of HiRA Mode.

-startdelay boolean

If true the start delay is enabled and. See -startdelayticks to see how this delay is controlled. Note that the start delay determines when the first sample is saved relative to the start.

-startdelayticks integer

Number of samples in the start delay. If -startdelay is false, this parameter is not used.

-stopdelay boolean

If true, the stop delay is enabled. See -stopdelayticks to set the actual stop delay.


This is the number of samples in the stop delay. If -stopdelay is true, when a stop occurs, data will be taken for this number of samples more. Note that this value is completely ignored if -stopdelay is false.

-stoptrigger boolean

If true the module stop is the trigger. This pretty much has to be used with -stopdelay and -stopdelayticks

-gatemode boolean

Module is or is not in gate mode. In gate mode the module is started from the falling edge of the gate input and stopped by the rising edge of that signal.

-lemostartstop boolean

Start/Stop come from lemo inputs. This is enabled by default.

-p2startstop boolean

Backplane signals on the p2 connector provide start/stop. Note that this and lemostartstop are not mutually exlusive.

-hirarandomclock boolean

If true, HiRA random clock mode is enabled. HiRA Random clock is normally used with the Washington University Chip board readouts when the readout is done with an XLM other than the XLM-VV when the analog information is collected by an SIS 3301 board.

-randomclock boolean

If true front panel provides a random clock with a symmetric pulse shape See section2.5.3 of the module documentation.

-samplesize enum value

Size of sample buffers. This is one of the following text strings: 128K, 16K, 4K, 2K, 1K, 512, 256 128.

-wrap boolean

Buffers are in wrap mode (normally used if start/stop is longer than the samplesize. Once sampling runs off the end of the buffer sampling continues writing at the low memory location (wraps). Please note that at present, the readout method used does not support this. If you have a need to use this mode, please contact the NSCL software development group to arrange further development.

-thresholdslt boolean

If true, channel thresholds represent a level _below_ which the conversion must fall. This is normally used with negative going pulses since the data are represented as half-scale offset unsigned integers.

-thresholds 8 element int list

Threshold values for all 8 channels. This parameter, if provided is an 8 element integer list of threshold values. See as well thresholdslt which can modify how this value is interpreted.

-groupsread 4 element bool list

List of flags indicating which groups of ADCs will be read. The module is organized into 4 groups of 2 ADCs each). The manual refers to them as groups 1,2,3,4. The first list element allows or disables the readout of group 1 and so on.