cvt_V1190.h

Go to the documentation of this file.
00001 
00002 
00010 
00011 #ifndef __CVT_V1190_DEF_H
00012 #define __CVT_V1190_DEF_H
00013 
00015 // File includes
00017 #include "cvt_common_defs.h"
00018 #include "cvt_board_commons.h"
00020 // Global defines
00022 
00024 
00029 
00030 #define CVT_V1190_USE_DATA_QUEUE        1
00031 
00033 
00038 
00039 #define CVT_V1190_QUEUE_SIZE_DWORD      (1024*1024)     
00040 
00042 
00047 
00048 typedef enum
00049 {
00050         CVT_V1190_TYPE_A,                                                       
00051         CVT_V1190_TYPE_B,                                                       
00052 } CVT_V1190_TYPES;
00053 
00055 
00061 
00062 typedef struct
00063 {
00064         cvt_board_data  m_common_data;                          
00065         //
00066         // Board specific data
00067         CVT_V1190_TYPES m_type;                                         
00068 #ifdef CVT_V1190_USE_DATA_QUEUE
00069         UINT32 *m_queue;                                                        
00070         long m_queue_ini;                                                       
00071         long m_queue_end;                                                       
00072 #endif
00073 } cvt_V1190_data;
00074 
00075 
00076 #define CVT_V1190_NUM_TDC_A             4                               
00077 #define CVT_V1190_NUM_TDC_B             2                               
00079 
00080 // Registers address
00081 
00082 #define CVT_V1190_OUT_BUFFER_ADD                                0x0000                  
00083 #define CVT_V1190_CONTROL_ADD                                   0x1000                  
00084 #define CVT_V1190_STATUS_ADD                                    0x1002                  
00085 #define CVT_V1190_INT_LEVEL_ADD                                 0x100A                  
00086 #define CVT_V1190_INT_VECTOR_ADD                                0x100C                  
00087 #define CVT_V1190_GEO_ADDRESS_ADD                               0x100E                  
00088 #define CVT_V1190_MCST_CBLT_ADDRESS_ADD                 0x1010                  
00089 #define CVT_V1190_MCST_CBLT_CTRL_ADD                    0x1012                  
00090 #define CVT_V1190_MOD_RESET_ADD                                 0x1014                  
00091 #define CVT_V1190_SW_CLEAR_ADD                                  0x1016                  
00092 #define CVT_V1190_SW_EVENT_RESET_ADD                    0x1018                  
00093 #define CVT_V1190_SW_TRIGGER_ADD                                0x101A                  
00094 #define CVT_V1190_EVENT_COUNTER_ADD                             0x101C                  
00095 #define CVT_V1190_EVENT_STORED_ADD                              0x1020                  
00096 #define CVT_V1190_ALMOST_FULL_LVL_ADD                   0x1022                  
00097 #define CVT_V1190_BLT_EVENT_NUM_ADD                             0x1024                  
00098 #define CVT_V1190_FW_REV_ADD                                    0x1026                  
00099 #define CVT_V1190_TESTREG_ADD                                   0x1028                  
00100 #define CVT_V1190_OUT_PROG_CTRL_ADD                             0x102C                  
00101 #define CVT_V1190_MICRO_ADD                                             0x102E                  
00102 #define CVT_V1190_MICRO_HND_ADD                                 0x1030                  
00103 #define CVT_V1190_SEL_FLASH_ADD                                 0x1032                  
00104 #define CVT_V1190_FLASH_ADD                                             0x1034                  
00105 #define CVT_V1190_COMP_SRAM_PAGE_ADD                    0x1036                  
00106 #define CVT_V1190_EVENT_FIFO_ADD                                0x1038                  
00107 #define CVT_V1190_EVENT_FIFO_STORED_ADD                 0x103C                  
00108 #define CVT_V1190_EVENT_FIFO_STATUS_ADD                 0x103E                  
00109 #define CVT_V1190_DUMMY32_ADD                                   0x1200                  
00110 #define CVT_V1190_DUMMY16_ADD                                   0x1204                  
00111 #define CVT_V1190_ROM_OUI_2_ADD                         0x4024                  
00112 #define CVT_V1190_ROM_OUI_1_ADD                                 0x4028                  
00113 #define CVT_V1190_ROM_OUI_0_ADD                         0x402C                  
00114 #define CVT_V1190_ROM_VERSION_ADD                               0x4030                  
00115 #define CVT_V1190_ROM_BOARD_ID_2_ADD                    0x4034                  
00116 #define CVT_V1190_ROM_BOARD_ID_1_ADD                            0x4038                  
00117 #define CVT_V1190_ROM_BOARD_ID_0_ADD                    0x403C                  
00118 #define CVT_V1190_ROM_REVISION_3_ADD                    0x4040                  
00119 #define CVT_V1190_ROM_REVISION_2_ADD                    0x4044                  
00120 #define CVT_V1190_ROM_REVISION_1_ADD                    0x4048                  
00121 #define CVT_V1190_ROM_REVISION_0_ADD                    0x404C                  
00122 #define CVT_V1190_ROM_SERIAL_1_ADD                      0x4080                  
00123 #define CVT_V1190_ROM_SERIAL_0_ADD                      0x4084                  
00125 
00126 // Registers data size
00127 
00128 #define CVT_V1190_OUT_BUFFER_DATA_SIZE                  cvD64                   
00129 #define CVT_V1190_CONTROL_DATA_SIZE                             cvD16                   
00130 #define CVT_V1190_STATUS_DATA_SIZE                              cvD16                   
00131 #define CVT_V1190_INT_LEVEL_DATA_SIZE                   cvD16                   
00132 #define CVT_V1190_INT_VECTOR_DATA_SIZE                  cvD16                   
00133 #define CVT_V1190_GEO_ADDRESS_DATA_SIZE                 cvD16                   
00134 #define CVT_V1190_MCST_CBLT_ADDRESS_DATA_SIZE   cvD16                   
00135 #define CVT_V1190_MCST_CBLT_CTRL_DATA_SIZE              cvD16                   
00136 #define CVT_V1190_MOD_RESET_DATA_SIZE                   cvD16                   
00137 #define CVT_V1190_SW_CLEAR_DATA_SIZE                    cvD16                   
00138 #define CVT_V1190_SW_EVENT_RESET_DATA_SIZE              cvD16                   
00139 #define CVT_V1190_SW_TRIGGER_DATA_SIZE                  cvD16                   
00140 #define CVT_V1190_EVENT_COUNTER_DATA_SIZE               cvD32                   
00141 #define CVT_V1190_EVENT_STORED_DATA_SIZE                cvD16                   
00142 #define CVT_V1190_ALMOST_FULL_LVL_DATA_SIZE             cvD16                   
00143 #define CVT_V1190_BLT_EVENT_NUM_DATA_SIZE               cvD16                   
00144 #define CVT_V1190_FW_REV_DATA_SIZE                              cvD16                   
00145 #define CVT_V1190_TESTREG_DATA_SIZE                             cvD32                   
00146 #define CVT_V1190_OUT_PROG_CTRL_DATA_SIZE               cvD16                   
00147 #define CVT_V1190_MICRO_DATA_SIZE                               cvD16                   
00148 #define CVT_V1190_MICRO_HND_DATA_SIZE                   cvD16                   
00149 #define CVT_V1190_SEL_FLASH_DATA_SIZE                   cvD16                   
00150 #define CVT_V1190_FLASH_DATA_SIZE                               cvD16                   
00151 #define CVT_V1190_COMP_SRAM_PAGE_DATA_SIZE              cvD16                   
00152 #define CVT_V1190_EVENT_FIFO_DATA_SIZE                  cvD32                   
00153 #define CVT_V1190_EVENT_FIFO_STORED_DATA_SIZE   cvD16                   
00154 #define CVT_V1190_EVENT_FIFO_STATUS_DATA_SIZE   cvD16                   
00155 #define CVT_V1190_DUMMY32_DATA_SIZE                             cvD32                   
00156 #define CVT_V1190_DUMMY16_DATA_SIZE                             cvD16                   
00157 #define CVT_V1190_ROM_OUI_2_DATA_SIZE                   cvD16                   
00158 #define CVT_V1190_ROM_OUI_1_DATA_SIZE                           cvD16                   
00159 #define CVT_V1190_ROM_OUI_0_DATA_SIZE                   cvD16                   
00160 #define CVT_V1190_ROM_VERSION_DATA_SIZE                 cvD16                   
00161 #define CVT_V1190_ROM_BOARD_ID_2_DATA_SIZE      cvD16                   
00162 #define CVT_V1190_ROM_BOARD_ID_1_DATA_SIZE              cvD16                   
00163 #define CVT_V1190_ROM_BOARD_ID_0_DATA_SIZE      cvD16                   
00164 #define CVT_V1190_ROM_REVISION_3_DATA_SIZE              cvD16                   
00165 #define CVT_V1190_ROM_REVISION_2_DATA_SIZE              cvD16                   
00166 #define CVT_V1190_ROM_REVISION_1_DATA_SIZE              cvD16                   
00167 #define CVT_V1190_ROM_REVISION_0_DATA_SIZE              cvD16                   
00168 #define CVT_V1190_ROM_SERIAL_1_DATA_SIZE                cvD16                   
00169 #define CVT_V1190_ROM_SERIAL_0_DATA_SIZE                cvD16                   
00171 
00172 // Registers address modifiers
00173 
00174 #define CVT_V1190_OUT_BUFFER_AM                                 cvA32_S_MBLT    
00175 #define CVT_V1190_CONTROL_AM                                    cvA32_S_DATA    
00176 #define CVT_V1190_STATUS_AM                                             cvA32_S_DATA    
00177 #define CVT_V1190_INT_LEVEL_AM                                  cvA32_S_DATA    
00178 #define CVT_V1190_INT_VECTOR_AM                                 cvA32_S_DATA    
00179 #define CVT_V1190_GEO_ADDRESS_AM                                cvA32_S_DATA    
00180 #define CVT_V1190_MCST_CBLT_ADDRESS_AM                  cvA32_S_DATA    
00181 #define CVT_V1190_MCST_CBLT_CTRL_AM                             cvA32_S_DATA    
00182 #define CVT_V1190_MOD_RESET_AM                                  cvA32_S_DATA    
00183 #define CVT_V1190_SW_CLEAR_AM                                   cvA32_S_DATA    
00184 #define CVT_V1190_SW_EVENT_RESET_AM                             cvA32_S_DATA    
00185 #define CVT_V1190_SW_TRIGGER_AM                                 cvA32_S_DATA    
00186 #define CVT_V1190_EVENT_COUNTER_AM                              cvA32_S_DATA    
00187 #define CVT_V1190_EVENT_STORED_AM                               cvA32_S_DATA    
00188 #define CVT_V1190_ALMOST_FULL_LVL_AM                    cvA32_S_DATA    
00189 #define CVT_V1190_BLT_EVENT_NUM_AM                              cvA32_S_DATA    
00190 #define CVT_V1190_FW_REV_AM                                             cvA32_S_DATA    
00191 #define CVT_V1190_TESTREG_AM                                    cvA32_S_DATA    
00192 #define CVT_V1190_OUT_PROG_CTRL_AM                              cvA32_S_DATA    
00193 #define CVT_V1190_MICRO_AM                                              cvA32_S_DATA    
00194 #define CVT_V1190_MICRO_HND_AM                                  cvA32_S_DATA    
00195 #define CVT_V1190_SEL_FLASH_AM                                  cvA32_S_DATA    
00196 #define CVT_V1190_FLASH_AM                                              cvA32_S_DATA    
00197 #define CVT_V1190_COMP_SRAM_PAGE_AM                             cvA32_S_DATA    
00198 #define CVT_V1190_EVENT_FIFO_AM                                 cvA32_S_DATA    
00199 #define CVT_V1190_EVENT_FIFO_STORED_AM                  cvA32_S_DATA    
00200 #define CVT_V1190_EVENT_FIFO_STATUS_AM                  cvA32_S_DATA    
00201 #define CVT_V1190_DUMMY32_AM                                    cvA32_S_DATA    
00202 #define CVT_V1190_DUMMY16_AM                                    cvA32_S_DATA    
00203 #define CVT_V1190_ROM_OUI_2_AM                          cvA32_S_DATA    
00204 #define CVT_V1190_ROM_OUI_1_AM                                  cvA32_S_DATA    
00205 #define CVT_V1190_ROM_OUI_0_AM                          cvA32_S_DATA    
00206 #define CVT_V1190_ROM_VERSION_AM                                cvA32_S_DATA    
00207 #define CVT_V1190_ROM_BOARD_ID_2_AM                     cvA32_S_DATA    
00208 #define CVT_V1190_ROM_BOARD_ID_1_AM                             cvA32_S_DATA    
00209 #define CVT_V1190_ROM_BOARD_ID_0_AM                     cvA32_S_DATA    
00210 #define CVT_V1190_ROM_REVISION_3_AM                             cvA32_S_DATA    
00211 #define CVT_V1190_ROM_REVISION_2_AM                             cvA32_S_DATA    
00212 #define CVT_V1190_ROM_REVISION_1_AM                             cvA32_S_DATA    
00213 #define CVT_V1190_ROM_REVISION_0_AM                             cvA32_S_DATA    
00214 #define CVT_V1190_ROM_SERIAL_1_AM                               cvA32_S_DATA    
00215 #define CVT_V1190_ROM_SERIAL_0_AM                               cvA32_S_DATA    
00217 #define CVT_V1190_MAX_CHANNEL_N                                 128                             
00219 
00220 
00225 
00226 typedef enum
00227 {
00228         CVT_V1190_OUT_BUFFER_INDEX,                                     
00229         CVT_V1190_CONTROL_INDEX,                                        
00230         CVT_V1190_STATUS_INDEX,                                         
00231         CVT_V1190_INT_LEVEL_INDEX,                                      
00232         CVT_V1190_INT_VECTOR_INDEX,                                     
00233         CVT_V1190_GEO_ADDRESS_INDEX,                            
00234         CVT_V1190_MCST_CBLT_ADDRESS_INDEX,                      
00235         CVT_V1190_MCST_CBLT_CTRL_INDEX,                         
00236         CVT_V1190_MOD_RESET_INDEX,                                      
00237         CVT_V1190_SW_CLEAR_INDEX,                                       
00238         CVT_V1190_SW_EVENT_RESET_INDEX,                         
00239         CVT_V1190_SW_TRIGGER_INDEX,                                     
00240         CVT_V1190_EVENT_COUNTER_INDEX,                          
00241         CVT_V1190_EVENT_STORED_INDEX,                           
00242         CVT_V1190_ALMOST_FULL_LVL_INDEX,                        
00243         CVT_V1190_BLT_EVENT_NUM_INDEX,                          
00244         CVT_V1190_FW_REV_INDEX,                                         
00245         CVT_V1190_TESTREG_INDEX,                                        
00246         CVT_V1190_OUT_PROG_CTRL_INDEX,                          
00247         CVT_V1190_MICRO_INDEX,                                          
00248         CVT_V1190_MICRO_HND_INDEX,                                      
00249         CVT_V1190_SEL_FLASH_INDEX,                                      
00250         CVT_V1190_FLASH_INDEX,                                          
00251         CVT_V1190_COMP_SRAM_PAGE_INDEX,                         
00252         CVT_V1190_EVENT_FIFO_INDEX,                                     
00253         CVT_V1190_EVENT_FIFO_STORED_INDEX,                      
00254         CVT_V1190_EVENT_FIFO_STATUS_INDEX,                      
00255         CVT_V1190_DUMMY32_INDEX,                                        
00256         CVT_V1190_DUMMY16_INDEX,                                        
00257         CVT_V1190_ROM_OUI_2_INDEX,                              
00258         CVT_V1190_ROM_OUI_1_INDEX,                                      
00259         CVT_V1190_ROM_OUI_0_INDEX,                              
00260         CVT_V1190_ROM_VERSION_INDEX,                            
00261         CVT_V1190_ROM_BOARD_ID_2_INDEX,                 
00262         CVT_V1190_ROM_BOARD_ID_1_INDEX,                         
00263         CVT_V1190_ROM_BOARD_ID_0_INDEX,                 
00264         CVT_V1190_ROM_REVISION_3_INDEX,                         
00265         CVT_V1190_ROM_REVISION_2_INDEX,                         
00266         CVT_V1190_ROM_REVISION_1_INDEX,                         
00267         CVT_V1190_ROM_REVISION_0_INDEX,                         
00268         CVT_V1190_ROM_SERIAL_1_INDEX,                           
00269         CVT_V1190_ROM_SERIAL_0_INDEX,                           
00270 } CVT_V1190_REG_INDEX;
00271 
00273 // Micro register opcodes
00275 
00277 
00280 
00281 typedef enum
00282 {
00284         // Micro register opcodes: ACQUISITION MODE
00286         CVT_V1190_TRG_MATCH_OPCODE                                      = 0x0000,               
00287         CVT_V1190_CONT_STORE_OPCODE                                     = 0x0100,               
00288         CVT_V1190_READ_ACQ_MOD_OPCODE                           = 0x0200,               
00289         CVT_V1190_SET_KEEP_TOKEN_OPCODE                         = 0x0300,               
00290         CVT_V1190_CLEAR_KEEP_TOKEN_OPCODE                       = 0x0400,               
00291         CVT_V1190_LOAD_DEF_CONFIG_OPCODE                        = 0x0500,               
00292         CVT_V1190_SAVE_USER_CONFIG_OPCODE                       = 0x0600,               
00293         CVT_V1190_LOAD_USER_CONFIG_OPCODE                       = 0x0700,               
00294         CVT_V1190_AUTOLOAD_USER_CONFIG_OPCODE           = 0x0800,               
00295         CVT_V1190_AUTOLOAD_DEF_CONFIG_OPCODE            = 0x0900,               
00297 
00298         // Micro register opcodes: TRIGGER
00300         CVT_V1190_SET_WIN_WIDTH_OPCODE                          = 0x1000,               
00301         CVT_V1190_SET_WIN_OFFSET_OPCODE                         = 0x1100,               
00302         CVT_V1190_SET_SW_MARGIN_OPCODE                          = 0x1200,               
00303         CVT_V1190_SET_REJ_MARGIN_OPCODE                         = 0x1300,               
00304         CVT_V1190_EN_SUB_TRG_OPCODE                                     = 0x1400,               
00305         CVT_V1190_DIS_SUB_TRG_OPCODE                            = 0x1500,               
00306         CVT_V1190_READ_TRG_CONF_OPCODE                          = 0x1600,               
00308 
00309         // Micro register opcodes: TDC EDGE DETECTION & RESOLUTION
00311         CVT_V1190_SET_DETECTION_OPCODE                          = 0x2200,               
00312         CVT_V1190_READ_DETECTION_OPCODE                         = 0x2300,               
00313         CVT_V1190_SET_TR_LEAD_LSB_OPCODE                        = 0x2400,               
00314         CVT_V1190_SET_PAIR_RES_OPCODE                           = 0x2500,               
00315         CVT_V1190_READ_RES_OPCODE                                       = 0x2600,               
00316         CVT_V1190_SET_DEAD_TIME_OPCODE                          = 0x2800,               
00317         CVT_V1190_READ_DEAD_TIME_OPCODE                         = 0x2900,               
00319 
00320         // Micro register opcodes: TDC READOUT
00322         CVT_V1190_EN_HEAD_TRAILER_OPCODE                        = 0x3000,               
00323         CVT_V1190_DIS_HEAD_TRAILER_OPCODE                       = 0x3100,               
00324         CVT_V1190_READ_HEAD_TRAILER_OPCODE                      = 0x3200,               
00325         CVT_V1190_SET_EVENT_SIZE_OPCODE                         = 0x3300,               
00326         CVT_V1190_READ_EVENT_SIZE_OPCODE                        = 0x3400,               
00327         CVT_V1190_EN_ERROR_MARK_OPCODE                          = 0x3500,               
00328         CVT_V1190_DIS_ERROR_MARK_OPCODE                         = 0x3600,               
00329         CVT_V1190_EN_ERROR_BYPASS_OPCODE                        = 0x3700,               
00330         CVT_V1190_DIS_ERROR_BYPASS_OPCODE                       = 0x3800,               
00331         CVT_V1190_SET_ERROR_TYPES_OPCODE                        = 0x3900,               
00332         CVT_V1190_READ_ERROR_TYPES_OPCODE                       = 0x3A00,               
00333         CVT_V1190_SET_FIFO_SIZE_OPCODE                          = 0x3B00,               
00334         CVT_V1190_READ_FIFO_SIZE_OPCODE                         = 0x3C00,               
00336 
00337         // Micro register opcodes: CHANNEL ENABLE
00339         CVT_V1190_EN_CHANNEL_OPCODE                                     = 0x4000,               
00340         CVT_V1190_DIS_CHANNEL_OPCODE                            = 0x4100,               
00341         CVT_V1190_EN_ALL_CH_OPCODE                                      = 0x4200,               
00342         CVT_V1190_DIS_ALL_CH_OPCODE                                     = 0x4300,               
00343         CVT_V1190_WRITE_EN_PATTERN_OPCODE                       = 0x4400,               
00344         CVT_V1190_READ_EN_PATTERN_OPCODE                        = 0x4500,               
00345         CVT_V1190_WRITE_EN_PATTERN32_OPCODE                     = 0x4600,               
00346         CVT_V1190_READ_EN_PATTERN32_OPCODE                      = 0x4700,               
00348 
00349         // Micro register opcodes: ADJUST
00351         CVT_V1190_SET_GLOB_OFFSET_OPCODE                        = 0x5000,               
00352         CVT_V1190_READ_GLOB_OFFSET_OPCODE                       = 0x5100,               
00353         CVT_V1190_SET_ADJUST_CH_OPCODE                          = 0x5200,               
00354         CVT_V1190_READ_ADJUST_CH_OPCODE                         = 0x5300,               
00355         CVT_V1190_SET_RC_ADJ_OPCODE                                     = 0x5400,               
00356         CVT_V1190_READ_RC_ADJ_OPCODE                            = 0x5500,               
00357         CVT_V1190_SAVE_RC_ADJ_OPCODE                            = 0x5600,               
00359 
00360         // Micro register opcodes: MISCELLANEOUS
00362         CVT_V1190_READ_TDC_ID_OPCODE                            = 0x6000,               
00363         CVT_V1190_READ_MICRO_REV_OPCODE                         = 0x6100,               
00364         CVT_V1190_RESET_DLL_PLL_OPCODE                          = 0x6200,               
00366 
00367         // Micro register opcodes: ADVANCED
00369         CVT_V1190_WRITE_SETUP_REG_OPCODE                        = 0x7000,               
00370         CVT_V1190_READ_SETUP_REG_OPCODE                         = 0x7100,               
00371         CVT_V1190_UPDATE_SETUP_REG_OPCODE                       = 0x7200,               
00372         CVT_V1190_DEFAULT_SETUP_REG_OPCODE                      = 0x7300,               
00373         CVT_V1190_READ_ERROR_STATUS_OPCODE                      = 0x7400,               
00374         CVT_V1190_READ_DLL_LOCK_OPCODE                          = 0x7500,               
00375         CVT_V1190_READ_STATUS_STREAM_OPCODE                     = 0x7600,               
00376         CVT_V1190_UPDATE_SETUP_TDC_OPCODE                       = 0x7700,               
00378 
00379         // Micro register opcodes: DEBUG AND TEST
00381         CVT_V1190_WRITE_EEPROM_OPCODE                           = 0xC000,               
00382         CVT_V1190_READ_EEPROM_OPCODE                            = 0xC100,               
00383         CVT_V1190_MICROCONTROLLER_FW_OPCODE                     = 0xC200,               
00384         CVT_V1190_WRITE_SPARE_OPCODE                            = 0xC300,               
00385         CVT_V1190_READ_SPARE_OPCODE                                     = 0xC400,               
00386         CVT_V1190_EN_TEST_MODE_OPCODE                           = 0xC500,               
00387         CVT_V1190_DIS_TEST_MODE_OPCODE                          = 0xC600,               
00388         CVT_V1190_SET_TDC_TEST_OUTPUT_OPCODE            = 0xC700,               
00389         CVT_V1190_SET_DLL_CLOCK_OPCODE                          = 0xC800,               
00390         CVT_V1190_READ_TDC_SETUP_SCAN_PATH_OPCODE       = 0xC800,               
00392 } CVT_V1190_MICRO_OPCODES;
00393 
00395 // Micro Handshake bitmasks
00397 
00399 
00404 
00405 typedef enum
00406 {
00407         CVT_V1190_MICRO_HND_WRITEOK_MSK                                 = 0x0001,               
00408         CVT_V1190_MICRO_HND_READOK_MSK                                  = 0x0002,               
00409 } CVT_V1190_MICRO_HND_BIT_MSK;
00410 
00412 
00416 
00417 typedef enum
00418 {
00419         CVT_V1190_CTRL_BERR_ENABLE_MSK                                  = 0x0001,               
00420         CVT_V1190_CTRL_TERM_MSK                                                 = 0x0002,               
00421         CVT_V1190_CTRL_TERM_SW_MSK                                              = 0x0004,               
00422         CVT_V1190_CTRL_EMPTY_EVENT_MSK                                  = 0x0008,               
00423         CVT_V1190_CTRL_ALIGN64_MSK                                              = 0x0010,               
00424         CVT_V1190_CTRL_COMPENSATION_ENABLE_MSK                  = 0x0020,               
00425         CVT_V1190_CTRL_TEST_FIFO_ENABLE_MSK                             = 0x0040,               
00426         CVT_V1190_CTRL_READ_COMPENSATION_SRAM_ENABLE_MSK= 0x0080,               
00427         CVT_V1190_CTRL_EVENT_FIFO_ENABLE_MSK                    = 0x0100,               
00428         CVT_V1190_CTRL_TRIGGER_TIME_TAG_ENABLE_MSK              = 0x0200,               
00429 } CVT_V1190_CONTROL_MSK;
00430 
00432 
00436 
00437 typedef enum
00438 {
00439         CVT_V1190_STS_DREADY_MSK                                        = 0x0001,               
00440         CVT_V1190_STS_ALMOST_FULL_MSK                           = 0x0002,               
00441         CVT_V1190_STS_FULL_MSK                                          = 0x0004,               
00442         CVT_V1190_STS_TRG_MATCH_MSK                                     = 0x0008,               
00443         CVT_V1190_STS_HEADER_EN_MSK                                     = 0x0010,               
00444         CVT_V1190_STS_TERM_ON_MSK                                       = 0x0020,               
00445         CVT_V1190_STS_ERROR_0_MSK                                       = 0x0040,               
00446         CVT_V1190_STS_ERROR_1_MSK                                       = 0x0080,               
00447         CVT_V1190_STS_ERROR_2_MSK                                       = 0x0100,               
00448         CVT_V1190_STS_ERROR_3_MSK                                       = 0x0200,               
00449         CVT_V1190_STS_BERR_FLAG_MSK                                     = 0x0400,               
00450         CVT_V1190_STS_PURGED_MSK                                        = 0x0800,               
00451         CVT_V1190_STS_RES_0_MSK                                         = 0x1000,               
00452         CVT_V1190_STS_RES_1_MSK                                         = 0x2000,               
00453         CVT_V1190_STS_PAIR_MODE_MSK                                     = 0x4000,               
00454         CVT_V1190_STS_TRIGGER_LOST_MSK                          = 0x8000,               
00455 } CVT_V1190_STATUS_MSK;
00456 
00458 
00462 
00463 typedef enum
00464 {
00465         CVT_V1190_STS_RES_800PS                                         = 0x0000,               
00466         CVT_V1190_STS_RES_200PS                                         = 0x0001,               
00467         CVT_V1190_STS_RES_100PS                                         = 0x0002,               
00468 } CVT_V1190_STATUS_RES;
00469 
00470 #define CVT_V1190_STS_RES_MSK                                   0x3000                                                                                                                                                                                  
00471 #define CVT_V1190_GET_STATUS_RES( reg)                  ((((UINT16)reg)& CVT_V1190_STS_RES_MSK)>> 12)                                                                                                   
00472 #define CVT_V1190_SET_STATUS_RES( reg, value)   reg= (((UINT16)reg)& ~CVT_V1190_STS_RES_MSK)| ((((UINT16)value)<< 12)&CVT_V1190_STS_RES_MSK)    
00474 #define CVT_V1190_STS_ERROR_MSK                                 0x03C0                                                                                                                                                                                  
00475 #define CVT_V1190_GET_STATUS_ERROR( reg)                ((((UINT16)reg)& CVT_V1190_STS_ERROR_MSK)>> 6)                                                                                                  
00476 #define CVT_V1190_SET_STATUS_ERROR( reg, value) reg= (((UINT16)reg)& ~CVT_V1190_STS_ERROR_MSK)| ((((UINT16)value)<< 6)& CVT_V1190_STS_ERROR_MSK)
00478 
00479 
00483 
00484 typedef enum
00485 {
00486         CVT_V1190_ED_PAIR_MODE                                          = 0,                    
00487         CVT_V1190_ED_TRAILING_ONLY                                      = 1,                    
00488         CVT_V1190_ED_LEADING_ONLY                                       = 2,                    
00489         CVT_V1190_ED_TRAILING_AND_LEADING                       = 3,                    
00490 } CVT_V1190_EDGE_DETECTION_ENUM;
00491 
00493 
00497 
00498 typedef enum
00499 {
00500         CVT_V1190_TLL_800PS                                                     = 0,                    
00501         CVT_V1190_TLL_200PS                                                     = 1,                    
00502         CVT_V1190_TLL_100PS                                                     = 2,                    
00503 } CVT_V1190_TR_LEAD_LSB_ENUM;
00504 
00506 
00510 
00511 typedef enum
00512 {
00513         CVT_V1190_PRLT_100PS                                            = 0x0000,               
00514         CVT_V1190_PRLT_200PS                                            = 0x0001,               
00515         CVT_V1190_PRLT_400PS                                            = 0x0002,               
00516         CVT_V1190_PRLT_800PS                                            = 0x0003,               
00517         CVT_V1190_PRLT_1_6NS                                            = 0x0004,               
00518         CVT_V1190_PRLT_3_12NS                                           = 0x0005,               
00519         CVT_V1190_PRLT_6_25NS                                           = 0x0006,               
00520         CVT_V1190_PRLT_12_5NS                                           = 0x0007,               
00521 } CVT_V1190_PAIR_RES_LEADING_TIME_ENUM;
00522 
00523 #define CVT_V1190_PRLT_MSK                                                                              0x0007                                                                                                                                                  
00524 #define CVT_V1190_GET_PAIR_RES_LEADING_TIME( reg)                               ((UINT8)(((UINT16)reg)& CVT_V1190_PRLT_MSK))                                                                    
00525 #define CVT_V1190_SET_PAIR_RES_LEADING_TIME( reg, value)                reg= (((UINT16)reg)& ~CVT_V1190_PRLT_MSK)| ((UINT16)value& CVT_V1190_PRLT_MSK)  
00527 
00528 
00532 
00533 typedef enum
00534 {
00535         CVT_V1190_PRW_100PS                                                     = 0x0000,               
00536         CVT_V1190_PRW_200PS                                                     = 0x0001,               
00537         CVT_V1190_PRW_400PS                                                     = 0x0002,               
00538         CVT_V1190_PRW_800PS                                                     = 0x0003,               
00539         CVT_V1190_PRW_1_6NS                                                     = 0x0004,               
00540         CVT_V1190_PRW_3_12NS                                            = 0x0005,               
00541         CVT_V1190_PRW_6_25NS                                            = 0x0006,               
00542         CVT_V1190_PRW_12_5NS                                            = 0x0007,               
00543         CVT_V1190_PRW_25NS                                                      = 0x0008,               
00544         CVT_V1190_PRW_50NS                                                      = 0x0009,               
00545         CVT_V1190_PRW_100NS                                                     = 0x000A,               
00546         CVT_V1190_PRW_200NS                                                     = 0x000B,               
00547         CVT_V1190_PRW_400NS                                                     = 0x000C,               
00548         CVT_V1190_PRW_800NS                                                     = 0x000D,               
00549 } CVT_V1190_PAIR_RES_WIDTH_ENUM;
00550 
00551 #define CVT_V1190_PRW_MSK                                                 0x0F00                
00552 #define CVT_V1190_GET_PAIR_RES_WITH( reg)                 ((UINT8)((((UINT16)reg)& CVT_V1190_PRW_MSK)>> 8))                             
00553 #define CVT_V1190_SET_PAIR_RES_WITH( reg, value)  reg= (((UINT16)reg)& ~CVT_V1190_PRW_MSK)| (((UINT16)value)<< 8)       
00555 
00556 
00560 
00561 typedef enum
00562 {
00563         CVT_V1190_DT_5NS                                                        = 0,                    
00564         CVT_V1190_DT_10NS                                                       = 1,                    
00565         CVT_V1190_DT_30NS                                                       = 2,                    
00566         CVT_V1190_DT_100NS                                                      = 3,                    
00567 } CVT_V1190_DEAD_TIME_ENUM;
00568 
00570 
00574 
00575 typedef enum
00576 {
00577         CVT_V1190_ES_0                                                          = 0,                    
00578         CVT_V1190_ES_1                                                          = 1,                    
00579         CVT_V1190_ES_2                                                          = 2,                    
00580         CVT_V1190_ES_4                                                          = 3,                    
00581         CVT_V1190_ES_8                                                          = 4,                    
00582         CVT_V1190_ES_16                                                         = 5,                    
00583         CVT_V1190_ES_32                                                         = 6,                    
00584         CVT_V1190_ES_64                                                         = 7,                    
00585         CVT_V1190_ES_128                                                        = 8,                    
00586         CVT_V1190_ES_NO_LIMIT                                           = 9,                    
00587 } CVT_V1190_EVENT_SIZE_ENUM;
00588 
00590 
00595 
00596 typedef enum
00597 {
00598         CVT_V1190_ET_VERNIER_ERROR_MSK                                  = 0x0001,               
00599         CVT_V1190_ET_COARSE_ERROR_MSK                                   = 0x0002,               
00600         CVT_V1190_ET_CHANNEL_SELECT_ERROR_MSK                   = 0x0004,               
00601         CVT_V1190_ET_L1_BUFFER_PARITY_ERROR_MSK                 = 0x0008,               
00602         CVT_V1190_ET_TRIGGER_FIFO_PARITY_ERROR_MSK              = 0x0008,               
00603         CVT_V1190_ET_TRIGGER_MATCHING_ERROR_MSK                 = 0x0010,               
00604         CVT_V1190_ET_READOUT_FIFO_PARITY_ERROR_MSK              = 0x0020,               
00605         CVT_V1190_ET_READOUT_STATE_ERROR_MSK                    = 0x0040,               
00606         CVT_V1190_ET_SETUP_PARITY_ERROR_MSK                             = 0x0080,               
00607         CVT_V1190_ET_CONTROL_PARITY_ERROR_MSK                   = 0x0100,               
00608         CVT_V1190_ET_JTAG_INSTRUCTION_PARITY_ERROR_MSK  = 0x0200,               
00609 } CVT_V1190_ERROR_TYPES_MSK;
00610 
00612 
00616 
00617 typedef enum
00618 {
00619         CVT_V1190_FS_2                                                          = 0,                    
00620         CVT_V1190_FS_4                                                          = 1,                    
00621         CVT_V1190_FS_8                                                          = 2,                    
00622         CVT_V1190_FS_16                                                         = 3,                    
00623         CVT_V1190_FS_32                                                         = 4,                    
00624         CVT_V1190_FS_64                                                         = 5,                    
00625         CVT_V1190_FS_128                                                        = 6,                    
00626         CVT_V1190_FS_256                                                        = 7,                    
00627 } CVT_V1190_FIFO_SIZE_ENUM;
00628 
00630 
00634 
00635 typedef enum
00636 {
00637         CVT_V1190_DC_40MHZ                                                      = 0,                    
00638         CVT_V1190_DC_PLL40MHZ                                           = 1,                    
00639         CVT_V1190_DC_PLL160MHZ                                          = 2,                    
00640         CVT_V1190_DC_PLL320MHZ                                          = 3,                    
00641 } CVT_V1190_DLL_CLOCK_ENUM;
00642 
00644 
00648 
00649 typedef enum
00650 {
00651         CVT_V1190_MCCTRL_DISABLED_BOARD_MSK                     = 0x0000,               
00652         CVT_V1190_MCCTRL_LAST_BOARD_MSK                         = 0x0001,               
00653         CVT_V1190_MCCTRL_FIRST_BOARD_MSK                        = 0x0002,               
00654         CVT_V1190_MCCTRL_MID_BOARD_MSK                          = 0x0003,               
00655 } CVT_V1190_MCST_CBLT_CTRL_MSK;
00656 
00658 // Global variables declaration
00660 
00662 // Global methods declaration
00664 
00666 //
00667 //     B O A R D S   H A N D L I N G
00668 //
00670 
00672 
00684 
00685 BOOL cvt_V1190_open( cvt_V1190_data* p_data, UINT16 base_address, long vme_handle, CVT_V1190_TYPES type);
00686 
00688 
00696 
00697 BOOL cvt_V1190_close( cvt_V1190_data* p_data);
00698 
00700 //
00701 //     L E V E L   0   A P I s
00702 //
00704 
00706 //
00707 //     L E V E L   1   A P I s
00708 //
00710 
00712 
00723 
00724 BOOL vme_board_1190_write_2_micro( cvt_V1190_data* p_data, UINT16 ope_code, const UINT16* p_params, int num_params);
00725 
00727 
00738 
00739 BOOL vme_board_1190_read_from_micro( cvt_V1190_data* p_data, UINT16 ope_code, UINT16* p_params, int num_params);
00740 
00742 
00751 
00752 BOOL cvt_V1190_set_bitmask_control( cvt_V1190_data* p_data, CVT_V1190_CONTROL_MSK value);
00753 
00755 
00764 
00765 BOOL cvt_V1190_clear_bitmask_control( cvt_V1190_data* p_data, CVT_V1190_CONTROL_MSK value);
00766 
00768 //
00769 //     L E V E L   2   A P I s
00770 //
00772 
00774 
00782 
00783 BOOL cvt_V1190_set_windows_width( cvt_V1190_data* p_data, UINT16 value);
00784 
00786 
00794 
00795 BOOL cvt_V1190_set_windows_offset( cvt_V1190_data* p_data, UINT16 value);
00796 
00798 
00808 
00809 BOOL cvt_V1190_get_enable_pattern( cvt_V1190_data* p_data, UINT16 *p_enable_msk);
00810 
00812 
00819 
00820 BOOL cvt_V1190_set_trigger_match( cvt_V1190_data* p_data);
00821 
00823 
00830 
00831 BOOL cvt_V1190_set_head_trail_enable( cvt_V1190_data* p_data);
00832 
00834 
00841 
00842 BOOL cvt_V1190_set_head_trail_disable( cvt_V1190_data* p_data);
00843 
00845 
00856 
00857 BOOL cvt_V1190_read_MEB( cvt_V1190_data* p_data, void* p_buff, UINT32* p_buff_size);
00858 
00860 
00875 
00876 BOOL cvt_V1190_set_continuous_acquisition_mode( cvt_V1190_data* p_data, CVT_V1190_EDGE_DETECTION_ENUM edge_detection, CVT_V1190_PAIR_RES_WIDTH_ENUM res_width, const UINT16 *p_enable_msk);
00877 
00879 
00899 
00900 BOOL cvt_V1190_set_trigger_matching_acquisition_mode( cvt_V1190_data* p_data, UINT16 window_width, UINT16 window_offset, UINT16 extra_search_margin, UINT16 reject_margin, CVT_V1190_EDGE_DETECTION_ENUM edge_detection, CVT_V1190_PAIR_RES_WIDTH_ENUM res_width, const UINT16 *p_enable_msk, BOOL header_trailer_enable, BOOL empty_event_enable, BOOL trigger_time_tag_enable);
00901 
00903 
00912 
00913 BOOL cvt_V1190_set_interrupt( cvt_V1190_data* p_data, UINT8 level, UINT8 vector);
00914 
00916 
00926 
00927 BOOL cvt_V1190_set_readout_mode( cvt_V1190_data* p_data, BOOL bus_error_enable, BOOL align64_enable, UINT8 blt_event_number);
00928 
00930 
00942 
00943 BOOL cvt_V1190_get_status( cvt_V1190_data* p_data, BOOL *p_is_data_ready, BOOL *p_is_term_on, BOOL *p_is_buffer_full, BOOL *p_is_buffer_almost_full, CVT_V1190_STATUS_RES* p_resolution, UINT8* p_error_bitmask);
00944 
00946 
00954 
00955 BOOL cvt_V1190_get_event_counter( cvt_V1190_data* p_data, UINT32* p_counter);
00956 
00958 
00966 
00967 BOOL cvt_V1190_get_event_stored( cvt_V1190_data* p_data, UINT16* p_counter);
00968 
00970 
00981 
00982 BOOL cvt_V1190_get_system_info( cvt_V1190_data* p_data, UINT16 *p_firmware_rev, UINT16 *p_tdc_id_buff, UINT16 *p_micro_firmware_rev, UINT16 *p_serial_number);
00983 
00985 
00992 
00993 BOOL cvt_V1190_data_clear( cvt_V1190_data* p_data);
00994 
00996 
01003 
01004 BOOL cvt_V1190_module_reset( cvt_V1190_data* p_data);
01005 
01007 
01016 
01017 BOOL cvt_V1190_set_channel_enable( cvt_V1190_data* p_data, const UINT16* p_enable_msk);
01018 
01020 
01031 
01032 BOOL cvt_V1190_set_almost_full( cvt_V1190_data* p_data, UINT16 almost_full_value);
01033 
01034 #ifdef CVT_V1190_USE_DATA_QUEUE
01035 
01037 
01052 
01053 BOOL cvt_V1190_peek_event( cvt_V1190_data *p_data, UINT32 *out_buff, long *p_out_buff_size, UINT32 *p_event_count);
01054 
01056 
01066 
01067 BOOL cvt_V1190_inqueue( cvt_V1190_data* p_data, const UINT32* in_buff, UINT32 in_buff_size);
01068 
01070 
01080 
01081 BOOL cvt_V1190_dequeue( cvt_V1190_data* p_data, UINT32 *out_buff, UINT32 out_buff_size);
01082 
01084 
01090 
01091 long cvt_V1190_get_queue_free( cvt_V1190_data* p_data);
01092 
01094 
01100 
01101 long cvt_V1190_get_queue_length( cvt_V1190_data* p_data);
01102 
01103 #endif  // CVT_V1190_USE_DATA_QUEUE
01104 
01106 
01116 
01117 BOOL cvt_V1190_set_MCST_CBLT( cvt_V1190_data* p_data, UINT8 address, MCST_CBLT_board_pos pos);
01118 
01119 #endif  // __CVT_V1190_DEF_H

Generated on Mon Mar 19 17:13:05 2007 for CAEVMEToolLib by  doxygen 1.4.6-NO