source: fact/FADctrl/FADFormat.h @ 10504

Last change on this file since 10504 was 10504, checked in by neise, 9 years ago
supports new FAD event format: setting runnumber resetting internat trigger ID
File size: 2.5 KB
Line 
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 0xB000    // continous trigger
28#define CMD_Trigger_S 0x2000    // stop continous trigger
29#define CMD_Read 0x0A00                 // read from Config-RAM
30#define CMD_Write 0x0500                // write to Config-RAM
31#define CMD_RESET_TRIGGER_ID 0x2A00
32
33#define CMD_TRIGGERS_ON 0x1800  // enables the trigger line
34#define CMD_TRIGGERS_OFF 0x1900 // disables the trigger line
35
36//
37// Other definitions
38//
39#define MAX_ADDR 0xFF           // highest address in Config-RAM
40#define BADDR_ROI 0x00          // Baseaddress ROI-Values
41#define BADDR_DAC 0x24          // Baseaddress DAC-Values
42#define BADDR_CONT_TRIGGER_TIME 0x2C // Baseaddress for the continouus trigger timing.
43#define ADDR_RUNNUMBER 0x2D //
44#define MAX_VAL 65535
45#define MAX_ROIVAL 1024
46#define MAX_DACVAL 65535
47
48const unsigned int NChannels    = 9;
49const unsigned int NBins                = 1024;
50const unsigned int NChips               = 4;
51const unsigned int NTemp                = 4;
52const unsigned int NDAC                 = 8;
53
54//
55// Data structures
56//
57typedef struct {
58
59  uint16_t start_package_flag;
60  uint16_t package_length;
61  uint16_t version_no;
62  uint16_t PLLLCK;
63
64  uint16_t trigger_crc;
65  uint16_t trigger_type;
66  uint32_t trigger_id;
67
68  uint32_t fad_evt_counter;
69  uint32_t REFCLK_frequency;
70
71  uint16_t board_id;
72        uint8_t  zeroes;
73  int8_t adc_clock_phase_shift;
74  uint16_t number_of_triggers_to_generate;
75  uint16_t trigger_generator_prescaler;
76
77  uint64_t DNA;
78
79  uint32_t time;
80  uint32_t runnumber;
81
82  int16_t drs_temperature[NTemp];
83
84  uint16_t dac[NDAC];
85
86} __attribute__((__packed__)) PEVNT_HEADER;
87
88typedef struct {
89uint16_t id;
90uint16_t start_cell;
91uint16_t roi;
92uint16_t filling;
93uint16_t adc_data[];
94} __attribute__((__packed__)) PCHANNEL;
95typedef struct {
96uint16_t package_crc;
97uint16_t end_package_flag;
98} __attribute__((__packed__)) PEVNT_FOOTER;
99
100#endif
Note: See TracBrowser for help on using the repository browser.