Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   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_TXFINE       0x00 */
00020 /* #define BOC_TXCOARSE     0x01 */
00021 /* #define BOC_TXMARKSPACE  0x02 */
00022 /* #define BOC_TXINHIBIT    0x03 */
00023 /* #define BOC_TXCURRENT    0x04 */
00024 
00025 /* #define BOC_RXTHRESHOLD  0x10 */
00026 /* #define BOC_RXDELAY      0x11 */
00027 
00028 /* #define BOC_BPM_CLOCK_PHASE            0x20 */
00029 /* #define BOC_BREG_CLOCK_PHASE           0x21 */
00030 /* #define BOC_VERNIER_CLOCK_STEPPHASE0   0x22 */
00031 /* #define BOC_VERNIER_CLOCK_STEPPHASE1   0x23 */
00032 /* #define BOC_VERNIER_CLOCK_FINEPHASE    0x24 */
00033 
00034 /* #define BOC_BOCRESET       0x30 */
00035 /* #define BOC_BPMRESET       0x31 */
00036 /* #define BOC_TXDAC_CLEAR    0x32 */
00037 /* #define BOC_RXDAC_CLEAR    0x33 */
00038 
00039 /* #define BOC_STAT           0x40 */
00040 /* #define BOC_RXDATAMODE     0x41 */
00041 /* #define BOC_CLOCKCTRLBITS  0x42 */
00042 
00043 /* #define BOC_FIRMWARE_REV    0x50 */
00044 /* #define BOC_HARDWARE_REV    0x51 */
00045 /* #define BOC_MODULETYPE      0x52 */
00046 /* #define BOC_MNFT            0x53 */
00047 /* #define BOC_SERIALNO        0x54 */
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 Mon Dec 8 18:03:47 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3