source: fact/FADctrl/FADFormat.h@ 18108

Last change on this file since 18108 was 11232, checked in by neise, 13 years ago
supports firmware v0206
File size: 2.7 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 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
54const unsigned int NChannels = 9;
55const unsigned int NBins = 1024;
56const unsigned int NChips = 4;
57const unsigned int NTemp = 4;
58const unsigned int NDAC = 8;
59
60//
61// Data structures
62//
63typedef 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
94typedef struct {
95uint16_t id;
96uint16_t start_cell;
97uint16_t roi;
98uint16_t filling;
99uint16_t adc_data[];
100} __attribute__((__packed__)) PCHANNEL;
101typedef struct {
102uint16_t package_crc;
103uint16_t end_package_flag;
104} __attribute__((__packed__)) PEVNT_FOOTER;
105
106#endif
Note: See TracBrowser for help on using the repository browser.