mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-06 01:50:40 +02:00
mythen3: config reg enable all counters, dr
This commit is contained in:
parent
38ad5d7931
commit
2123fb47a5
@ -103,6 +103,19 @@
|
|||||||
/* Config RW regiseter */
|
/* Config RW regiseter */
|
||||||
#define CONFIG_REG (0x20 * REG_OFFSET + BASE_CONTROL)
|
#define CONFIG_REG (0x20 * REG_OFFSET + BASE_CONTROL)
|
||||||
|
|
||||||
|
#define CONFIG_COUNTER_ENA_OFST (0)
|
||||||
|
#define CONFIG_COUNTER_ENA_MSK (0x00000003 << CONFIG_COUNTER_ENA_OFST)
|
||||||
|
#define CONFIG_COUNTER_ENA_DEFAULT_VAL ((0x0 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK)
|
||||||
|
#define CONFIG_COUNTER_ENA_1_VAL ((0x1 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK)
|
||||||
|
#define CONFIG_COUNTER_ENA_2_VAL ((0x2 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK)
|
||||||
|
#define CONFIG_COUNTER_ENA_ALL_VAL ((0x3 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK)
|
||||||
|
#define CONFIG_DYNAMIC_RANGE_OFST (4)
|
||||||
|
#define CONFIG_DYNAMIC_RANGE_MSK (0x00000003 << CONFIG_DYNAMIC_RANGE_OFST)
|
||||||
|
#define CONFIG_DYNAMIC_RANGE_1_VAL ((0x0 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK)
|
||||||
|
#define CONFIG_DYNAMIC_RANGE_4_VAL ((0x1 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK)
|
||||||
|
#define CONFIG_DYNAMIC_RANGE_16_VAL ((0x2 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK)
|
||||||
|
#define CONFIG_DYNAMIC_RANGE_24_VAL ((0x3 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK)
|
||||||
|
|
||||||
/* Control RW register */ // assumed for MY3
|
/* Control RW register */ // assumed for MY3
|
||||||
#define CONTROL_REG (0x21 * REG_OFFSET + BASE_CONTROL)
|
#define CONTROL_REG (0x21 * REG_OFFSET + BASE_CONTROL)
|
||||||
|
|
||||||
|
Binary file not shown.
@ -368,6 +368,13 @@ void setupDetector() {
|
|||||||
// defaults
|
// defaults
|
||||||
setHighVoltage(DEFAULT_HIGH_VOLTAGE);
|
setHighVoltage(DEFAULT_HIGH_VOLTAGE);
|
||||||
setDefaultDacs();
|
setDefaultDacs();
|
||||||
|
|
||||||
|
// dynamic range
|
||||||
|
setDynamicRange(DEFAULT_DYNAMIC_RANGE);
|
||||||
|
// enable all counters
|
||||||
|
bus_w(CONFIG_REG, bus_r(CONFIG_REG) & ~CONFIG_COUNTER_ENA_MSK);
|
||||||
|
bus_w(CONFIG_REG, bus_r(CONFIG_REG) | CONFIG_COUNTER_ENA_ALL_VAL);
|
||||||
|
|
||||||
|
|
||||||
// Initialization of acquistion parameters
|
// Initialization of acquistion parameters
|
||||||
setNumFrames(DEFAULT_NUM_FRAMES);
|
setNumFrames(DEFAULT_NUM_FRAMES);
|
||||||
@ -419,7 +426,45 @@ void resetPeripheral() {
|
|||||||
/* set parameters - dr, roi */
|
/* set parameters - dr, roi */
|
||||||
|
|
||||||
int setDynamicRange(int dr){
|
int setDynamicRange(int dr){
|
||||||
return 32; //TODO
|
if (dr > 0) {
|
||||||
|
uint32_t regval = 0;
|
||||||
|
switch(dr) {
|
||||||
|
case 1:
|
||||||
|
regval = CONFIG_DYNAMIC_RANGE_1_VAL;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
regval = CONFIG_DYNAMIC_RANGE_4_VAL;
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
regval = CONFIG_DYNAMIC_RANGE_16_VAL;
|
||||||
|
break;
|
||||||
|
case 24:
|
||||||
|
case 32:
|
||||||
|
regval = CONFIG_DYNAMIC_RANGE_24_VAL;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
FILE_LOG(logERROR, ("Invalid dynamic range %d\n", dr));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
// set it
|
||||||
|
bus_w(CONFIG_REG, bus_r(CONFIG_REG) & ~CONFIG_DYNAMIC_RANGE_MSK);
|
||||||
|
bus_w(CONFIG_REG, bus_r(CONFIG_REG) | regval);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t regval = bus_r(CONFIG_REG & CONFIG_DYNAMIC_RANGE_MSK);
|
||||||
|
switch(regval) {
|
||||||
|
case CONFIG_DYNAMIC_RANGE_1_VAL:
|
||||||
|
return 1;
|
||||||
|
case CONFIG_DYNAMIC_RANGE_4_VAL:
|
||||||
|
return 4;
|
||||||
|
case CONFIG_DYNAMIC_RANGE_16_VAL:
|
||||||
|
return 16;
|
||||||
|
case CONFIG_DYNAMIC_RANGE_24_VAL:
|
||||||
|
return 32;
|
||||||
|
default:
|
||||||
|
FILE_LOG(logERROR, ("Invalid dynamic range %d read back\n", regval >> CONFIG_DYNAMIC_RANGE_OFST));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#define DAC_MAX_MV (2048)
|
#define DAC_MAX_MV (2048)
|
||||||
|
|
||||||
/** Default Parameters */
|
/** Default Parameters */
|
||||||
|
#define DEFAULT_DYNAMIC_RANGE (24)
|
||||||
#define DEFAULT_NUM_FRAMES (1)
|
#define DEFAULT_NUM_FRAMES (1)
|
||||||
#define DEFAULT_NUM_CYCLES (1)
|
#define DEFAULT_NUM_CYCLES (1)
|
||||||
#define DEFAULT_EXPTIME (100*1000*1000) //ns
|
#define DEFAULT_EXPTIME (100*1000*1000) //ns
|
||||||
|
@ -9,4 +9,4 @@
|
|||||||
#define APIJUNGFRAU 0x191106
|
#define APIJUNGFRAU 0x191106
|
||||||
#define APIEIGER 0x191106
|
#define APIEIGER 0x191106
|
||||||
#define APIGOTTHARD2 0x191108
|
#define APIGOTTHARD2 0x191108
|
||||||
#define APIMYTHEN3 0x191108
|
#define APIMYTHEN3 0x191111
|
||||||
|
Loading…
x
Reference in New Issue
Block a user