V1495Lib.h
Revision as of 22:37, 24 June 2009 by Oborn (talk | contribs) (Created page with '<pre> →v1495Lib.h: #ifndef V1495LIB_H #define V1495LIB_H #define V890_MAX_CHANNELS 128 #define V890_MAX_WORDS_PER_EVENT 34 #define V890_MAX_WORDS_PER_BOARD 3000 /* ...')
/* v1495Lib.h */ #ifndef V1495LIB_H #define V1495LIB_H #define V890_MAX_CHANNELS 128 #define V890_MAX_WORDS_PER_EVENT 34 #define V890_MAX_WORDS_PER_BOARD 3000 /* Define a Structure for access */ /* all addressing is A24/A32, all data D16 except scratch32 */ typedef struct v1495_struct { /*0x0000*/ volatile unsigned short data[16384]; /* R/W */ /*0x8000*/ volatile unsigned short control; /* R/W */ /*0x8002*/ volatile unsigned short status; /* R */ /*0x8004*/ volatile unsigned short intLevel; /* R/W */ /*0x8006*/ volatile unsigned short intVector; /* R/W */ /*0x8008*/ volatile unsigned short geoAddr; /* R */ /*0x800A*/ volatile unsigned short moduleReset; /* W */ /*0x800C*/ volatile unsigned short firmwareRev; /* R */ /*0x800E*/ volatile unsigned short selflashVME; /* R/W */ /*0x8010*/ volatile unsigned short flashVME; /* R/W */ /*0x8012*/ volatile unsigned short selflashUSER; /* R/W */ /*0x8014*/ volatile unsigned short flashUSER; /* R/W */ /*0x8016*/ volatile unsigned short configUSER; /* R/W */ /*0x8018*/ volatile unsigned short scratch16; /* R/W */ /*0x801A*/ volatile unsigned short res1[3]; /*0x8020*/ volatile unsigned int scratch32; /* R/W */ /*0x8024*/ volatile unsigned short res2[110]; /*0x8100*/ volatile unsigned short configROM[127]; /* R */ } V1495; #define V1495_READOUTCTRL_ADDR_A32 0x90110000 #define V1495_READOUTCTRL_ADDR_A24 0x110000 #define TXSTART_SOFTTRIG 0x0001 #define TXSTART_EXTTRIG 0x0002 #define TRIGWORD_LV1A 0x4 #define TRIGWORD_CAL 0x7 #define TRIGWORD_RESYNC 0x6 #define TRIGWORD_BC0 0x5 #define FIFO_WORDS_MASK 0x3F #define EVENT_SIZE_MASK 0x0F #define V1495_BOARD_ID 0x05D7 #define BOARD_ID_OFFSET_H 0x8139 #define BOARD_ID_OFFSET_L 0x813D typedef struct { volatile unsigned short MezzanineIDs; /* 0x0000 - 0x0001 */ volatile unsigned short Revision; /* 0x0002 - 0x0003 */ volatile unsigned short Reset; /* 0x0004 - 0x0005 */ volatile unsigned short Reserved1[5]; /* 0x0006 - 0x000F */ volatile unsigned short TxStart; /* 0x0010 - 0x0011 */ volatile unsigned short SoftTrigger; /* 0x0012 - 0x0013 */ volatile unsigned short TriggerWord; /* 0x0014 - 0x0015 */ volatile unsigned short TxWord[12]; /* 0x0016 - 0x002D */ volatile unsigned short Reserved2[1]; /* 0x002E - 0x002F */ volatile unsigned short FIFOLength[12]; /* 0x0030 - 0x0047 */ volatile unsigned short EventSize[12]; /* 0x0048 - 0x005F */ volatile unsigned short Reserved3[16]; /* 0x0060 - 0x007F */ volatile unsigned short EventsSentH[12]; /* 0x0080 - 0x0097 */ volatile unsigned short Reserved4[4]; /* 0x0098 - 0x009F */ volatile unsigned short EventsSentL[12]; /* 0x00A0 - 0x00B7 */ volatile unsigned short Reserved5[8100]; /* 0x00B8 - 0x3FFF */ volatile unsigned short EventData[12][128]; /* 0x4000 - 0x4BFF */ //volatile unsigned short EventData_1[128]; //volatile unsigned short EventData_2[128]; //volatile unsigned short EventData_3[128]; //volatile unsigned short EventData_4[128]; //volatile unsigned short EventData_5[128]; //volatile unsigned short EventData_6[128]; //volatile unsigned short EventData_7[128]; //volatile unsigned short EventData_8[128]; //volatile unsigned short EventData_9[128]; //volatile unsigned short EventData_A[128]; //volatile unsigned short EventData_B[128]; } V1495ReadoutCtrlRegs; #endif