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
|
---|