From 920a8a6e9eeb3dfaba88fbb4a2efc20ca48ae7e6 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 27 Sep 2021 12:24:14 +0200 Subject: [PATCH] speed settings fixed in jungfrau --- .../slsDetectorFunctionList.c | 54 +++++++++++++------ .../slsDetectorServer_defs.h | 6 +-- 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index a63984352..2dfa2a81e 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -1821,7 +1821,11 @@ int setClockDivider(enum CLKINDEX ind, int val) { } LOG(logINFO, ("Setting Full Speed (40 MHz):\n")); adcOfst = ADC_OFST_FULL_SPEED_VAL; - sampleAdcSpeed = SAMPLE_ADC_FULL_SPEED; + if (getChipVersion() == 10) { + sampleAdcSpeed = SAMPLE_ADC_FULL_SPEED_CHIP10; + } else { + sampleAdcSpeed = SAMPLE_ADC_FULL_SPEED; + } adcPhase = ADC_PHASE_FULL_SPEED; dbitPhase = DBIT_PHASE_FULL_SPEED; config = CONFIG_FULL_SPEED_40MHZ_VAL; @@ -1829,27 +1833,43 @@ int setClockDivider(enum CLKINDEX ind, int val) { case HALF_SPEED: LOG(logINFO, ("Setting Half Speed (20 MHz):\n")); - adcOfst = isHardwareVersion2() ? ADC_OFST_HALF_SPEED_BOARD2_VAL - : ADC_OFST_HALF_SPEED_VAL; - sampleAdcSpeed = isHardwareVersion2() ? SAMPLE_ADC_HALF_SPEED_BOARD2 - : SAMPLE_ADC_HALF_SPEED; - adcPhase = isHardwareVersion2() ? ADC_PHASE_HALF_SPEED_BOARD2 - : ADC_PHASE_HALF_SPEED; - dbitPhase = isHardwareVersion2() ? DBIT_PHASE_HALF_SPEED_BOARD2 - : DBIT_PHASE_HALF_SPEED; + if (isHardwareVersion2()) { + adcOfst = ADC_OFST_HALF_SPEED_BOARD2_VAL; + sampleAdcSpeed = SAMPLE_ADC_HALF_SPEED_BOARD2; + adcPhase = ADC_PHASE_HALF_SPEED_BOARD2; + dbitPhase = DBIT_PHASE_HALF_SPEED_BOARD2; + } else if (getChipVersion() == 10) { + adcOfst = ADC_OFST_HALF_SPEED_VAL; + sampleAdcSpeed = SAMPLE_ADC_HALF_SPEED_CHIP10; + adcPhase = ADC_PHASE_HALF_SPEED; + dbitPhase = DBIT_PHASE_HALF_SPEED; + } else { + adcOfst = ADC_OFST_HALF_SPEED_VAL; + sampleAdcSpeed = SAMPLE_ADC_HALF_SPEED; + adcPhase = ADC_PHASE_HALF_SPEED; + dbitPhase = DBIT_PHASE_HALF_SPEED; + } config = CONFIG_HALF_SPEED_20MHZ_VAL; break; case QUARTER_SPEED: LOG(logINFO, ("Setting Half Speed (10 MHz):\n")); - adcOfst = isHardwareVersion2() ? ADC_OFST_QUARTER_SPEED_BOARD2_VAL - : ADC_OFST_QUARTER_SPEED_VAL; - sampleAdcSpeed = isHardwareVersion2() ? SAMPLE_ADC_QUARTER_SPEED_BOARD2 - : SAMPLE_ADC_QUARTER_SPEED; - adcPhase = isHardwareVersion2() ? ADC_PHASE_QUARTER_SPEED_BOARD2 - : ADC_PHASE_QUARTER_SPEED; - dbitPhase = isHardwareVersion2() ? DBIT_PHASE_QUARTER_SPEED_BOARD2 - : DBIT_PHASE_QUARTER_SPEED; + if (isHardwareVersion2()) { + adcOfst = ADC_OFST_QUARTER_SPEED_BOARD2_VAL; + sampleAdcSpeed = SAMPLE_ADC_QUARTER_SPEED_BOARD2; + adcPhase = ADC_PHASE_QUARTER_SPEED_BOARD2; + dbitPhase = DBIT_PHASE_QUARTER_SPEED_BOARD2; + } else if (getChipVersion() == 10) { + adcOfst = ADC_OFST_QUARTER_SPEED_VAL; + sampleAdcSpeed = SAMPLE_ADC_QUARTER_SPEED_CHIP10; + adcPhase = ADC_PHASE_QUARTER_SPEED; + dbitPhase = DBIT_PHASE_QUARTER_SPEED; + } else { + adcOfst = ADC_OFST_QUARTER_SPEED_VAL; + sampleAdcSpeed = SAMPLE_ADC_QUARTER_SPEED; + adcPhase = ADC_PHASE_QUARTER_SPEED; + dbitPhase = DBIT_PHASE_QUARTER_SPEED; + } config = CONFIG_QUARTER_SPEED_10MHZ_VAL; break; diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index 390613944..b7a98d9b0 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -153,13 +153,13 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, DBIT_CLK, NUM_CLOCKS }; SAMPLE_DGTL_SAMPLE_2_VAL + SAMPLE_DECMT_FACTOR_QUARTER_VAL) // 0x2230 // 2.0 pcb (chipv1.0) -#define SAMPLE_ADC_FULL_SPEED \ +#define SAMPLE_ADC_FULL_SPEED_CHIP10 \ (SAMPLE_ADC_SAMPLE_0_VAL + SAMPLE_ADC_DECMT_FACTOR_0_VAL + \ SAMPLE_DGTL_SAMPLE_1_VAL + SAMPLE_DECMT_FACTOR_FULL_VAL) // 0x0100 -#define SAMPLE_ADC_HALF_SPEED \ +#define SAMPLE_ADC_HALF_SPEED_CHIP10 \ (SAMPLE_ADC_SAMPLE_0_VAL + SAMPLE_ADC_DECMT_FACTOR_1_VAL + \ SAMPLE_DGTL_SAMPLE_3_VAL + SAMPLE_DECMT_FACTOR_HALF_VAL) // 0x1310 -#define SAMPLE_ADC_QUARTER_SPEED \ +#define SAMPLE_ADC_QUARTER_SPEED_CHIP10 \ (SAMPLE_ADC_SAMPLE_0_VAL + SAMPLE_ADC_DECMT_FACTOR_3_VAL + \ SAMPLE_DGTL_SAMPLE_6_VAL + SAMPLE_DECMT_FACTOR_QUARTER_VAL) // 0x2630