Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

bocStructure.h

00001 /************************************************************************************
00002  * bocStructure.h                                            
00003  *
00004  *  synopsis:  Collects together all the BOC settings for a given set of command &
00005  *             data links. This structure is intended to be incorporated into the
00006  *             ABCDModule & PixelModule structures.    
00007  *
00008  *  Douglas Ferguson, UW Madison                              dpferguson@lbl.gov
00009  *  Peter W Phillips, Oxford University                       P.W.Phillips@rl.ac.uk
00010  *  John Richardson, Lawrence Berkeley Laboratory             john.richardson@cern.ch
00011  *  Joseph Virzi, University of California                    jsvirzi@lbl.gov
00012  ************************************************************************************/
00013 #ifndef BOC_STRUCTURE_H
00014 #define BOC_STRUCTURE_H
00015 /* register definitions for the BOC setting routines' case statements; note that some
00016    of these closely match the RRIF register definitions in registerIndices.h they are
00017    abbreviated here. (Some of the indices in rI.h are for register sets and so do not
00018    work well in the case statement). */
00019 #define BOC_VAR_TXFINE       0x90
00020 #define BOC_VAR_TXCOARSE     0x91
00021 #define BOC_VAR_TXMARKSPACE  0x92
00022 #define BOC_VAR_TXINHIBIT    0x93
00023 #define BOC_VAR_TXCURRENT    0x94
00024 
00025 #define BOC_VAR_RXTHRESHOLD  0xa0
00026 #define BOC_VAR_RXDELAY      0xa1
00027 
00028 #define BOC_VAR_BPM_CLOCK_PHASE            0xb0
00029 #define BOC_VAR_BREG_CLOCK_PHASE           0xb1
00030 #define BOC_VAR_VERNIER_CLOCK_STEPPHASE0   0xb2
00031 #define BOC_VAR_VERNIER_CLOCK_STEPPHASE1   0xb3
00032 #define BOC_VAR_VERNIER_CLOCK_FINEPHASE    0xb4
00033 
00034 #define BOC_VAR_BOCRESET       0xc0
00035 #define BOC_VAR_BPMRESET       0xc1
00036 #define BOC_VAR_TXDAC_CLEAR    0xc2
00037 #define BOC_VAR_RXDAC_CLEAR    0xc3
00038 
00039 #define BOC_VAR_STAT           0xd0
00040 #define BOC_VAR_RXDATAMODE     0xd1
00041 #define BOC_VAR_CLOCKCTRLBITS  0xd2
00042 
00043 #define BOC_VAR_FIRMWARE_REV    0xe0
00044 #define BOC_VAR_HARDWARE_REV    0xe1
00045 #define BOC_VAR_MODULETYPE      0xe2
00046 #define BOC_VAR_MNFT            0xe3
00047 #define BOC_VAR_SERIALNO        0xe4
00048 
00049 typedef struct {
00050   UINT8 txFineDelay;      //transmitter fine delay. 
00051   UINT8 txCoarseDelay;    //transmitter coarse delay.
00052   UINT8 txMarkSpace;      //transmitter markSpace ratio.
00053   UINT8 txStreamInhibit;  //0 ==> inhibit channel.
00054 
00055   UINT8 txCurrent;        //Laser current.
00056   UINT8 unused[3];
00057 } BOCTxParams;
00058 
00059 typedef struct {
00060   UINT8 rxThreshold;      //receiver threshold.
00061   UINT8 rxDelay;          //receiver delay.
00062 } BOCRxParams;
00063 
00064 typedef struct {
00065   UINT8 bpmClockPhase;
00066   UINT8 bRegClockPhase;
00067   UINT8 vernierClockStepPhase[2];
00068   UINT8 vernierClockFinePhase;
00069 
00070   UINT8 bocReset;  //needed?
00071   UINT8 bpmReset;  //  "
00072   UINT8 txDacClear; // " 
00073   UINT8 rxDacClear; // " 
00074 
00075   UINT8 status;
00076   UINT8 rxDataMode;
00077   UINT8 clockCtrlBits;
00078 
00079   UINT8 firmwareRev;
00080   UINT8 hardwareRev;
00081   UINT8 moduleType;
00082   UINT8 manufacturer;
00083   UINT8 serialNumber;
00084 
00085   UINT8 unused[3];    //data alignment.
00086   UINT32 unused1[3];
00087 } BOCGlobalParams;
00088 
00089 typedef struct {
00090   BOCTxParams      bocTxParams[48];
00091   BOCRxParams      bocRxParams[96];
00092   BOCGlobalParams  bocGlobalParams;
00093 } BOCConfig;
00094 
00095 #endif
00096 

Generated on Thu Dec 15 21:14:23 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5