mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-26 16:20:03 +02:00
jungfrau server: changes to ensure no update of detector during this, included power chip to read the status bit and give error if temp event is up
This commit is contained in:
parent
2d6e4c95a2
commit
061abf7be0
@ -383,7 +383,7 @@ int powerChip (int on){
|
||||
bus_w(CHIP_POWER_REG, bus_r(CHIP_POWER_REG) & ~CHIP_POWER_ENABLE_MSK);
|
||||
}
|
||||
}
|
||||
return bus_r(CHIP_POWER_REG);
|
||||
return (bus_r(CHIP_POWER_REG & CHIP_POWER_STATUS_MSK) >> CHIP_POWER_STATUS_OFST);
|
||||
}
|
||||
|
||||
void cleanFifos() {
|
||||
@ -1147,6 +1147,7 @@ void configurePll() {
|
||||
|
||||
|
||||
int setThresholdTemperature(int val) {
|
||||
|
||||
if (val >= 0) {
|
||||
printf("\nThreshold Temperature: %d\n", val);
|
||||
|
||||
@ -1154,8 +1155,8 @@ int setThresholdTemperature(int val) {
|
||||
#ifdef VERBOSE
|
||||
printf("Converted Threshold Temperature: %d\n", val);
|
||||
#endif
|
||||
|
||||
bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_PROTCT_THRSHLD_OFST) & TEMP_CTRL_PROTCT_THRSHLD_MSK)));
|
||||
bus_w(TEMP_CTRL_REG, (bus_r(TEMP_CTRL_REG) &~(TEMP_CTRL_PROTCT_THRSHLD_MSK) &~(TEMP_CTRL_OVR_TMP_EVNT_MSK))
|
||||
| (((val << TEMP_CTRL_PROTCT_THRSHLD_OFST) & TEMP_CTRL_PROTCT_THRSHLD_MSK)));
|
||||
#ifdef VERBOSE
|
||||
printf("Converted Threshold Temperature set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_PROTCT_THRSHLD_MSK) >> TEMP_CTRL_PROTCT_THRSHLD_OFST));
|
||||
#endif
|
||||
@ -1176,7 +1177,8 @@ int setTemperatureControl(int val) {
|
||||
// binary value
|
||||
if (val > 0 ) val = 1;
|
||||
printf("\nTemperature control: %d\n", val);
|
||||
bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_PROTCT_ENABLE_OFST) & TEMP_CTRL_PROTCT_ENABLE_MSK)));
|
||||
bus_w(TEMP_CTRL_REG, (bus_r(TEMP_CTRL_REG) &~(TEMP_CTRL_PROTCT_ENABLE_MSK) &~(TEMP_CTRL_OVR_TMP_EVNT_MSK))
|
||||
| (((val << TEMP_CTRL_PROTCT_ENABLE_OFST) & TEMP_CTRL_PROTCT_ENABLE_MSK)));
|
||||
#ifdef VERBOSE
|
||||
printf("Temperature control set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_PROTCT_ENABLE_MSK) >> TEMP_CTRL_PROTCT_ENABLE_OFST));
|
||||
#endif
|
||||
@ -1190,7 +1192,8 @@ int setTemperatureEvent(int val) {
|
||||
// set bit to clear it
|
||||
val = 1;
|
||||
printf("\nTemperature Event: %d\n", val);
|
||||
bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_OVR_TMP_EVNT_OFST) & TEMP_CTRL_OVR_TMP_EVNT_MSK)));
|
||||
bus_w(TEMP_CTRL_REG, (bus_r(TEMP_CTRL_REG) &~TEMP_CTRL_OVR_TMP_EVNT_MSK)
|
||||
| (((val << TEMP_CTRL_OVR_TMP_EVNT_OFST) & TEMP_CTRL_OVR_TMP_EVNT_MSK)));
|
||||
#ifdef VERBOSE
|
||||
printf("Temperature Event set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_OVR_TMP_EVNT_MSK) >> TEMP_CTRL_OVR_TMP_EVNT_OFST));
|
||||
#endif
|
||||
@ -1206,7 +1209,8 @@ int setNetworkParameter(enum NETWORKINDEX mode, int value) {
|
||||
|
||||
if (value >= 0) {
|
||||
printf("\nSetting transmission delay: %d\n", value);
|
||||
bus_w(CONFIG_REG, bus_r(CONFIG_REG) | (((value << CONFIG_TDMA_TIMESLOT_OFST) & CONFIG_TDMA_TIMESLOT_MSK)));
|
||||
bus_w(CONFIG_REG, (bus_r(CONFIG_REG) &~CONFIG_TDMA_TIMESLOT_MSK)
|
||||
| (((value << CONFIG_TDMA_TIMESLOT_OFST) & CONFIG_TDMA_TIMESLOT_MSK)));
|
||||
#ifdef VERBOSE
|
||||
printf("Transmission delay set to %d\n", ((bus_r(CONFIG_REG) & CONFIG_TDMA_TIMESLOT_MSK) >> CONFIG_TDMA_TIMESLOT_OFST));
|
||||
#endif
|
||||
|
@ -2641,8 +2641,6 @@ int slsDetector::setThresholdTemperature(int val, int imod) {
|
||||
setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL));
|
||||
}
|
||||
disconnectStop();
|
||||
if (ret==FORCE_UPDATE)
|
||||
updateDetector();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2683,8 +2681,6 @@ int slsDetector::setTemperatureControl(int val, int imod) {
|
||||
setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL));
|
||||
}
|
||||
disconnectStop();
|
||||
if (ret==FORCE_UPDATE)
|
||||
updateDetector();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2726,8 +2722,6 @@ int slsDetector::setTemperatureEvent(int val, int imod) {
|
||||
setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL));
|
||||
}
|
||||
disconnectStop();
|
||||
if (ret==FORCE_UPDATE)
|
||||
updateDetector();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4733,7 +4733,10 @@ int power_chip(int file_des) {
|
||||
ret=OK;
|
||||
} else {
|
||||
ret=FAIL;
|
||||
sprintf(mess,"Powering chip failed, wrote %d but read %d\n", arg, retval);
|
||||
if(setTemperatureEvent(-1) == 1)
|
||||
sprintf(mess,"Powering chip failed due to over-temperature event. Clear event & power chip again.\n", arg, retval);
|
||||
else
|
||||
sprintf(mess,"Powering chip failed, wrote %d but read %d\n", arg, retval);
|
||||
cprintf(RED, "Warning: %s", mess);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user