readout software for 2 channels [0 and 1] of the tdc-gpx2 board with raspberry pi 3B SPI readout. This code is a fork of the original design by marvin.peter@physik.uni-giessen.de https://github.com/marvin5300/tdc-gpx2_software
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

62 lines
1.3 KiB

#ifndef CONFIG_H
#define CONFIG_H
#include <stdint.h>
#include <string>
namespace SPI {
namespace GPX2_TDC {
struct Config {
// reg_addr 0
uint8_t PIN_ENA_RSTIDX : 1;
uint8_t PIN_ENA_DISABLE : 1;
uint8_t PIN_ENA_LVDS_OUT : 1;
uint8_t PIN_ENA_REFCLK : 1;
uint8_t PIN_ENA_STOP4 : 1;
uint8_t PIN_ENA_STOP3 : 1;
uint8_t PIN_ENA_STOP2 : 1;
uint8_t PIN_ENA_STOP1 : 1;
// reg_addr 1
uint8_t HIGH_RESOLUTION : 2;
uint8_t CHANNEL_COMBINE : 2;
uint8_t HIT_ENA_STOP4 : 1;
uint8_t HIT_ENA_STOP3 : 1;
uint8_t HIT_ENA_STOP2 : 1;
uint8_t HIT_ENA_STOP1 : 1;
// reg_addr 2
uint8_t BLOCKWISE_FIFO_READ : 1;
uint8_t COMMON_FIFO_READ : 1;
uint8_t LVS_DOUBLE_DATA_RATE : 1;
uint8_t STOP_DATA_BITWIDTH : 2;
uint8_t REF_INDEX_BITWIDTH : 3;
// reg_addr 3
uint8_t REFCLK_DIVISIONS_LOWER; // (Lower byte)
// reg_addr 4
uint8_t REFCLK_DIVISIONS_MIDDLE; // (Middle byte)
// reg_addr 5
uint8_t REFCLK_DIVISIONS_UPPER : 4; // (Upper bits)
// reg_addr 6
uint8_t LVDS_TEST_PATTERN : 1;
// reg_addr 7
uint8_t REFCLK_BY_XOSC : 1;
uint8_t LVDS_DATA_VALID_ADJUST : 2;
// reg_addr 16
uint8_t CMOS_INPUT : 1;
Config();
void loadDefaultConfig();
double refclk_freq{5e6};
uint32_t refclk_divisions();
std::string str() const;
};
}
}
#endif // !CONFIG_H