first time detector starts, chip of interest was not configured at all and this was never configured if via blackfin, fixed

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@461 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d 2013-02-12 13:59:26 +00:00
parent a48ae49ae4
commit 51a008784b
3 changed files with 173 additions and 156 deletions

View File

@ -1175,16 +1175,37 @@ int initConfGain(int isettings,int val,int imod){
} }
int setADC(int adc){
int reg;
if(adc==-1){
reg = (NCHAN*NCHIP)<<CHANNEL_OFFSET;
reg&=CHANNEL_MASK;
reg|=ACTIVE_ADC_MASK;
bus_w(CHIP_OF_INTRST_REG,reg);
}else{
reg = (NCHAN*2)<<CHANNEL_OFFSET;
reg&=CHANNEL_MASK;
int mask =1<<adc;
reg|=(ACTIVE_ADC_MASK & mask);
bus_w(CHIP_OF_INTRST_REG,reg);
}
#ifdef DDEBUG
printf("Chip of Intrst Reg:%x\n",bus_r(CHIP_OF_INTRST_REG));
#endif
}
int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int adc,int udpport){ int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int adc,int udpport){
int udpPacketSize=0x050E;
int ipPacketSize=0x0522;
//update adc configured //update adc configured
adcConfigured = adc; adcConfigured = adc;
//setting adc mask
int reg;
int udpPacketSize=0x050E;
int ipPacketSize=0x0522;
switch(adc){ switch(adc){
case 0: case 0:
case 1: case 1:
@ -1192,14 +1213,6 @@ int configureMAC(int ipad,long long int macad,long long int detectormacad, int d
case 3: case 3:
case 4: case 4:
ROI_flag=1; ROI_flag=1;
//setting daqregister
setDAQRegister(adc);
cleanFifo();
reg = (NCHAN*2)<<CHANNEL_OFFSET;
reg&=CHANNEL_MASK;
int mask =1<<adc;
reg|=(ACTIVE_ADC_MASK & mask);
bus_w(CHIP_OF_INTRST_REG,reg);
ipPacketSize= 256*2+14+20; ipPacketSize= 256*2+14+20;
udpPacketSize=256*2+4+8+2; udpPacketSize=256*2+4+8+2;
break; break;
@ -1208,19 +1221,14 @@ int configureMAC(int ipad,long long int macad,long long int detectormacad, int d
adc=-1; adc=-1;
adcConfigured=-1; adcConfigured=-1;
ROI_flag=0; ROI_flag=0;
//setting daqregister
setDAQRegister(adc);
cleanFifo();
reg = (NCHAN*NCHIP)<<CHANNEL_OFFSET;
reg&=CHANNEL_MASK;
reg|=ACTIVE_ADC_MASK;
bus_w(CHIP_OF_INTRST_REG,reg);
break; break;
} }
//setting daqregister setDAQRegister(adc);//token timing
//setDAQRegister(adc); cleanFifo();//adc sync
setADC(adc);//chip of interest
#ifdef DDEBUG #ifdef DDEBUG
printf("Chip of Intrst Reg:%x\n",bus_r(CHIP_OF_INTRST_REG)); printf("Chip of Intrst Reg:%x\n",bus_r(CHIP_OF_INTRST_REG));

View File

@ -65,9 +65,11 @@ int getTemperature(int tempSensor,int imod);
int initHighVoltage(int val,int imod); int initHighVoltage(int val,int imod);
int initConfGain(int isettings,int val,int imod); int initConfGain(int isettings,int val,int imod);
int setADC(int adc);
int configureMAC(int ipad, long long int macad, long long int detectormacadd, int detipad, int ival, int adc,int udpport); int configureMAC(int ipad, long long int macad, long long int detectormacadd, int detipad, int ival, int adc,int udpport);
int getAdcConfigured(); int getAdcConfigured();
u_int64_t getDetectorNumber(); u_int64_t getDetectorNumber();
u_int32_t getFirmwareVersion(); u_int32_t getFirmwareVersion();
int testFifos(void); int testFifos(void);

View File

@ -79,6 +79,13 @@ int init_detector( int b) {
prepareADC(); prepareADC();
setDAQRegister(-1); setDAQRegister(-1);
cleanFifo(); cleanFifo();
setADC(-1);
printf("in chip of interes reg:%d\n",bus_r(CHIP_OF_INTRST_REG));
int reg = (NCHAN*NCHIP)<<CHANNEL_OFFSET;
reg&=CHANNEL_MASK;
reg|=ACTIVE_ADC_MASK;
bus_w(CHIP_OF_INTRST_REG,reg);
printf("in chip of interes reg:%d\n",bus_r(CHIP_OF_INTRST_REG));
setSettings(GET_SETTINGS,-1); setSettings(GET_SETTINGS,-1);
//Initialization //Initialization
setFrames(1); setFrames(1);