gotthard2 dacs

This commit is contained in:
maliakal_d 2019-10-08 17:10:36 +02:00
parent 030cfacc9b
commit cfd3680176
9 changed files with 34 additions and 27 deletions

View File

@ -374,9 +374,9 @@ int setDefaultDacs() {
const int defaultvals[NDAC] = DEFAULT_DAC_VALS;
for(i = 0; i < NDAC; ++i) {
// 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);
}
//}
}
}
return ret;
@ -491,12 +491,15 @@ int64_t getTimeLeft(enum timerIndex ind){
/* parameters - dac, hv */
void setDAC(enum DACINDEX ind, int val, int mV) {
if (val < 0)
if (val < 0) {
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;
#ifdef VIRTUAL
FILE_LOG(logINFO, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dac_names[ind], val, (mV ? "mV" : "dac units")));
if (!mV) {
dacValues[ind] = val;
}
@ -505,7 +508,7 @@ void setDAC(enum DACINDEX ind, int val, int mV) {
dacValues[ind] = dacval;
}
#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;
}
#endif
@ -542,7 +545,7 @@ int setHighVoltage(int val){
// setting hv
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);
highvoltage = val;
}

View File

@ -34,6 +34,7 @@
/** Other Definitions */
#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 */
enum DACINDEX {G_VREF_H_ADC, /* 0 */ \
@ -53,22 +54,22 @@ enum DACINDEX {G_VREF_H_ADC, /* 0 */ \
G_DAC_UNUSED2, /* 14 */ \
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, /* 2 (0 mV) VB_COMP_FE*/ \
0, /* 3 (0 mV) VB_COMP_ADC*/ \
560, /* 4 (700 mV) VCOM_CDS*/ \
250, /* 5 (320 mV) VREF_RESTORE*/ \
1400, /* 4 (700 mV) VCOM_CDS*/ \
640, /* 5 (320 mV) VREF_RESTORE*/ \
0, /* 6 (0 mV) VB_OPA_1ST*/ \
0, /* 7 (0 mV) VREF_COMP_FE*/ \
560, /* 8 (700 mV) VCOM_ADC1*/ \
700, /* 9 (860 mV) VREF_PRECH*/ \
576, /* 10 (350 mV) VREF_L_ADC*/ \
470, /* 11 (600 mV) VREF_CDS*/ \
2000, /* 12 (1400 mV) VB_CS*/ \
1400, /* 8 (700 mV) VCOM_ADC1*/ \
1720, /* 9 (860 mV) VREF_PRECH*/ \
700, /* 10 (350 mV) VREF_L_ADC*/ \
1200, /* 11 (600 mV) VREF_CDS*/ \
2799, /* 12 (1400 mV) VB_CS*/ \
0, /* 13 (0 mV) VB_OPA_FD*/ \
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};

View File

@ -374,10 +374,7 @@ int setDefaultDacs() {
int i = 0;
const int defaultvals[NDAC] = DEFAULT_DAC_VALS;
for(i = 0; i < NDAC; ++i) {
// if not already default, set it to default
if (dacValues[i] != defaultvals[i]) {
setDAC((enum DACINDEX)i,defaultvals[i],0);
}
setDAC((enum DACINDEX)i,defaultvals[i],0);
}
}
return ret;
@ -516,12 +513,16 @@ int64_t getTimeLeft(enum timerIndex ind){
/* parameters - dac, hv */
void setDAC(enum DACINDEX ind, int val, int mV) {
if (val < 0)
if (val < 0) {
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;
#ifdef VIRTUAL
FILE_LOG(logINFO, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dac_names[ind], val, (mV ? "mV" : "dac units")));
if (!mV) {
dacValues[ind] = val;
}
@ -530,7 +531,7 @@ void setDAC(enum DACINDEX ind, int val, int mV) {
dacValues[ind] = dacval;
}
#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;
}
#endif
@ -564,7 +565,7 @@ int setHighVoltage(int val){
// setting hv
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);
highvoltage = val;
}

View File

@ -33,6 +33,7 @@
/** Other Definitions */
#define BIT16_MASK (0xFFFF)
#define DAC_NAMES "CASSH", "VTH2", "VRFSH", "VRFSHNPOL", "VIPREOUT", "VTH3", "VTH1", "VICIN", "CAS", "VRF", "VPH", "VIPRE", "VIINSH", "VPL", "VTRIM", "VDCSH"
/* Enums */
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};

View File

@ -37,7 +37,8 @@ int LTC2620_D_DacToVoltage(int dacval, int* voltage);
* @param dacnum dac index
* @param val value to set
* @param mV 1 for mv, else 0
* @paam dacname dac name
* @param dacval pointer to dac value
* @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);

View File

@ -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));
// validate index
if (dacnum < 0 || dacnum >= LTC2620_D_NumDacs) {
@ -70,7 +70,7 @@ int LTC2620_D_SetDACValue (int dacnum, int val, int mV, int* dacval) {
// set
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];
sprintf(fname, "%s%d", LTC2620_D_DriverFileName, dacnum);

View File

@ -8,5 +8,5 @@
#define APIGOTTHARD 0x190930
#define APIJUNGFRAU 0x190930
#define APIEIGER 0x190930
#define APIMYTHEN3 0x191004
#define APIMYTHEN3 0x191008
#define APIGOTTHARD2 0x191008