MCA Data Server Reference

wxMCA

Introduction

ARM Data structures

Version

Status

Controls

MCA Data Server

Overview

Neutron-3K Data Structure: arm_ctrl

Summary

The arm_ctrl data structure is used to send parameters to the ARM slow control system which sets the operating voltage, implements gain stabilization and controls advanced features such as alarming.

Data structure

For arm_ctrl these are the 'register' and 'field' data in use. All register data are 32-bit floats (float32).

arm_ctrl registers and fields — slow control and operation
Register number and field nameDescription
AC0: gain_stabilizationBit field governing gain stabilization, cf 'user' table below.
AC1: peltierEither fixed Peltier power (0 to 100%) or maximum power; To allow a host control loop (only in SiPM-based systems with a Peltier controller).
AC2: temp_ctrl0 ⇒ Use ARM temperature sensor; 1 ⇒ Use external temperature sensor; [4:7]=> (0⇒ no Peltier cooling; 1⇒ constant cooling power; 2⇒ control loop)
AC3: temp_targetReserved; In SiPM-based systems with a Peltier cooler, this field has the target temperature.
AC4: temp_periodUpdate period for temperature measurements
AC5: temp_weightWeight for geometric averaging: Purpose is noise reduction or matching thermal relaxation
AC6: cal_tempTemperature (in deg C) at which the detector was calibrated
AC7: cal_ovOperating voltage when the detector was calibrated
AC8: cal_dgDigital gain when the detector was calibrated (reserved)
AC9: cal_targetTarget value for response to LED; used with gain_stab=2 (in systems with an LED)
AC10: cal_scintScintillator type, (reserved)
AC11: cal_par_0A control parameter for gain stabilization with implementation-dependent meaning.
AC12: fpga_rebootTime between forced FPGA reboots, in seconds; Set to 0 to turn this off.
AC13: run_modeRun options; cf "user" table below.
AC14: run_actionSelf-clearing run actions; cf "user" table below.
AC26: baudBaud rate for serial communication (reserved)
AC26: xctrl_0Logger control;
xctrl_0[0:7] = dwell time in units of 50ms, max. dwell time = 12.75s;
xctrl_0[8:15] = idx ⇒ arm_status[idx] will be logged in channel 1.
xctrl_0[16:24] = idx ⇒ arm_status[idx] will be logged in channel 2.
Special index: idx=128 ⇒ log the events sent to the data input of time slice processing unit.
All arm_ctrl registers and fields concerning operation settings and calibration
arm_ctrl — user entries
Register number and field nameDescription
gs_modeAC0[0:3]; 0⇒OFF, 1⇒LUT, ie use lookup table for temperature correction, 2⇒LED, Use an LED and the LED lookup table, if LED is present;
active_bankAC13[0]; Select which bank will be active: 0⇒ foreground, 1⇒ background.
sample_alarmAC13[1]; Compute alarm probability for foreground vs background
time_sliceAC13[2]; Activate time slice system and dynamic alarming. Performs alarm computations up to 20 times per second; for portal monitors and backpacks.
clear_statisticsAC14[0]; Self-clearing action; clears the time and event counter of the targeted bank. Targeted bank is active_bank if two_bank=0. It is the inactive bank if two_bank=1.
clear_alarmAC14[1]; Self-clearing action; Clears a persisent alarm output on trigger_out; eg from a portal monitor alarm.
clear_loggerAC14[2]; Self-clearing action; Reset the logger to begin recording data at index 0.
clear_wall_clockAC14[3]; Self-clearing action; Reset the wall clock.
The arm_ctrl user dictionary is used to pack and unpack bit fields.
arm_ctrl registers and fields — sample vs background measurements
Register number and field nameDescription
AC15: run_time_sampleRequested run time for a sample counting acquisition; 0-> forever
AC16: run_time_bckRequested run time for a background counting acquisition; 0-> forever
AC17: alarm_thrAlarm threshold for foreground vs background. If the computed probability that themeasured counts are caused by the measured background, raise an alarm.
AC25: alarm_widthOutput pulse width in seconds for alarms
All arm_ctrl registers and fields concerning sample vs background neasurements.
arm_ctrl registers and fields — portal monitor operation
Register number and field nameDescription
AC18: ts_periodTime slice length, in seconds
AC19: ts_reset2 ⇒ Reset portal alarm system.
AC20: ts_LSummation length for alarm computation, in number of time slices.
AC21: ts_HHistory length for alarms; maximum length of alarm before resetting
AC22: ts_waitMinimum wait time until we will accept alarms, having sufficient background accuracy
AC23: ts_BBackground averaging time
AC24: ts_epsAlarm threshold for time-slice system
AC25: alarm_widthOutput pulse width in seconds for alarms
All arm_ctrl registers and fields concerning Portal Monitor Operation. ts_L, ts_H, ts_B, ts_wait are all integer numbers and in units time slices. Eg. a summation length of 4.0s means ts_L=40 when ts_period=0.1s.