mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 13:27:14 +02:00
gotthard2 dacs
This commit is contained in:
Binary file not shown.
@ -374,9 +374,9 @@ int setDefaultDacs() {
|
|||||||
const int defaultvals[NDAC] = DEFAULT_DAC_VALS;
|
const int defaultvals[NDAC] = DEFAULT_DAC_VALS;
|
||||||
for(i = 0; i < NDAC; ++i) {
|
for(i = 0; i < NDAC; ++i) {
|
||||||
// if not already default, set it to default
|
// if not already default, set it to default
|
||||||
if (dacValues[i] != defaultvals[i]) {
|
//if (dacValues[i] != defaultvals[i]) {
|
||||||
setDAC((enum DACINDEX)i,defaultvals[i],0);
|
setDAC((enum DACINDEX)i,defaultvals[i],0);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -491,12 +491,15 @@ int64_t getTimeLeft(enum timerIndex ind){
|
|||||||
|
|
||||||
/* parameters - dac, hv */
|
/* parameters - dac, hv */
|
||||||
void setDAC(enum DACINDEX ind, int val, int mV) {
|
void setDAC(enum DACINDEX ind, int val, int mV) {
|
||||||
if (val < 0)
|
if (val < 0) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
FILE_LOG(logDEBUG1, ("Setting dac[%d]: %d %s \n", (int)ind, val, (mV ? "mV" : "dac units")));
|
char* dac_names[] = {DAC_NAMES};
|
||||||
|
FILE_LOG(logDEBUG1, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dac_names[ind], val, (mV ? "mV" : "dac units")));
|
||||||
int dacval = val;
|
int dacval = val;
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
FILE_LOG(logINFO, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dac_names[ind], val, (mV ? "mV" : "dac units")));
|
||||||
if (!mV) {
|
if (!mV) {
|
||||||
dacValues[ind] = val;
|
dacValues[ind] = val;
|
||||||
}
|
}
|
||||||
@ -505,7 +508,7 @@ void setDAC(enum DACINDEX ind, int val, int mV) {
|
|||||||
dacValues[ind] = dacval;
|
dacValues[ind] = dacval;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (LTC2620_D_SetDACValue((int)ind, val, mV, &dacval) == OK) {
|
if (LTC2620_D_SetDACValue((int)ind, val, mV, dac_names[ind], &dacval) == OK) {
|
||||||
dacValues[ind] = dacval;
|
dacValues[ind] = dacval;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -542,7 +545,7 @@ int setHighVoltage(int val){
|
|||||||
|
|
||||||
// setting hv
|
// setting hv
|
||||||
if (val >= 0) {
|
if (val >= 0) {
|
||||||
FILE_LOG(logINFO, ("Setting High voltage: %d V", val));
|
FILE_LOG(logINFO, ("Setting High voltage: %d V\n", val));
|
||||||
DAC6571_Set(val);
|
DAC6571_Set(val);
|
||||||
highvoltage = val;
|
highvoltage = val;
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
/** Other Definitions */
|
/** Other Definitions */
|
||||||
#define BIT16_MASK (0xFFFF)
|
#define BIT16_MASK (0xFFFF)
|
||||||
|
#define DAC_NAMES "VREF_H_ADC", "DAC_UNUSED", "VB_COMP_FE", "VB_COMP_ADC", "VCOM_CDS", "VREF_RESTORE", "VB_OPA_1ST", "VREF_COMP_FE", "VCOM_ADC1", "VREF_PRECH", "VREF_L_ADC", "VREF_CDS", "VB_CS", "VB_OPA_FD", "DAC_UNUSED2", "VCOM_ADC2"
|
||||||
|
|
||||||
/* Enums */
|
/* Enums */
|
||||||
enum DACINDEX {G_VREF_H_ADC, /* 0 */ \
|
enum DACINDEX {G_VREF_H_ADC, /* 0 */ \
|
||||||
@ -53,22 +54,22 @@ enum DACINDEX {G_VREF_H_ADC, /* 0 */ \
|
|||||||
G_DAC_UNUSED2, /* 14 */ \
|
G_DAC_UNUSED2, /* 14 */ \
|
||||||
G_VCOM_ADC2 /* 15*/ \
|
G_VCOM_ADC2 /* 15*/ \
|
||||||
};
|
};
|
||||||
#define DEFAULT_DAC_VALS {1723, /* 0 (1050 mV) VREF_H_ADC*/ \
|
#define DEFAULT_DAC_VALS {2099, /* 0 (1050 mV) VREF_H_ADC*/ \
|
||||||
0, /* 1 (0 mV) DAC_UNUSED*/ \
|
0, /* 1 (0 mV) DAC_UNUSED*/ \
|
||||||
0, /* 2 (0 mV) VB_COMP_FE*/ \
|
0, /* 2 (0 mV) VB_COMP_FE*/ \
|
||||||
0, /* 3 (0 mV) VB_COMP_ADC*/ \
|
0, /* 3 (0 mV) VB_COMP_ADC*/ \
|
||||||
560, /* 4 (700 mV) VCOM_CDS*/ \
|
1400, /* 4 (700 mV) VCOM_CDS*/ \
|
||||||
250, /* 5 (320 mV) VREF_RESTORE*/ \
|
640, /* 5 (320 mV) VREF_RESTORE*/ \
|
||||||
0, /* 6 (0 mV) VB_OPA_1ST*/ \
|
0, /* 6 (0 mV) VB_OPA_1ST*/ \
|
||||||
0, /* 7 (0 mV) VREF_COMP_FE*/ \
|
0, /* 7 (0 mV) VREF_COMP_FE*/ \
|
||||||
560, /* 8 (700 mV) VCOM_ADC1*/ \
|
1400, /* 8 (700 mV) VCOM_ADC1*/ \
|
||||||
700, /* 9 (860 mV) VREF_PRECH*/ \
|
1720, /* 9 (860 mV) VREF_PRECH*/ \
|
||||||
576, /* 10 (350 mV) VREF_L_ADC*/ \
|
700, /* 10 (350 mV) VREF_L_ADC*/ \
|
||||||
470, /* 11 (600 mV) VREF_CDS*/ \
|
1200, /* 11 (600 mV) VREF_CDS*/ \
|
||||||
2000, /* 12 (1400 mV) VB_CS*/ \
|
2799, /* 12 (1400 mV) VB_CS*/ \
|
||||||
0, /* 13 (0 mV) VB_OPA_FD*/ \
|
0, /* 13 (0 mV) VB_OPA_FD*/ \
|
||||||
0, /* 14 (0 mV) DAC_UNUSED2*/ \
|
0, /* 14 (0 mV) DAC_UNUSED2*/ \
|
||||||
560 /* 15 (700 mV) VCOM_ADC2*/ \
|
1400 /* 15 (700 mV) VCOM_ADC2*/ \
|
||||||
};
|
};
|
||||||
enum CLKINDEX {RUN_CLK, TICK_CLK, SAMPLING_CLK, NUM_CLOCKS};
|
enum CLKINDEX {RUN_CLK, TICK_CLK, SAMPLING_CLK, NUM_CLOCKS};
|
||||||
|
|
||||||
|
Binary file not shown.
@ -374,10 +374,7 @@ int setDefaultDacs() {
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
const int defaultvals[NDAC] = DEFAULT_DAC_VALS;
|
const int defaultvals[NDAC] = DEFAULT_DAC_VALS;
|
||||||
for(i = 0; i < NDAC; ++i) {
|
for(i = 0; i < NDAC; ++i) {
|
||||||
// if not already default, set it to default
|
setDAC((enum DACINDEX)i,defaultvals[i],0);
|
||||||
if (dacValues[i] != defaultvals[i]) {
|
|
||||||
setDAC((enum DACINDEX)i,defaultvals[i],0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -516,12 +513,16 @@ int64_t getTimeLeft(enum timerIndex ind){
|
|||||||
|
|
||||||
/* parameters - dac, hv */
|
/* parameters - dac, hv */
|
||||||
void setDAC(enum DACINDEX ind, int val, int mV) {
|
void setDAC(enum DACINDEX ind, int val, int mV) {
|
||||||
if (val < 0)
|
if (val < 0) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
char* dac_names[] = {DAC_NAMES};
|
||||||
|
FILE_LOG(logDEBUG1, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dac_names[ind], val, (mV ? "mV" : "dac units")));
|
||||||
|
|
||||||
FILE_LOG(logDEBUG1, ("Setting dac[%d]: %d %s \n", (int)ind, val, (mV ? "mV" : "dac units")));
|
|
||||||
int dacval = val;
|
int dacval = val;
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
FILE_LOG(logINFO, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dac_names[ind], val, (mV ? "mV" : "dac units")));
|
||||||
if (!mV) {
|
if (!mV) {
|
||||||
dacValues[ind] = val;
|
dacValues[ind] = val;
|
||||||
}
|
}
|
||||||
@ -530,7 +531,7 @@ void setDAC(enum DACINDEX ind, int val, int mV) {
|
|||||||
dacValues[ind] = dacval;
|
dacValues[ind] = dacval;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (LTC2620_D_SetDACValue((int)ind, val, mV, &dacval) == OK) {
|
if (LTC2620_D_SetDACValue((int)ind, val, mV, dac_names[ind], &dacval) == OK) {
|
||||||
dacValues[ind] = dacval;
|
dacValues[ind] = dacval;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -564,7 +565,7 @@ int setHighVoltage(int val){
|
|||||||
|
|
||||||
// setting hv
|
// setting hv
|
||||||
if (val >= 0) {
|
if (val >= 0) {
|
||||||
FILE_LOG(logINFO, ("Setting High voltage: %d V", val));
|
FILE_LOG(logINFO, ("Setting High voltage: %d V\n", val));
|
||||||
DAC6571_Set(val);
|
DAC6571_Set(val);
|
||||||
highvoltage = val;
|
highvoltage = val;
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
/** Other Definitions */
|
/** Other Definitions */
|
||||||
#define BIT16_MASK (0xFFFF)
|
#define BIT16_MASK (0xFFFF)
|
||||||
|
|
||||||
|
#define DAC_NAMES "CASSH", "VTH2", "VRFSH", "VRFSHNPOL", "VIPREOUT", "VTH3", "VTH1", "VICIN", "CAS", "VRF", "VPH", "VIPRE", "VIINSH", "VPL", "VTRIM", "VDCSH"
|
||||||
/* Enums */
|
/* Enums */
|
||||||
enum CLKINDEX {RUN_CLK, TICK_CLK, SAMPLING_CLK, NUM_CLOCKS};
|
enum CLKINDEX {RUN_CLK, TICK_CLK, SAMPLING_CLK, NUM_CLOCKS};
|
||||||
enum DACINDEX {CASSH, VTH2, VRFSH, VRFSHNPOL, VIPREOUT, VTH3, VTH1, VICIN, CAS, VRF, VPH, VIPRE, VIINSH, VPL, VTRIM, VDCSH};
|
enum DACINDEX {CASSH, VTH2, VRFSH, VRFSHNPOL, VIPREOUT, VTH3, VTH1, VICIN, CAS, VRF, VPH, VIPRE, VIINSH, VPL, VTRIM, VDCSH};
|
||||||
|
@ -37,7 +37,8 @@ int LTC2620_D_DacToVoltage(int dacval, int* voltage);
|
|||||||
* @param dacnum dac index
|
* @param dacnum dac index
|
||||||
* @param val value to set
|
* @param val value to set
|
||||||
* @param mV 1 for mv, else 0
|
* @param mV 1 for mv, else 0
|
||||||
|
* @paam dacname dac name
|
||||||
* @param dacval pointer to dac value
|
* @param dacval pointer to dac value
|
||||||
* @return OK or FAIL
|
* @return OK or FAIL
|
||||||
*/
|
*/
|
||||||
int LTC2620_D_SetDACValue(int dacnum, int val, int mV, int *dacval);
|
int LTC2620_D_SetDACValue(int dacnum, int val, int mV, char* dacname, int *dacval);
|
@ -39,7 +39,7 @@ int LTC2620_D_DacToVoltage(int dacval, int* voltage) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int LTC2620_D_SetDACValue (int dacnum, int val, int mV, int* dacval) {
|
int LTC2620_D_SetDACValue (int dacnum, int val, int mV, char* dacname, int* dacval) {
|
||||||
FILE_LOG(logDEBUG1, ("dacnum:%d, val:%d, ismV:%d\n", dacnum, val, mV));
|
FILE_LOG(logDEBUG1, ("dacnum:%d, val:%d, ismV:%d\n", dacnum, val, mV));
|
||||||
// validate index
|
// validate index
|
||||||
if (dacnum < 0 || dacnum >= LTC2620_D_NumDacs) {
|
if (dacnum < 0 || dacnum >= LTC2620_D_NumDacs) {
|
||||||
@ -70,7 +70,7 @@ int LTC2620_D_SetDACValue (int dacnum, int val, int mV, int* dacval) {
|
|||||||
|
|
||||||
// set
|
// set
|
||||||
if ( (*dacval >= 0) || (*dacval == LTC2620_D_PWR_DOWN_VAL)) {
|
if ( (*dacval >= 0) || (*dacval == LTC2620_D_PWR_DOWN_VAL)) {
|
||||||
FILE_LOG(logINFO, ("Setting DAC %d: %d dac (%d mV)\n",dacnum, *dacval, dacmV));
|
FILE_LOG(logINFO, ("Setting DAC %2d [%-12s] : %d dac (%d mV)\n",dacnum, dacname, *dacval, dacmV));
|
||||||
|
|
||||||
char fname[MAX_STR_LENGTH];
|
char fname[MAX_STR_LENGTH];
|
||||||
sprintf(fname, "%s%d", LTC2620_D_DriverFileName, dacnum);
|
sprintf(fname, "%s%d", LTC2620_D_DriverFileName, dacnum);
|
||||||
|
@ -8,5 +8,5 @@
|
|||||||
#define APIGOTTHARD 0x190930
|
#define APIGOTTHARD 0x190930
|
||||||
#define APIJUNGFRAU 0x190930
|
#define APIJUNGFRAU 0x190930
|
||||||
#define APIEIGER 0x190930
|
#define APIEIGER 0x190930
|
||||||
#define APIMYTHEN3 0x191004
|
#define APIMYTHEN3 0x191008
|
||||||
#define APIGOTTHARD2 0x191008
|
#define APIGOTTHARD2 0x191008
|
||||||
|
Reference in New Issue
Block a user