Modified upto DAQ reg

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@75 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d 2012-01-06 10:02:55 +00:00
parent c9a314d829
commit 1770045bce
7 changed files with 58 additions and 30 deletions

View File

@ -111,33 +111,6 @@ int mapCSP0(void) {
int setDummyRegister() {
int result = OK;
/*
//to check if the dac really works with aldos code
int dacnum,dacvalue=700;
u_int32_t offw,codata;
u_int16_t valw;
int iru,i,ddx,csdx,cdx;
offw=0x37;
for(dacnum=0;dacnum<8;dacnum++)
{
ddx=2; csdx=0; cdx=1;
codata=((((0x2)<<4)+((dacnum)&0xf))<<16)+((dacvalue<<4)&0xfff0);
valw=0xffff; bus_w(offw,(valw)); // start point
valw=((valw&(~(0x1<<csdx))));bus_w(offw,valw); //chip sel bar down
for (i=1;i<25;i++) {
valw=(valw&(~(0x1<<cdx)));bus_w(offw,valw); //cldwn
valw=((valw&(~(0x1<<ddx)))+(((codata>>(24-i))&0x1)<<ddx));bus_w(offw,valw);//write data (i)
// printf("%d ", ((codata>>(24-i))&0x1));
valw=((valw&(~(0x1<<cdx)))+(0x1<<cdx));bus_w(offw,valw);//clkup
}
valw=((valw&(~(0x1<<csdx)))+(0x1<<csdx));bus_w(offw,valw); //csup
valw=(valw&(~(0x1<<cdx)));bus_w(offw,valw); //cldwn
valw=0xffff; bus_w(offw,(valw)); // stop point =start point of course
printf("Writing %d in DAC(0-7) %d \n",dacvalue,dacnum);
}
*/
volatile u_int32_t val,addr;
addr = DUMMY_REG;
int i;
@ -173,12 +146,57 @@ int setDummyRegister() {
{
printf("\n\n----------------------------------------------------------------------------------------------");
printf("\nATTEMPT 100: FPGA DUMMY REGISTER OK!!\n");
printf("----------------------------------------------------------------------------------------------\n\n");
printf("----------------------------------------------------------------------------------------------\n");
}
return result;
}
int setDAQRegister()
{
u_int32_t addr, reg, val;
int result=OK;
addr=DAQ_REG;
val=34+(42<<8)+(319<<16);
reg=bus_r(addr);
//write to daqreg if not valid
if(reg!=val){
bus_w(addr,val);
reg=bus_r(addr);
if(reg!=val)
result=FAIL;
}
#ifdef VERBOSE
printf("DAQ reg:20916770:%d\n",reg);
#endif
return result;
}
int setPhaseShiftOnce(){
u_int32_t addr, reg, val;
int result=OK, i,off;
addr=MULTI_PURPOSE_REG;
//off=15;
// mask=((0x1)<<off);
reg=bus_r(addr);
if(reg
reg|=((0x1)<<off);
// if(reg&
for (i=1;i<PHASE_SHIFT;i++) {
bus_w(addr,0x2821);
bus_w(addr,0x2820);
}
reg=bus_r(addr);
// bus_w(addr, 1<<
return result;
}
//aldos function volatile (not needed)
u_int16_t bus_w16(u_int32_t offset, u_int16_t data) {
u_int16_t *ptr1;

View File

@ -20,6 +20,9 @@
int mapCSP0(void);
int setDummyRegister();
int setDAQRegister();
int setPhaseShiftOnce();
u_int16_t bus_w16(u_int32_t offset, u_int16_t data);//aldos function
u_int32_t bus_w(u_int32_t offset, u_int32_t data);
u_int32_t bus_r(u_int32_t offset);

View File

@ -89,6 +89,7 @@ int initDetector() {
sDac=noneSelected;
sAdc=noneSelected;
/*
setCSregister(ALLMOD); //commented out by dhanya
setSSregister(ALLMOD);

View File

@ -18,7 +18,7 @@
#define VINCM_VALS {0,0,300,400,500,600,700}
#define VREFCOMP_VALS {0,0,320,420,520,620,720}
#define IBTESTC_VALS {0,0,340,440,540,640,740}
#define CONF_GAIN {0,0, 0, 1, 6, 2, 1}//dynamic gain confgain yet to be figured out
#define CONF_GAIN {0,0, 0, 1, 6, 2, 1}//dynamic gain confgain yet to be figured out-probably 8 or 16
#define DEFAULTGAIN {11.66,9.32,14.99}

View File

@ -10,6 +10,7 @@
/* registers defined in FPGA */
#define GAIN_REG 0x10<<11
#define DAQ_REG 0x1b<<11
#define MULTI_PURPOSE_REG 0x94<<11
#define DUMMY_REG 0x13<<11
#define FIX_PATT_REG 0x45<<11

View File

@ -27,6 +27,8 @@
#define TRIM_DR (((int)pow(2,NTRIMBITS))-1)
#define COUNT_DR (((int)pow(2,NCOUNTBITS))-1)
#define PHASE_SHIFT 120
#define ALLMOD 0xffff
#define ALLFIFO 0xffff

View File

@ -68,8 +68,11 @@ int init_detector( int b) {
initDetector();
printf("\ninitdetector done! \n");
setDummyRegister();
// setPhaseShiftOnce();
setDAQRegister();
setSettings(GET_SETTINGS);
//testRAM();
}
#endif