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