////////////////////////////////////////////////////////////////////// // File - sli6_conf.h (config file for SLI-6) // // Library for accessing the SLI6 card, version 1.20. // Code was composed by Kirill Bezmaternykh // INP, lab 6-1 (ppi6@gorodok.net) // It accesses the hardware via WinDriver functions. // ////////////////////////////////////////////////////////////////////// #ifndef _SLI6_CONF_H_ #define _SLI6_CONF_H_ //#include "..include\altera_lib.h" #include ///////////////////// общие ////////////////////////////////////// #define MIN_CARDS 1 #define MAX_CARDS 8 #define MIN_CRATES 1 #define MAX_CRATES 6 #define MIN_POS 0 #define MAX_POS 23 #define MIN_A 0 #define MAX_A 15 #define MIN_F 0 #define MAX_F 31 #define MAX_BLOCKS 0x100000 #define MIN_BLOCKS 1 ////////////////////// контроллер //////////////////////////////// #define CAM_HBYTE (0x00001008) // регистр старшего байта N=0 A=2 #define CAM_STATUS (0x00001000) // регистр статуса N=0 A=0 #define CAM_MASK_LAM (0x00001004) // регистр маски и запросов N=0 A=1 #define CAM_C_BIT (0x100) // бит С в статус. рег. контроллера #define CAM_Z_BIT (0x200) // бит Z в статус. рег. контроллера ////////////////////// registers ///////////////////////////////// #define BASE (0x000000) // отсыды все пошло #define BUSY (0x000000) // индикатор обмена в каналах (0-обмен,1-нет) #define EXIST (0x000010) // индикатор физического наличия канала (1-есть 0-отсутствует) // прямая адресация, т.е следующие регистры надо использовать к конкретному // каналу , пример использования : STATUS | (1L << (CrateN+13)) - адресс статусного // регистра крейта СrateN #define STATUS (0x000000) // регистр статуса для каждого канала // Status = |X|Q|Er|To|AcX|AcQ|AcEr|AcTo| #define DATA_WOUT_INIT (0x000008) // регистр данных без инициализации камак-цикла #define DATA_WITH_INIT (0x00000C) // регистр данных с инициализацией камак-цикла #define ADDR (0x000004) // регистр адресса // регистр адресса // | 13-база | 6-номер канала | 1-прямая(1)/кос.(0) | 1-24/16 | 5-N | 4-A | 2-доп.| // регистры управляющие прерываниями #define INT_ENABLE (0x000008) // регистр маскирования прерываний #define INT (0x000004) // регистр управления прерываниями #define INT_GENABLE (0x00000C) // регистр глобального вкл/выкл прерываний // DMA registers #define DMA_ADDR (0x00000) // адресный регистр DMA куда записывать данные с КАМАКа #define DMA_COUNTER (0x00000) // счетчик DMA #define DMA_START (0x00000) // запуск DMA #define MAX_BLOCK (0xFF) // максимальный размер блока /////////////// возвращаемые значения ////////////////////////////////////// #define SLI6_ERROR (-1) #define SLI6_OK (0x0) #endif // !defined(_PPI6_H__Bezmaternykh_Kirill_9312__INCLUDED_)