Teensy MiniCom Serial Interface¶
The Teensy controller is a small "Arduino" device that allows communication
to the LAr ASIC chips in the cold volume via their single byte control
registers. The lariat-daq02 machine talks to the Teensy over a serial USB
connection. To access this connection interactively, log into lariat-daq02
The device does not respond with a prompt until after you type a command.
Useful commands are:
|List the ASIC configuration bytes in the Teensy's memory|
|help||List available commands|
|teston||Turn ON the ASIC pseudo-analog pulser|
|testoff||Turn OFF the pulser|
|edit <hex config byte> <start channel> <end channel>||Change the configuration byte for one or more ASICs, channels in decimal|
|shift||Push the configuration bytes out to the ASICs via a "shift register" mechanism|
The ASICs are currently numbered 1 to 480 in the Teensy, which correspond to CAEN V1740
readout channels 0 to 479. (This may be fixed in the future) Note that one
may examine the Teensy's configuration byte memory, but one cannot read back the
actual configuration seen by the ASICs. No error checking is done on the "shift"
Some useful edit commands are:
|edit BC 1 480||Enable test pulser input on all ASICs|
|edit 3C 1 480||Disable test pulser inputs|
The configuration byte is always in hexadecimal, while the channel numbers
are in decimal.
Note that RunControl reconfigures the ASICs at the beginning of the
run, so any interactive commands will be overwritten. See next section.
Teensy Configuration File¶
The Teensy/ASIC configuration file can be found at:
The fields are:
|<enableReadout>||0 or 1 to talk to the Teensy and LArASICs, note that no data are actually read back|
|<deviceName>||The Teensy's Linux USB device name, normally /dev/ttyACM0, but the 0 index can change|
|<channelScan>||0 or 1, to enable the special one-by-one channel scanning run, pulsing each ASIC one a time|
|<pulserOn>||0 or 1, whether to turn on the pulser, teston or testoff as shown above|
|<collection>||Configuration section for the Configuration plane, channels 1 to 240|
|<induction>||Induction plane configuration section, channels 241 to 480|
|<gain>||Amplifier gain, 0 to 3, normally 3, values [4.7, 14, 7.8, 25] mv/fC|
|<filter>||Filter peak time, 0 to 3, normally 3, values [ 1.0, 0.5, 3.0, 2.0 ] micro-sec|
|<dcOffset>||Value 0 or 1 (0=900 mV, 1=200 mV) Normally 1 for collection, 0 for induction|
|<testChannel>||Specify which SINGLE channel should have its pulser input enabled|
When running with the special channelScan=1, the trigger table in
V1495.config is overridden by periodic software triggers.
The channel scan is a special run type which runs the enabled testChannel
from 1 to 480, and issuing a software trigger after each change of
configuration. In this case, LARASIC.config is used as the "base"
configuration, but modified by testChannel incrementing each event.
For each fired software trigger, there will be one LARASICFragment data
block describing which channel should be firing.