CAEN V1495 IO

From New IAC Wiki
Jump to navigation Jump to search

Manual

Media:CAEN_V1495_Manual_Rev6.pdf

Readout code

V1

The ZIP file below contains the HDL source code to download into the V1495

http://www.physics.isu.edu/~tforest/DAQ/GEMReadout_V1495Source_Rev1_0.zip

The ZIP file below contains the ROC library

http://www.physics.isu.edu/~tforest/DAQ/GEMReadout_VxWorkxSource_11_26_2008.zip


ROC lib

compile library

To compile the ROC library I executed the following command within the subdirectory containing the v1495.c file

ccppc  -fno-builtin -fno-for-scope -fstrength-reduce -mlongcall -mcpu=604 -DCPU=PPC604 -DVXWORKS -D_GNU_TOOL -DVXWORKSPPC -I/usr/local/coda/2.5/common/include/ -I../h -c -o v1495Lib.o -i v1495.c


load library onto the ROC

I then copies the library v1495Lib.o into my ROC library subdirectory which is where the ROC is pooing at boot up

/home/daq/CODA/ROClibs/libs

I loaded the library by hand by typing the following at the ROC console

-> ld < v1495Lib.o
value = 268430512 = 0xfffecb0

Setting address

The address pins on this module are not labeled so I adopted the convention of numbering them from left to right as I look from the front pannel.

400 px

Address
Pin Setting
SW 3 3
SW 4 2
SW 7 1
SW 8 1


probing memory

I set the switches as follows


   sw3  sw4  sw7  sw8
    0    8    1    1


And the following is a printout of my board:
(0x80118000 - A32    0x90118000 - A24)


-> m 0x80118000
80118000:  0000-
80118002:  0000-
80118004:  0000-
80118006:  00dd-
80118008:  001f-
8011800a:  ffff-
8011800c:  0002-
8011800e:  0001-
80118010:  00ff-
80118012:  0001-
80118014:  00ff-
80118016:  0001-
80118018:  0000-
8011801a:  ffff-.

value = 1 = 0x1
-> m 0x90118000
90118000:  0000-
90118002:  0000-
90118004:  0000-
90118006:  00dd-
90118008:  001f-
9011800a:  ffff-
9011800c:  0002-
9011800e:  0001-
90118010:  00ff-
90118012:  0001-
90118014:  00ff-
90118016:  0001-
90118018:  0000-
9011801a:  ffff-.

value = 1 = 0x1
->

v1495test11) function

The v1495 library has the function below which when

//v1495test()                                                                                                                     
int
v1495test(unsigned int baseaddr)
{
  // the address location below starts at the USER FPGA access location which is                                                  
  //0x8000 lower in memory than the dial switches for the module address location.                                                

  // if SW3=0 SW4=8 SW7=1 SW8=1 => 0x80118000 is the 32 bit address and 0x90118000 is the 24 bit adresss                          

  // then try v1495test(0x80110000)                                                                                               
  volatile V1495 *v1495 = (V1495 *) baseaddr;
  unsigned short *data16 = (unsigned short *)&(v1495->control);

  printf("Control      [0x%08x] = 0x%04x\n",&(v1495->control),v1495->control);
  printf("firmwareRev  [0x%08x] = 0x%04x\n",&(v1495->firmwareRev),v1495->firmwareRev);
  printf("selflashVME  [0x%08x] = 0x%04x\n",&(v1495->selflashVME),v1495->selflashVME);
  printf("flashVME     [0x%08x] = 0x%04x\n",&(v1495->flashVME),v1495->flashVME);
  printf("selflashUSER [0x%08x] = 0x%04x\n",&(v1495->selflashUSER),v1495->selflashUSER);
  printf("flashUSER    [0x%08x] = 0x%04x\n",&(v1495->flashUSER),v1495->flashUSER);
  printf("configROM    [0x%08x] = 0x%04x\n",&(v1495->configROM[0]),v1495->configROM[0]);

  return(0);
}

<pre>

example

<pre>
-> v1495test(0x80110000);                                                       
Control      [0x80118000] = 0x0000                                              
firmwareRev  [0x8011800c] = 0x0003                                              
selflashVME  [0x8011800e] = 0x0001                                              
flashVME     [0x80118010] = 0x00ff                                              
selflashUSER [0x80118012] = 0x0001                                              
flashUSER    [0x80118014] = 0x00ff                                              
configROM    [0x80118100] = 0x0065                                              
value = 0 = 0x0                                                                 

Download Firmware

v1495firmware(0x90118000,"GEMReadout.rbf",0,0)


Go back VME_modules Go back