mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 18:17:59 +02:00
gotthard2: gain updated
This commit is contained in:
@ -124,6 +124,10 @@
|
||||
#define ASIC_CONFIG_RUN_MODE_EXT_BURST_VAL ((0x3 << ASIC_CONFIG_RUN_MODE_OFST) & ASIC_CONFIG_RUN_MODE_MSK)
|
||||
#define ASIC_CONFIG_GAIN_OFST (4)
|
||||
#define ASIC_CONFIG_GAIN_MSK (0x00000003 << ASIC_CONFIG_GAIN_OFST)
|
||||
#define ASIC_CONFIG_DYNAMIC_GAIN_VAL ((0x0 << ASIC_CONFIG_GAIN_OFST) & ASIC_CONFIG_GAIN_MSK)
|
||||
#define ASIC_CONFIG_FIX_GAIN_1_VAL ((0x1 << ASIC_CONFIG_GAIN_OFST) & ASIC_CONFIG_GAIN_MSK)
|
||||
#define ASIC_CONFIG_FIX_GAIN_2_VAL ((0x2 << ASIC_CONFIG_GAIN_OFST) & ASIC_CONFIG_GAIN_MSK)
|
||||
#define ASIC_CONFIG_RESERVED_VAL ((0x3 << ASIC_CONFIG_GAIN_OFST) & ASIC_CONFIG_GAIN_MSK)
|
||||
#define ASIC_CONFIG_RST_DAC_OFST (15)
|
||||
#define ASIC_CONFIG_RST_DAC_MSK (0x00000001 << ASIC_CONFIG_RST_DAC_OFST)
|
||||
#define ASIC_CONFIG_DONE_OFST (31)
|
||||
|
Binary file not shown.
@ -36,6 +36,7 @@ int virtual_status = 0;
|
||||
int virtual_stop = 0;
|
||||
#endif
|
||||
|
||||
enum detectorSettings thisSettings = UNINITIALIZED;
|
||||
int32_t clkPhase[NUM_CLOCKS] = {0, 0, 0, 0, 0, 0};
|
||||
uint32_t clkFrequency[NUM_CLOCKS] = {0, 0, 0, 0, 0, 0};
|
||||
int highvoltage = 0;
|
||||
@ -344,6 +345,7 @@ void setupDetector() {
|
||||
detPos[0] = 0;
|
||||
detPos[1] = 0;
|
||||
|
||||
thisSettings = UNINITIALIZED;
|
||||
highvoltage = 0;
|
||||
injectedChannelsOffset = 0;
|
||||
injectedChannelsIncrement = 0;
|
||||
@ -432,7 +434,8 @@ void setupDetector() {
|
||||
// set burst mode will take in burstType and also set it
|
||||
burstType = DEFAULT_BURST_TYPE;
|
||||
setBurstMode(DEFAULT_BURST_MODE);
|
||||
|
||||
setSettings(DEFAULT_SETTINGS);
|
||||
|
||||
// Initialization of acquistion parameters
|
||||
setNumFrames(DEFAULT_NUM_FRAMES);
|
||||
setNumTriggers(DEFAULT_NUM_CYCLES);
|
||||
@ -904,6 +907,70 @@ int64_t getMeasurementTime() {
|
||||
return get64BitReg(START_FRAME_TIME_LSB_REG, START_FRAME_TIME_MSB_REG) / (1E-9 * FIXED_PLL_FREQUENCY);
|
||||
}
|
||||
|
||||
|
||||
/* parameters - module, settings */
|
||||
enum detectorSettings setSettings(enum detectorSettings sett){
|
||||
if(sett == UNINITIALIZED)
|
||||
return thisSettings;
|
||||
|
||||
// set settings
|
||||
uint32_t addr = ASIC_CONFIG_REG;
|
||||
uint32_t mask = ASIC_CONFIG_GAIN_MSK;
|
||||
if(sett != GET_SETTINGS) {
|
||||
switch (sett) {
|
||||
case DYNAMICGAIN:
|
||||
bus_w(addr, bus_r(addr) & ~mask);
|
||||
bus_w(addr, bus_r(addr) | ASIC_CONFIG_DYNAMIC_GAIN_VAL);
|
||||
FILE_LOG(logINFO, ("Set settings - Dyanmic Gain, val: 0x%x\n", bus_r(addr) & mask));
|
||||
break;
|
||||
case FIXGAIN1:
|
||||
bus_w(addr, bus_r(addr) & ~mask);
|
||||
bus_w(addr, bus_r(addr) | ASIC_CONFIG_FIX_GAIN_1_VAL);
|
||||
FILE_LOG(logINFO, ("Set settings - Fix Gain 1, val: 0x%x\n", bus_r(addr) & mask));
|
||||
break;
|
||||
case FIXGAIN2:
|
||||
bus_w(addr, bus_r(addr) & ~mask);
|
||||
bus_w(addr, bus_r(addr) | ASIC_CONFIG_FIX_GAIN_2_VAL);
|
||||
FILE_LOG(logINFO, ("Set settings - Fix Gain 2, val: 0x%x\n", bus_r(addr) & mask));
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("This settings is not defined for this detector %d\n", (int)sett));
|
||||
return -1;
|
||||
}
|
||||
thisSettings = sett;
|
||||
}
|
||||
|
||||
return getSettings();
|
||||
}
|
||||
|
||||
|
||||
enum detectorSettings getSettings(){
|
||||
uint32_t regval = bus_r(ASIC_CONFIG_REG);
|
||||
uint32_t val = regval & ASIC_CONFIG_GAIN_MSK;
|
||||
FILE_LOG(logDEBUG1, ("Getting Settings\n Reading val :0x%x\n", val));
|
||||
|
||||
switch(val) {
|
||||
case ASIC_CONFIG_RESERVED_VAL:
|
||||
case ASIC_CONFIG_DYNAMIC_GAIN_VAL:
|
||||
thisSettings = DYNAMICGAIN;
|
||||
FILE_LOG(logDEBUG1, ("Settings read: Dynamic Gain. val: 0x%x\n", val));
|
||||
break;
|
||||
case ASIC_CONFIG_FIX_GAIN_1_VAL:
|
||||
thisSettings = FIXGAIN1;
|
||||
FILE_LOG(logDEBUG1, ("Settings read: Fix Gain 1. val: 0x%x\n", val));
|
||||
break;
|
||||
case ASIC_CONFIG_FIX_GAIN_2_VAL:
|
||||
thisSettings = FIXGAIN2;
|
||||
FILE_LOG(logDEBUG1, ("Settings read: Fix Gain 2. val: 0x%x\n", val));
|
||||
break;
|
||||
default:
|
||||
thisSettings = UNDEFINED;
|
||||
FILE_LOG(logERROR, ("Settings read: Undefined. val: 0x%x\n", val));
|
||||
}
|
||||
return thisSettings;
|
||||
}
|
||||
|
||||
|
||||
/* parameters - dac, hv */
|
||||
int setOnChipDAC(enum ONCHIP_DACINDEX ind, int chipIndex, int val) {
|
||||
char* names[] = {ONCHIP_DAC_NAMES};
|
||||
|
@ -38,6 +38,7 @@
|
||||
#define DEFAULT_DELAY_AFTER_TRIGGER (0)
|
||||
#define DEFAULT_HIGH_VOLTAGE (0)
|
||||
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
|
||||
#define DEFAULT_SETTINGS (DYNAMICGAIN)
|
||||
#define DEFAULT_READOUT_C0 (144444448) // rdo_clk, 144 MHz
|
||||
#define DEFAULT_READOUT_C1 (144444448) // rdo_x2_clk, 144 MHz
|
||||
#define DEFAULT_SYSTEM_C0 (144444448) // run_clk, 144 MHz
|
||||
|
Reference in New Issue
Block a user