sis3801.h File Reference

Go to the source code of this file.

Functions

DWORD sis3801_module_ID (MVME_INTERFACE *myvme, DWORD base)
DWORD sis3801_IRQ_REG_read (MVME_INTERFACE *myvme, DWORD base)
DWORD sis3801_IRQ_REG_write (MVME_INTERFACE *myvme, DWORD base, DWORD irq)
DWORD sis3801_dwell_time (MVME_INTERFACE *myvme, DWORD base, DWORD dwell)
int sis3801_ref1 (MVME_INTERFACE *myvme, DWORD base, DWORD endis)
void sis3801_channel_enable (MVME_INTERFACE *myvme, DWORD base, DWORD nch)
DWORD sis3801_CSR_read (MVME_INTERFACE *myvme, DWORD base, const DWORD what)
DWORD sis3801_CSR_write (MVME_INTERFACE *myvme, DWORD base, const DWORD what)
void sis3801_FIFO_clear (MVME_INTERFACE *myvme, DWORD base)
int sis3801_HFIFO_read (MVME_INTERFACE *myvme, DWORD base, DWORD *p)
int sis3801_FIFO_flush (MVME_INTERFACE *myvme, DWORD base, DWORD *p)
void sis3801_int_source (MVME_INTERFACE *myvme, DWORD base, DWORD int_source)
void sis3801_int_source_enable (MVME_INTERFACE *myvme, DWORD base, const int intnum)
void sis3801_int_source_disable (MVME_INTERFACE *myvme, DWORD base, const int intnum)
void sis3801_int_clear (MVME_INTERFACE *myvme, DWORD base, const int intnum)
void sis3801_int_attach (MVME_INTERFACE *myvme, DWORD base, DWORD base_vect, int level, void(*isr)(void))
void sis3801_int_detach (MVME_INTERFACE *myvme, DWORD baser, DWORD base_vect, int level)
int sis3801_Setup (MVME_INTERFACE *myvme, DWORD base, int mode)


Define Documentation

#define CLEAR_SOFT_DISABLE   0x08000000

Definition at line 84 of file sis3801.h.

#define CSR_FULL   0xffffffff

Definition at line 42 of file sis3801.h.

Referenced by sis3801_CSR_read(), sis3801_CSR_write(), sis3801_Status(), SIS3803_CSR_read(), sis3803_CSR_read(), and sis3803_CSR_write().

#define CSR_READ   0x0

Definition at line 41 of file sis3801.h.

Referenced by sis3803_CSR_read(), sis3803_input_mode(), and sis3803_ref1().

#define CSR_WRITE   0x0

Definition at line 43 of file sis3801.h.

Referenced by sis3803_CSR_write(), sis3803_input_mode(), sis3803_int_clear(), sis3803_int_source(), sis3803_int_source_disable(), sis3803_int_source_enable(), sis3803_test_disable(), and sis3803_test_enable().

#define DISABLE_102LNE   0x00000400

Definition at line 62 of file sis3801.h.

#define DISABLE_25MHZ   0x00001000

Definition at line 55 of file sis3801.h.

#define DISABLE_EXTERN_CLEAR   0x02000000

Definition at line 82 of file sis3801.h.

#define DISABLE_EXTERN_DISABLE   0x04000000

Definition at line 83 of file sis3801.h.

#define DISABLE_EXTERN_NEXT   0x01000000

Definition at line 81 of file sis3801.h.

#define DISABLE_IRQ_ALFULL   0x80000000

Definition at line 101 of file sis3801.h.

Referenced by sis3801_int_attach(), sis3801_int_clear(), sis3801_int_detach(), sis3801_int_source(), and sis3801_int_source_disable().

#define DISABLE_IRQ_CIP   0x10000000

Definition at line 98 of file sis3801.h.

Referenced by sis3801_int_attach(), sis3801_int_clear(), sis3801_int_detach(), sis3801_int_source(), and sis3801_int_source_disable().

#define DISABLE_IRQ_FULL   0x20000000

Definition at line 99 of file sis3801.h.

Referenced by sis3801_int_attach(), sis3801_int_clear(), sis3801_int_detach(), sis3801_int_source(), and sis3801_int_source_disable().

#define DISABLE_IRQ_HFULL   0x40000000

Definition at line 100 of file sis3801.h.

Referenced by sis3801_int_attach(), sis3801_int_clear(), sis3801_int_detach(), sis3801_int_source(), and sis3801_int_source_disable().

#define DISABLE_LNE   0x00000800

Definition at line 65 of file sis3801.h.

#define DISABLE_TEST   0x00002000

Definition at line 58 of file sis3801.h.

#define ENABLE_102LNE   0x00000040

Definition at line 61 of file sis3801.h.

#define ENABLE_25MHZ   0x00000010

Definition at line 54 of file sis3801.h.

#define ENABLE_EXTERN_CLEAR   0x00020000

Definition at line 78 of file sis3801.h.

#define ENABLE_EXTERN_DISABLE   0x00040000

Definition at line 79 of file sis3801.h.

#define ENABLE_EXTERN_NEXT   0x00010000

Definition at line 77 of file sis3801.h.

#define ENABLE_IRQ_ALFULL   0x00800000

Definition at line 97 of file sis3801.h.

Referenced by sis3801_int_clear(), sis3801_int_source(), and sis3801_int_source_enable().

#define ENABLE_IRQ_CIP   0x00100000

Definition at line 94 of file sis3801.h.

Referenced by sis3801_int_clear(), sis3801_int_source(), and sis3801_int_source_enable().

#define ENABLE_IRQ_FULL   0x00200000

Definition at line 95 of file sis3801.h.

Referenced by sis3801_int_clear(), sis3801_int_source(), and sis3801_int_source_enable().

#define ENABLE_IRQ_HFULL   0x00400000

Definition at line 96 of file sis3801.h.

Referenced by sis3801_int_clear(), sis3801_int_source(), and sis3801_int_source_enable().

#define ENABLE_LNE   0x00000080

Definition at line 64 of file sis3801.h.

#define ENABLE_TEST   0x00000020

Definition at line 57 of file sis3801.h.

#define GET_MODE   0x0000000C

Definition at line 48 of file sis3801.h.

Referenced by sis3801_CSR_read(), sis3801_input_mode(), and sis3803_input_mode().

#define HALF_FIFO   16384

Definition at line 37 of file sis3801.h.

Referenced by sis3801_HFIFO_read().

#define IS_102LNE   0x00000040

Definition at line 60 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_25MHZ   0x00000010

Definition at line 53 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_EXTERN_CLEAR   0x00020000

Definition at line 74 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_EXTERN_DISABLE   0x00040000

Definition at line 75 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_EXTERN_NEXT   0x00010000

Definition at line 73 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_FIFO_ALMOST_EMPTY   0x00000200

Definition at line 67 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_FIFO_EMPTY   0x00000100

Definition at line 66 of file sis3801.h.

Referenced by sis3801_FIFO_flush(), and sis3801_Status().

#define IS_FIFO_FULL   0x00001000

Definition at line 69 of file sis3801.h.

Referenced by sis3801_FIFO_flush(), sis3801_HFIFO_read(), and sis3801_Status().

#define IS_FIFO_HALF_FULL   0x00000400

Definition at line 68 of file sis3801.h.

Referenced by sis3801_HFIFO_read(), and sis3801_Status().

#define IS_IRQ_ALFULL   0x80000000

Definition at line 93 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_IRQ_CIP   0x10000000

Definition at line 90 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_IRQ_EN_ALFULL   0x00800000

Definition at line 89 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_IRQ_EN_CIP   0x00100000

Definition at line 86 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_IRQ_EN_FULL   0x00200000

Definition at line 87 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_IRQ_EN_HFULL   0x00400000

Definition at line 88 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_IRQ_FULL   0x20000000

Definition at line 91 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_IRQ_HFULL   0x40000000

Definition at line 92 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_LED   0x00000001

Definition at line 45 of file sis3801.h.

Referenced by sis3801_Status(), and SIS3803_CSR_read().

#define IS_LNE   0x00000080

Definition at line 63 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_NEXT_LOGIC_ENABLE   0x00008000

Definition at line 72 of file sis3801.h.

Referenced by sis3801_next_logic(), and sis3801_Status().

#define IS_REF1   0x00002000

Definition at line 70 of file sis3801.h.

Referenced by sis3801_ref1(), sis3801_Status(), SIS3803_CSR_read(), and sis3803_ref1().

#define IS_SOFT_COUNTING   0x00080000

Definition at line 76 of file sis3801.h.

Referenced by sis3801_Status().

#define IS_TEST   0x00000020

Definition at line 56 of file sis3801.h.

Referenced by sis3801_Status().

#define LED_OFF   0x00000100

Definition at line 47 of file sis3801.h.

#define LED_ON   0x00000001

Definition at line 46 of file sis3801.h.

#define MAX_FIFO_SIZE   2*HALF_FIFO

Definition at line 39 of file sis3801.h.

Referenced by sis3801_FIFO_flush().

#define MODE_0   0x00000C00

Definition at line 49 of file sis3801.h.

#define MODE_1   0x00000804

Definition at line 50 of file sis3801.h.

#define MODE_2   0x00000408

Definition at line 51 of file sis3801.h.

#define MODE_3   0x0000000C

Definition at line 52 of file sis3801.h.

#define SET_SOFT_DISABLE   0x00080000

Definition at line 80 of file sis3801.h.

#define SIS3801_COPY_REG_WO   0x00C

Definition at line 107 of file sis3801.h.

Referenced by sis3801_channel_enable().

#define SIS3801_CSR_RW   0x000

Definition at line 104 of file sis3801.h.

Referenced by sis3801_CSR_read(), sis3801_CSR_write(), sis3801_input_mode(), sis3801_int_clear(), sis3801_int_source(), sis3801_int_source_disable(), sis3801_int_source_enable(), sis3801_next_logic(), and sis3801_ref1().

#define SIS3801_DISABLE_NEXT_CLK_WO   0x02C

Definition at line 112 of file sis3801.h.

Referenced by sis3801_next_logic().

#define SIS3801_DISABLE_REF_CH1_WO   0x054

Definition at line 114 of file sis3801.h.

Referenced by sis3801_ref1().

#define SIS3801_ENABLE_NEXT_CLK_WO   0x028

Definition at line 111 of file sis3801.h.

Referenced by sis3801_next_logic().

#define SIS3801_ENABLE_REF_CH1_WO   0x050

Definition at line 113 of file sis3801.h.

Referenced by sis3801_ref1().

#define SIS3801_FIFO_CLEAR_WO   0x020

Definition at line 109 of file sis3801.h.

Referenced by sis3801_FIFO_clear().

#define SIS3801_FIFO_RO   0x100

Definition at line 118 of file sis3801.h.

Referenced by sis3801_FIFO_flush(), and sis3801_HFIFO_read().

#define SIS3801_FIFO_WRITE_WO   0x010

Definition at line 108 of file sis3801.h.

#define SIS3801_IRQ_REG_RW   0x004

Definition at line 106 of file sis3801.h.

Referenced by sis3801_int_attach(), sis3801_IRQ_REG_read(), and sis3801_IRQ_REG_write().

#define SIS3801_MODULE_ID_RO   0x004

Definition at line 105 of file sis3801.h.

Referenced by sis3801_module_ID().

#define SIS3801_MODULE_RESET_WO   0x060

Definition at line 115 of file sis3801.h.

Referenced by sis3801_module_reset().

#define SIS3801_PRESCALE_REG_RW   0x080

Definition at line 117 of file sis3801.h.

Referenced by sis3801_dwell_time().

#define SIS3801_SINGLE_TST_PULSE_WO   0x068

Definition at line 116 of file sis3801.h.

#define SIS3801_VECT_BASE   0x7f

Definition at line 125 of file sis3801.h.

#define SIS3801_VME_NEXT_CLK_WO   0x024

Definition at line 110 of file sis3801.h.

#define SIS_FIFO_SIZE   4*HALF_FIFO

Definition at line 40 of file sis3801.h.

#define SOURCE_CIP   0

Definition at line 120 of file sis3801.h.

#define SOURCE_FIFO_ALFULL   3

Definition at line 123 of file sis3801.h.

#define SOURCE_FIFO_FULL   1

Definition at line 121 of file sis3801.h.

#define SOURCE_FIFO_HFULL   2

Definition at line 122 of file sis3801.h.

#define VME_IRQ_ENABLE   0x00000800

Definition at line 102 of file sis3801.h.

Referenced by sis3801_int_attach(), and sis3803_int_attach().


Typedef Documentation

typedef unsigned long int DWORD

Definition at line 31 of file sis3801.h.


Function Documentation

void sis3801_channel_enable ( MVME_INTERFACE mvme,
DWORD  base,
DWORD  nch 
)

Purpose: Enable nch channel for acquistion. blind command! 1..24 or 32

Definition at line 205 of file sis3801.c.

DWORD sis3801_CSR_read ( MVME_INTERFACE mvme,
DWORD  base,
const DWORD  what 
)

Purpose: Read the CSR and return 1/0 based on what. except for what == CSR_FULL where it returns current CSR

Definition at line 224 of file sis3801.c.

Referenced by sis3801_CSR_write(), sis3801_FIFO_flush(), sis3801_HFIFO_read(), and sis3801_Status().

DWORD sis3801_CSR_write ( MVME_INTERFACE mvme,
DWORD  base,
const DWORD  what 
)

Purpose: Write to the CSR and return CSR_FULL.

Definition at line 250 of file sis3801.c.

DWORD sis3801_dwell_time ( MVME_INTERFACE mvme,
DWORD  base,
DWORD  dwell 
)

Purpose: Set dwell time in us DWORD dwell : dwell time in microseconds

Definition at line 128 of file sis3801.c.

void sis3801_FIFO_clear ( MVME_INTERFACE mvme,
DWORD  base 
)

Purpose: Clear FIFO and logic

Definition at line 270 of file sis3801.c.

int sis3801_FIFO_flush ( MVME_INTERFACE mvme,
DWORD  base,
DWORD pfifo 
)

Purpose: Test and read FIFO until empty This is done using while, if the dwelling time is short relative to the readout time, the pfifo can be overrun. No test on the max read yet! Function value: int : -1 FULL number of words read

Definition at line 323 of file sis3801.c.

int sis3801_HFIFO_read ( MVME_INTERFACE mvme,
DWORD  base,
DWORD pfifo 
)

Purpose: Reads 32KB (8K DWORD) of the FIFO Function value: int : -1 FULL 0 NOT 1/2 Full number of words read

Definition at line 291 of file sis3801.c.

void sis3801_int_attach ( MVME_INTERFACE mvme,
DWORD  base,
DWORD  base_vect,
int  level,
void(*)(void)  isr 
)

Purpose: Book an ISR for a bitwise set of interrupt input (0xff). The interrupt vector is then the VECTOR_BASE+intnum Input: DWORD * base_addr : base address of the sis3801 DWORD base_vect : base vector of the module int level : IRQ level (1..7) DWORD isr_routine : interrupt routine pointer

Definition at line 448 of file sis3801.c.

void sis3801_int_clear ( MVME_INTERFACE mvme,
DWORD  base,
const int  intnum 
)

Purpose: Disable the interrupt for the bitwise input intnum (0xff). The interrupt vector is then the VECTOR_BASE+intnum Input: DWORD * base_addr : base address of the sis3801 int * intnum : interrupt number (input 0..3)

Definition at line 494 of file sis3801.c.

void sis3801_int_detach ( MVME_INTERFACE mvme,
DWORD  base,
DWORD  base_vect,
int  level 
)

Purpose: Unbook an ISR for a bitwise set of interrupt input (0xff). The interrupt vector is then the VECTOR_BASE+intnum Input: DWORD * base_addr : base address of the sis3801 DWORD base_vect : base vector of the module int level : IRQ level (1..7)

Definition at line 475 of file sis3801.c.

void sis3801_int_source ( MVME_INTERFACE mvme,
DWORD  base,
DWORD  int_source 
)

Purpose: Enable the one of the 4 interrupt using the predefined parameters (see sis3801.h) DWORD * intnum : interrupt number (input 0..3)

Definition at line 422 of file sis3801.c.

Referenced by sis3801_int_attach(), and sis3801_int_detach().

void sis3801_int_source_disable ( MVME_INTERFACE mvme,
DWORD  base,
const int  intnum 
)

Purpose: Enable the interrupt for the bitwise input intnum (0xff). The interrupt vector is then the VECTOR_BASE

Definition at line 385 of file sis3801.c.

void sis3801_int_source_enable ( MVME_INTERFACE mvme,
DWORD  base,
const int  intnum 
)

Purpose: Enable the interrupt for the bitwise input intnum (0xff). The interrupt vector is then the VECTOR_BASE

Definition at line 349 of file sis3801.c.

DWORD sis3801_IRQ_REG_read ( MVME_INTERFACE mvme,
DWORD  base 
)

DWORD : 0xE(1)L(3)V(8)

Definition at line 68 of file sis3801.c.

DWORD sis3801_IRQ_REG_write ( MVME_INTERFACE mvme,
DWORD  base,
DWORD  vector 
)

Purpose: write irq (ELV) to the register and read back DWORD : 0xE(1)L(3)V(8)

Definition at line 86 of file sis3801.c.

DWORD sis3801_module_ID ( MVME_INTERFACE mvme,
DWORD  base 
)

Module ID Purpose: return the Module ID number (I) version (V) IRQ level (L) IRQ vector# (BB) 0xIIIIVLBB

Definition at line 37 of file sis3801.c.

Referenced by sis3801_Status().

DWORD sis3801_module_mode ( MVME_INTERFACE myvme,
DWORD  base,
DWORD  mode 
)

void sis3801_module_reset ( MVME_INTERFACE myvme,
DWORD  base 
)

Definition at line 52 of file sis3801.c.

int sis3801_next_logic ( MVME_INTERFACE myvme,
DWORD  base,
DWORD  endis 
)

Definition at line 178 of file sis3801.c.

int sis3801_ref1 ( MVME_INTERFACE mvme,
DWORD  base,
DWORD  endis 
)

Purpose: Enable/Disable Reference on Channel 1 DWORD endis : action either ENABLE_REF_CH1 DISABLE_REF_CH1

Definition at line 152 of file sis3801.c.

int sis3801_Setup ( MVME_INTERFACE mvme,
DWORD  base,
int  mode 
)

Sets all the necessary parameters for a given configuration. The configuration is provided by the mode argument. Add your own configuration in the case statement. Let me know your setting if you want to include it in the distribution.

Parameters:
*mvme VME structure
base Module base address
mode Configuration mode number
*nentry number of entries requested and returned.
Returns:
MVME_SUCCESS

Definition at line 544 of file sis3801.c.

void sis3801_setup ( const MVME_INTERFACE myvme,
DWORD  base,
int  mode,
int  dsp 
)

void sis3801_Status ( MVME_INTERFACE myvme,
DWORD  base 
)

Definition at line 572 of file sis3801.c.


Midas DOC Version 2.0.2 ---- PSI Stefan Ritt ----
Contributions: Pierre-Andre Amaudruz - Sergio Ballestrero - Suzannah Daviel - Doxygen - Peter Green - Qing Gu - Greg Hackman - Gertjan Hofman - Paul Knowles - Exaos Lee - Rudi Meier - Glenn Moloney - Dave Morris - John M O'Donnell - Konstantin Olchanski - Renee Poutissou - Tamsen Schurman - Andreas Suter - Jan M.Wouters - Piotr Adam Zolnierczuk