00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef VF48_INCLUDE_H
00012 #define VF48_INCLUDE_H
00013
00014 #include <stdio.h>
00015 #include <string.h>
00016
00017 #include "mvmestd.h"
00018
00019
00020 #define VF48_IDXMAX 4096
00021
00022
00023 #define VF48_MAX_CHANNELS (DWORD) 48
00024 #define VF48_SUCCESS (1)
00025 #define VF48_ERROR (-1)
00026 #define VF48_ERR_PARM (-1)
00027 #define VF48_ERR_NODATA (503)
00028 #define VF48_ERR_HW (603)
00029 #define VF48_CSR_REG_RW (DWORD) (0)
00030 #define VF48_SELECTIVE_SET_W (DWORD) (0x0010)
00031 #define VF48_SELECTIVE_CLR_W (DWORD) (0x0014)
00032 #define VF48_TEST_REG_RW (DWORD) (0x0020)
00033 #define VF48_FIRMWARE_R (DWORD) (0x0030)
00034 #define VF48_PARAM_DATA_RW (DWORD) (0x0050)
00035 #define VF48_PARAM_ID_W (DWORD) (0x0060)
00036 #define VF48_SOFT_TRIG_W (DWORD) (0x0070)
00037 #define VF48_GRP_REG_RW (DWORD) (0x0090)
00038 #define VF48_NFRAME_R (DWORD) (0x00A0)
00039 #define VF48_GLOBAL_RESET_W (DWORD) (0x00B0)
00040 #define VF48_DATA_FIFO_R (DWORD) (0x1000)
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086 #define VF48_GRP_OFFSET (DWORD) (12)
00087 #define VF48_PARMA_BIT_RD (DWORD) (0x80)
00088 #define VF48_PEDESTAL (DWORD) (1) //** 0x0000
00089 #define VF48_HIT_THRESHOLD (DWORD) (2) //** 0x000A
00090 #define VF48_CLIP_DELAY (DWORD) (3) //** 0x0028
00091 #define VF48_PRE_TRIGGER (DWORD) (4) //** 0x0020
00092 #define VF48_SEGMENT_SIZE (DWORD) (5) //** 0x0100
00093 #define VF48_K_COEF (DWORD) (6) //** 0x0190
00094 #define VF48_L_COEF (DWORD) (7) //** 0x0200
00095 #define VF48_M_COEF (DWORD) (8) //** 0x1000
00096 #define VF48_DELAY_A (DWORD) (9) //** 0x0005
00097 #define VF48_MBIT1 (DWORD) (10) //** 0x0000
00098 #define VF48_DELAY_B (DWORD) (11) //** 0x0001
00099 #define VF48_LATENCY (DWORD) (12) //** 0x0005
00100 #define VF48_FIRMWARE_ID (DWORD) (13) //** 0x0100
00101 #define VF48_ATTENUATOR (DWORD) (14) //** 0x0190
00102 #define VF48_TRIG_THRESHOLD (DWORD) (15) //** 0x0050
00103
00104
00105
00106 #define VF48_ACTIVE_CH_MASK (DWORD) (9) //** 0x00FF << Temporary
00107 #define VF48_MBIT2 (DWORD) (11) //** 0x0000 << Temporary
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117 #define VF48_CSR_START_ACQ (DWORD) (0x00000001)
00118 #define VF48_CSR_PARM_ID_RDY (DWORD) (0x00000002)
00119 #define VF48_CSR_PARM_DATA_RDY (DWORD) (0x00000004)
00120 #define VF48_CSR_FE_NOTEMPTY (DWORD) (0x00000008)
00121 #define VF48_CSR_CRC_ERROR (DWORD) (0x00000020)
00122 #define VF48_CSR_EXT_TRIGGER (DWORD) (0x00000080)
00123 #define VF48_CSR_FE_FULL (DWORD) (0x00008000)
00124 #define VF48_RAW_DISABLE 0x2
00125 #define VF48_CH_SUPPRESS_ENABLE 0x1
00126 #define VF48_INVERSE_SIGNAL 0x8
00127 #define VF48_ALL_CHANNELS_ACTIVE 0xFF
00128
00129 #define VF48_HEADER (DWORD) (0x80000000)
00130 #define VF48_TIME_STAMP (DWORD) (0xA0000000)
00131 #define VF48_CHANNEL (DWORD) (0xC0000000)
00132 #define VF48_DATA (DWORD) (0x00000000)
00133 #define VF48_CFD_FEATURE (DWORD) (0x40000000)
00134 #define VF48_Q_FEATURE (DWORD) (0x50000000)
00135 #define VF48_TRAILER (DWORD) (0xE0000000)
00136
00137
00138
00139
00140 int vf48_isPresent(MVME_INTERFACE *mvme, DWORD base);
00141 int vf48_Setup(MVME_INTERFACE *mvme, DWORD base, int mode);
00142 int vf48_EventRead(MVME_INTERFACE *myvme, DWORD base, DWORD *event, int *elements);
00143 int vf48_EventRead64(MVME_INTERFACE *myvme, DWORD base, DWORD *event, int *elements);
00144 int vf48_GroupRead(MVME_INTERFACE *myvme, DWORD base, DWORD *event, int grp, int *elements);
00145 int vf48_DataRead(MVME_INTERFACE *myvme, DWORD base, DWORD *event, int *elements);
00146 int vf48_ExtTrgSet(MVME_INTERFACE *myvme, DWORD base);
00147 int vf48_ExtTrgClr(MVME_INTERFACE *myvme, DWORD base);
00148 int vf48_Reset(MVME_INTERFACE *myvme, DWORD base);
00149 int vf48_AcqStart(MVME_INTERFACE *myvme, DWORD base);
00150 int vf48_AcqStop(MVME_INTERFACE *myvme, DWORD base);
00151 int vf48_NFrameRead(MVME_INTERFACE *myvme, DWORD base);
00152 int vf48_CsrRead(MVME_INTERFACE *myvme, DWORD base);
00153 int vf48_GrpRead(MVME_INTERFACE *myvme, DWORD base);
00154 int vf48_FeFull(MVME_INTERFACE *myvme, DWORD base);
00155 int vf48_EvtEmpty(MVME_INTERFACE *myvme, DWORD base);
00156 int vf48_GrpEnable(MVME_INTERFACE *myvme, DWORD base, int grpbit);
00157 int vf48_GrpRead(MVME_INTERFACE *myvme, DWORD base);
00158 int vf48_GrpOperationMode(MVME_INTERFACE *myvme, DWORD base, int grp, int opmode);
00159 int vf48_ParameterRead(MVME_INTERFACE *myvme, DWORD base, int grp, int param);
00160 int vf48_ParameterWrite(MVME_INTERFACE *myvme, DWORD base, int grp, int param, int value);
00161 int vf48_ParameterCheck(MVME_INTERFACE *myvme, DWORD base, int what);
00162 int vf48_SegmentSizeSet(MVME_INTERFACE *mvme, DWORD base, DWORD size);
00163 int vf48_SegmentSizeRead(MVME_INTERFACE *mvme, DWORD base, int grp);
00164 int vf48_TrgThresholdSet(MVME_INTERFACE *mvme, DWORD base, int grp, DWORD size);
00165 int vf48_TrgThresholdRead(MVME_INTERFACE *mvme, DWORD base, int grp);
00166 int vf48_HitThresholdSet(MVME_INTERFACE *mvme, DWORD base, int grp, DWORD size);
00167 int vf48_HitThresholdRead(MVME_INTERFACE *mvme, DWORD base, int grp);
00168 int vf48_ActiveChMaskSet(MVME_INTERFACE *mvme, DWORD base, int grp, DWORD size);
00169 int vf48_ActiveChMaskRead(MVME_INTERFACE *mvme, DWORD base, int grp);
00170 int vf48_RawDataSuppSet(MVME_INTERFACE *mvme, DWORD base, int grp, DWORD size);
00171 int vf48_RawDataSuppRead(MVME_INTERFACE *mvme, DWORD base, int grp);
00172 int vf48_ChSuppSet(MVME_INTERFACE *mvme, DWORD base, int grp, DWORD size);
00173 int vf48_ChSuppRead(MVME_INTERFACE *mvme, DWORD base, int grp);
00174 int vf48_DivisorWrite(MVME_INTERFACE *mvme, DWORD base, DWORD size);
00175 int vf48_DivisorRead(MVME_INTERFACE *mvme, DWORD base, int grp);
00176 int vf48_Trigger(MVME_INTERFACE *mvme, DWORD base);
00177 int vf48_Status(MVME_INTERFACE *mvme, DWORD base);
00178 #endif
00179