MCA-3K Data Server Reference

eMorpho

Introduction

USB driver

bpi_device

Data structures

Overview

Module Constants

FPGA Data structures

Controls

Statistics

Results

Histogram

List Mode

Oscilloscope Trace

Summation Weights

Time Slices

Two-bank List Mode

ARM Data structures

Version

Status

Controls

Calibration

API

Overview

MCA-3K Data Structure: fpga_time_slice

Summary

This data structure is used with non-standard firmware, called time_slice firmware. That firmware adds the capability of recording a up to 20 2kB buffers of count rate and histogram data. Each buffer corresponds to a fixed 105ms time slice. This kind of firmware is used in dynamic situations where count rates can vary rapidly. It is especially useful in Radiation Portal Monitors and in portable applications (backpacks) where an alarm has to be created within a few seconds of closest approach.

Time-slice FPGA firmware is needed only if the host computer performs the alarm computations. If the embedded ARM processor performs these computations, it can read ROI counts directly from the fpga_statistics every 100ms and perform the alarm computations.

Data structure

For fpga_time_slice these are the 'fields' data in use. All register data are 16-bit unsigned int16 (uint16_t). Debugging data and count rate data are confined to the first 18 registers. The remaining 1006 registers contain histogram data.

fpga_time_slice registers and fields
Register number and field nameDescription
–: dwell_timeThe length of a time slice; fixed at 0.104875s. Not tied to a register.
SR0: Running buffer number, 16bit.
SR1: temperature temperature = SR1/16 in °C
SR2 – SR7: –Reserved
SR8: gamma_eventsNumber of events accepted into the histogram during the dwell time.
SR9: –Reserved
SR10: gamma_triggersNumber of triggers during the dwell time.
SR11: –Reserved
SR12, SR13: dead_timedead_time = (SR12 + SR13*65536)/adc_sr, where adc_sr is the ADC sampling rate of the MCA; ie 40MHz in most cases.
SR14: neutron_countsNumber of external neutron pulses during the dwell time. Depending on the implementation, these can be the combination of four external neutron detectors.
SR15: –Reserved
SR16: gm_countsNumber of external Geiger-Müller pulses during the dwell time. The firmware typically enforces a 20μs dead time for each GM pulse to avoid double-triggering due to ringing.
SR17: –Reserved
SR18 - SR1023: histogramHistogram entries are 16-bit values. A histogram peak that in the main histogram memory (which is 4K × 32bit) shows up at bin 664 will in the time slice histogram show up at 664/4=166.
The fpga_time_slice registers; SRn means slice register number n, with n=0...1023 .