00001
00002
00003 #ifndef SCTPIXELROD_TIMDEFINE_H
00004 #define SCTPIXELROD_TIMDEFINE_H
00005
00027 namespace SctPixelRod {
00028
00029 #include "processor.h"
00030
00032
00033 enum TimTimingSCT {
00034 TIM_L1A_DEADTIME = 3,
00035 TIM_ECR_DEADTIME = 7,
00036 TIM_BCR_DEADTIME = 7,
00037 TIM_CAL_DEADTIME = 27,
00038 TIM_BCID_OFFSET = 6
00039 };
00040
00041 const INT32 TIM_L1ID_FIRST = 0;
00042
00046 const INT32 TIM_SEQ_SIZE = 0x4000;
00047 const INT32 TIM_SEQ_ADDR = 0x8000;
00048
00050
00051 enum TimRegister {
00052 TIM_REG_ENABLES = 0x00,
00053 TIM_REG_COMMAND = 0x02,
00054 TIM_REG_BURST_COUNT = 0x04,
00055 TIM_REG_FREQUENCY = 0x06,
00056 TIM_REG_WINDOW = 0x08,
00057 TIM_REG_DELAY = 0x0A,
00058 TIM_REG_STATUS = 0x0C,
00059 TIM_REG_FIFO_STATUS = 0x0E,
00060 TIM_REG_TRIGGER_IDLO = 0x10,
00061 TIM_REG_TRIGGER_IDHI = 0x12,
00062 TIM_REG_TRIGGER_BCID = 0x14,
00063 TIM_REG_TRIGGER_TYPE = 0x16,
00064 TIM_REG_RUN_ENABLES = 0x18,
00065 TIM_REG_SEQ_CONTROL = 0x1A,
00066 TIM_REG_SEQ_END = 0x1C,
00067 TIM_REG_ROD_MASK = 0x1E,
00068 TIM_REG_ROD_BUSY = 0x20,
00069 TIM_REG_ROD_LATCH = 0x22,
00070 TIM_REG_ROD_MONITOR = 0x24,
00071 TIM_REG_TTC_DATA = 0x26,
00072 TIM_REG_TTC_SELECT = 0x28,
00073 TIM_REG_TTC_BCID = 0x2A,
00074 TIM_REG_TTC_RX = 0x2C,
00075 TIM_REG_TTC_STATUS = 0x2E,
00076 TIM_REG_OUTPUT = 0x30,
00077 TIM_REG_TIM_ID = 0x32
00078 };
00079
00081
00082 enum TimBitEnables {
00083 TIM_BIT_EN_INT_TRIG = 0x0002,
00084 TIM_BIT_EN_INT_ECR = 0x0004,
00085 TIM_BIT_EN_INT_BCR = 0x0008,
00086 TIM_BIT_EN_RANDOM = 0x0010,
00087 TIM_BIT_EN_INT_FER = 0x0020,
00088 TIM_BIT_EN_WINDOW = 0x0040,
00089 TIM_BIT_EN_INT_BUSY = 0x0080,
00090
00091 TIM_BIT_EN_EXT_CLK = 0x0100,
00092 TIM_BIT_EN_EXT_TRIG = 0x0200,
00093 TIM_BIT_EN_EXT_ECR = 0x0400,
00094 TIM_BIT_EN_EXT_BCR = 0x0800,
00095 TIM_BIT_EN_EXT_CAL = 0x1000,
00096 TIM_BIT_EN_EXT_FER = 0x2000,
00097 TIM_BIT_EN_EXT_SEQ = 0x4000,
00098 TIM_BIT_EN_EXT_BUSY = 0x8000
00099 };
00100
00101 enum TimMaskFrequency {
00102 TIM_MASK_TRIG_100_KHZ = 0x0006,
00103 TIM_MASK_TRIG_10_0KHZ = 0x000E,
00104 TIM_MASK_TRIG_1_00KHZ = 0x0016,
00105 TIM_MASK_TRIG_0_10KHZ = 0x001E,
00106
00107 TIM_MASK_FER_10_00HZ = 0x0600,
00108 TIM_MASK_FER_1_000HZ = 0x0E00,
00109 TIM_MASK_FER_0_100HZ = 0x1600,
00110 TIM_MASK_FER_0_010HZ = 0x1E00
00111 };
00113 enum TimBitBackplane {
00114 TIM_L1A = 0x01,
00115 TIM_ECR = 0x02,
00116 TIM_BCR = 0x04,
00117 TIM_CAL = 0x08,
00118 TIM_SID = 0x10,
00119 TIM_STT = 0x20,
00120 TIM_CMD = 0xCF,
00121 TIM_RES = 0xC0,
00122 TIM_FER = 0x40,
00123 TIM_SPA = 0x80,
00124 TIM_TRG = 0x31
00125 };
00127 enum TimBitCommand {
00128 TIM_VTRG = 0x02,
00129 TIM_VECR = 0x04,
00130 TIM_VBCR = 0x08,
00131 TIM_VCAL = 0x10,
00132 TIM_VFER = 0x20,
00133 TIM_VSPA = 0x40,
00134
00135 TIM_BIT_VRESET = 0x8000
00136 };
00137
00138 enum TimBitRunEnables {
00139 TIM_BIT_EN_ID = 0x0200,
00140 TIM_BIT_EN_TYPE = 0x0400
00141 };
00142
00143 enum TimBitSeqControl {
00144 TIM_BIT_SEQ_EN_ALL = 0x00FF,
00145 TIM_BIT_SEQ_RESET = 0x0200,
00146 TIM_BIT_SEQ_GO = 0x0400,
00147 TIM_BIT_EN_CYCLIC = 0x0800
00148 };
00149
00150 }
00151
00152 #endif // SCTPIXELROD_TIMDEFINE_H