spec

Software for Diffraction

ketek

Ketek DPP1 MCA-type device

DESCRIPTION

The Ketek DPP1 is a digital pulse processor used in instruments such as the GE Measurement & Control Meteor0D energy dispersive X-ray detector.

The DPP1 connects to the computer via a USB interface but appears as a serial device to spec. On modern Linux distributions the serial-to-USB driver will load automatically. On Mac OSX, the VCP driver available at ftdichip.com must be installed.

The controller is selected on the hardware configuration editor Devices screen along the lines of:

MCA-like       DEVICE   ADDR  <>MODE                  <>TYPE
 0  YES  /dev/ttyUSB0     <>   19200     Ketek DPP1 (Serial)

Note: Ketek DPP2 models (launched fall 2015) use a different DPP module with an entirely different communications protocol and syntax. spec supports these devices using the xia_server included with spec's server hardware facility. See the server_hdw help file.

FUNCTIONS

The standard MCA commands supported by spec are described in the mca help file. Of the standard functions, the Ketek DPP1 MCA supports mca_get(), but not mca_put(). Of the standard mca_par() options, "info", "chans", "max_chans", "max_channels", "disable", "auto_run", "soft_preset", "auto_clear", "native_type", "run", "halt" and "clear" are included in spec's support for the DPP1.

The "auto_clear" mode is on by default.

Options specific to the DPP1 are described below.

mca_par("gain_index" [, v])

With the optional argument, sets the gain to the value associated with the gain index v, as follows:

                         
  v Gain   v Gain   v Gain   v Gain  
  0 0   4 10.6   8 5.3   12 3.6  
  1 42.4   5 8.5   9 4.7   13 3.3  
  2 21.2   6 7.1   10 4.2   14 3.0  
  3 14.1   7 6.0   11 3.9   15 2.8  

Returns the current index. Note, zero gain switches the MCA off.

According to the DPP technical specifications, the digital gain "determines the slope of the system transfer characteristic." Larger values shift "the spectrum lines right." The "appropriate gain should be chosen in accordance with the maximum energy measured and user preferences." The gain values in the above table are "the approximate charge sensitivity (CS) in [eV/channel]."

mca_par("gain" [, value])
With the optional argument, sets the gain to the closet value to the argument value. With or without the argument, returns the current setting.
mca_par("shaping" [, v])

Sets or returns the shaping parameter, a value from 0 to 15, that selects shaping constants as given in the following table:

         
    Peaking Analog Differential
  v Time Equivalent Nonlinearity
    (usec) (usec) (%)
  0 1.32 0.44 1.0
  1 2.1 0.7 0.7
  2 2.9 1 0.5
  3 3.72 1.25 0.4
  4 4.5 1.5 0.3
  5 5.3 1.8 0.26
  6 6.1 2 0.23
  7 6.9 2.3 0.2
  8 7.7 2.6 0.18
  9 8.52 2.85 0.17
  10 9.3 3.1 0.15
  11 10.1 3.4 0.14
  12 10.9 3.65 0.13
  13 11.7 3.9 0.12
  14 12.5 4.2 0.11
  15 13.3 4.5 0.1

According to the DPP technical specifications, "the shaped pulse has duration equal to half of the equivalent shaping time pulse duration for semi-Gaussian analog shaper. Due to the shaping function chosen, the peaking time equals the pulse duration. Digitally shaped pulses terminate in a single clock cycle." In addition, "Due to the built in sliding scale correction applied during each individual pulse shaping, the [differential nonlinearity] depends on the number of clock cycles needed to shape the pulse."

mca_par("threshold" [, value])

Sets or returns the threshold, which is a value from 0 to 15. The DPP technical specifications state:

The DPP detects pulses that have amplitude above certain value settable by the threshold. There are 16 equidistant thresholds. The threshold should be set just above the noise level. If set lower, the dead time increases. If set higher than needed, the energy resolution may decrease and lower energy pulses shall not be detected. The needed value should be chosen experimentally; however in most cases threshold value of 4 - 6 is fine.
mca_par("preset" [, value])
With the optional argument, sets the preset time to value, in seconds. The preset time resolution is 0.256 seconds. With or without the argument, returns the rounded preset time.
mca_par("preset_mode" [, value])
Sets or returns the current preset mode. The argument can be given as a string or a number. Valid strings are "real" (or 0) and "live" (or 1). The return value will be 0 or 1.
mca_par("live")
Sets live-time preset mode.
mca_par("real")
Sets real-time preset mode.
mca_par("icr")
Returns the input count rate.
mca_par("elapsed_live")
Returns the elapsed live time.
mca_par("elapsed_real")
Returns the elapsed real time.`
mca_par("dead")

Returns the calculated dead time, as

100 * (real_time - live_time) / real_time
mca_par("scope")
Returns a data array of 1024 unsigned short values containing the oscilloscope data.
mca_par("pars")

Returns an associative array containing parameters indexed by keywords, with each element containing the appropriate value, as shown below. The "busy" keyword is nonzero when the device is acquiring data:

123.SPEC> pars = mca_par("pars"); p pars
pars["busy"] = 1
pars["dead"] = 84.12
pars["elapsed_live"] = 1.585
pars["elapsed_real"] = 9.984
pars["gain"] = 8
pars["icr"] = 0
pars["preset"] = 9.984
pars["preset_mode"] = 0
pars["shaping"] = 4
pars["threshold"] = 6
mca_par("state")

Prints the current state of the device in the following format:

Acquisition not complete.
Spectrum not cleared.
Acquisition is started.
Real time = 4.57
mca_par("dump")

Displays the current parameters formatted as follows:

Preset     = 9.984 sec
Count mode = Real
Busy       = No
Gain       = 8 (5.3 eV/channel)
Threshold  = 6
Shaping    = 4
  Peaking time              = 4.5 usec
  Analog equivalent         = 1.5 usec
  Differential nonlinearity = 0.3%

Elapsed live time = 9.984 sec
Elapsed real time = 1.748 sec
Percent dead time = 82.5%
Input count rate  = 1234 cts/sec