| 1 | #ifndef FADFORMAT_H_SEEN
|
|---|
| 2 | #define FADFORMAT_H_SEEN
|
|---|
| 3 |
|
|---|
| 4 | #include <stdint.h>
|
|---|
| 5 |
|
|---|
| 6 | //
|
|---|
| 7 | // Commands for FAD
|
|---|
| 8 | //
|
|---|
| 9 | #define CMD_Start 0x2200 // Start Run
|
|---|
| 10 | #define CMD_Stop 0x2300 // Stop Run
|
|---|
| 11 | #define CMD_mode_command 0x3000 // Set Socket mode to: command mode
|
|---|
| 12 | #define CMD_mode_all_sockets 0x3100// Set Socket mode to: daq mode
|
|---|
| 13 |
|
|---|
| 14 | #define CMD_Trigger 0xA000 // single trigger
|
|---|
| 15 | #define CMD_DENABLE 0x0600 // DENABLE line HIGH
|
|---|
| 16 | #define CMD_DDISABLE 0x0700 // DENABLE line LOW
|
|---|
| 17 | #define CMD_DWRITE_RUN 0x0800 // DWRITE possibly HIGH
|
|---|
| 18 | #define CMD_DWRITE_STOP 0x0900 // DWRITE always LOW
|
|---|
| 19 | #define CMD_SCLK_ON 0x1000
|
|---|
| 20 | #define CMD_SCLK_OFF 0x1100
|
|---|
| 21 | #define CMD_PS_DIRINC 0x1200
|
|---|
| 22 | #define CMD_PS_DIRDEC 0x1300
|
|---|
| 23 | #define CMD_PS_DO 0x1400
|
|---|
| 24 | #define CMD_PS_RESET 0x1700
|
|---|
| 25 | #define CMD_SRCLK_ON 0x1500
|
|---|
| 26 | #define CMD_SRCLK_OFF 0x1600
|
|---|
| 27 | #define CMD_Trigger_C 0x1F00 // continous trigger
|
|---|
| 28 | #define CMD_Trigger_S 0x2000 // stop continous trigger
|
|---|
| 29 |
|
|---|
| 30 | #define CMD_Execute 0x0400 // only after 'execute' Config-RAM changes will have an effect
|
|---|
| 31 | #define CMD_Write 0x0500 // write to Config-RAM
|
|---|
| 32 | #define CMD_Read 0x0A00 // read from Config-RAM
|
|---|
| 33 | #define CMD_RESET_TRIGGER_ID 0x2A00
|
|---|
| 34 |
|
|---|
| 35 | #define CMD_TRIGGERS_ON 0x1800 // enables the trigger line
|
|---|
| 36 | #define CMD_TRIGGERS_OFF 0x1900 // disables the trigger line
|
|---|
| 37 |
|
|---|
| 38 | #define CMD_DRS_RST_LOW 0x3200
|
|---|
| 39 | #define CMD_DRS_RST_HIGH 0x3300
|
|---|
| 40 |
|
|---|
| 41 |
|
|---|
| 42 | //
|
|---|
| 43 | // Other definitions
|
|---|
| 44 | //
|
|---|
| 45 | #define MAX_ADDR 0xFF // highest address in Config-RAM
|
|---|
| 46 | #define BADDR_ROI 0x00 // Baseaddress ROI-Values
|
|---|
| 47 | #define BADDR_DAC 0x24 // Baseaddress DAC-Values
|
|---|
| 48 | #define BADDR_CONT_TRIGGER_TIME 0x2C // Baseaddress for the continouus trigger timing.
|
|---|
| 49 | #define ADDR_RUNNUMBER 0x2D //
|
|---|
| 50 | #define MAX_VAL 65535
|
|---|
| 51 | #define MAX_ROIVAL 1024
|
|---|
| 52 | #define MAX_DACVAL 65535
|
|---|
| 53 |
|
|---|
| 54 | const unsigned int NChannels = 9;
|
|---|
| 55 | const unsigned int NBins = 1024;
|
|---|
| 56 | const unsigned int NChips = 4;
|
|---|
| 57 | const unsigned int NTemp = 4;
|
|---|
| 58 | const unsigned int NDAC = 8;
|
|---|
| 59 |
|
|---|
| 60 | //
|
|---|
| 61 | // Data structures
|
|---|
| 62 | //
|
|---|
| 63 | typedef struct {
|
|---|
| 64 |
|
|---|
| 65 | uint16_t start_package_flag;
|
|---|
| 66 | uint16_t package_length;
|
|---|
| 67 | uint16_t version_no;
|
|---|
| 68 | uint16_t PLLLCK;
|
|---|
| 69 |
|
|---|
| 70 | uint16_t trigger_crc;
|
|---|
| 71 | uint16_t trigger_type;
|
|---|
| 72 | uint32_t trigger_id;
|
|---|
| 73 |
|
|---|
| 74 | uint32_t fad_evt_counter;
|
|---|
| 75 | uint32_t REFCLK_frequency;
|
|---|
| 76 |
|
|---|
| 77 | uint16_t board_id;
|
|---|
| 78 | uint8_t zeroes;
|
|---|
| 79 | int8_t adc_clock_phase_shift;
|
|---|
| 80 | uint16_t number_of_triggers_to_generate;
|
|---|
| 81 | uint16_t trigger_generator_prescaler;
|
|---|
| 82 |
|
|---|
| 83 | uint64_t DNA;
|
|---|
| 84 |
|
|---|
| 85 | uint32_t time;
|
|---|
| 86 | uint32_t runnumber;
|
|---|
| 87 |
|
|---|
| 88 | int16_t drs_temperature[NTemp];
|
|---|
| 89 |
|
|---|
| 90 | uint16_t dac[NDAC];
|
|---|
| 91 |
|
|---|
| 92 | } __attribute__((__packed__)) PEVNT_HEADER;
|
|---|
| 93 |
|
|---|
| 94 | typedef struct {
|
|---|
| 95 | uint16_t id;
|
|---|
| 96 | uint16_t start_cell;
|
|---|
| 97 | uint16_t roi;
|
|---|
| 98 | uint16_t filling;
|
|---|
| 99 | uint16_t adc_data[];
|
|---|
| 100 | } __attribute__((__packed__)) PCHANNEL;
|
|---|
| 101 | typedef struct {
|
|---|
| 102 | uint16_t package_crc;
|
|---|
| 103 | uint16_t end_package_flag;
|
|---|
| 104 | } __attribute__((__packed__)) PEVNT_FOOTER;
|
|---|
| 105 |
|
|---|
| 106 | #endif
|
|---|