vme/vmeio.h File Reference

Go to the source code of this file.

Defines

#define VMEIO_IRQENBL   (0x00)
#define VMEIO_INTSRC   (0x04)
#define VMEIO_OUTSET   (0x08)
#define VMEIO_OUTPULSE   (0x0c)
#define VMEIO_OUTLATCH   (0x10)
#define VMEIO_RDSYNC   (0x14)
#define VMEIO_RDASYNC   (0x18)
#define VMEIO_RDCNTL   (0x1c)
#define VMEIO_CLSTB   (0x1c)

Functions

void vmeio_SyncWrite (MVME_INTERFACE *mvme, DWORD base, DWORD data)
void vmeio_AsyncWrite (MVME_INTERFACE *mvme, DWORD base, DWORD data)
void vmeio_OutputSet (MVME_INTERFACE *mvme, DWORD base, DWORD data)
int vmeio_CsrRead (MVME_INTERFACE *mvme, DWORD base)
int vmeio_AsyncRead (MVME_INTERFACE *myvme, DWORD base)
int vmeio_SyncRead (MVME_INTERFACE *myvme, DWORD base)
void vmeio_StrobeClear (MVME_INTERFACE *mvme, DWORD base)
void vmeio_IntEnable (MVME_INTERFACE *myvme, DWORD base, int input)
void vmeio_IntRearm (MVME_INTERFACE *myvme, DWORD base, int input)


Define Documentation

#define VMEIO_CLSTB   (0x1c)

Definition at line 23 of file vme/vmeio.h.

#define VMEIO_INTSRC   (0x04)

Definition at line 16 of file vme/vmeio.h.

Referenced by vmeio_IntRearm().

#define VMEIO_IRQENBL   (0x00)

Definition at line 15 of file vme/vmeio.h.

Referenced by vmeio_IntEnable().

#define VMEIO_OUTLATCH   (0x10)

Definition at line 19 of file vme/vmeio.h.

Referenced by vmeio_AsyncWrite().

#define VMEIO_OUTPULSE   (0x0c)

Definition at line 18 of file vme/vmeio.h.

Referenced by vmeio_SyncWrite().

#define VMEIO_OUTSET   (0x08)

Definition at line 17 of file vme/vmeio.h.

Referenced by vmeio_OutputSet().

#define VMEIO_RDASYNC   (0x18)

Definition at line 21 of file vme/vmeio.h.

Referenced by vmeio_AsyncRead().

#define VMEIO_RDCNTL   (0x1c)

Definition at line 22 of file vme/vmeio.h.

Referenced by vmeio_CsrRead(), and vmeio_StrobeClear().

#define VMEIO_RDSYNC   (0x14)

Definition at line 20 of file vme/vmeio.h.

Referenced by vmeio_SyncRead().


Function Documentation

int vmeio_AsyncRead ( MVME_INTERFACE myvme,
DWORD  base 
)

Read from the Async register

Parameters:
myvme vme structure
base VMEIO base address
Returns:
Async_Reg

Definition at line 84 of file vme/vmeio.c.

00085 {
00086   int csr;
00087   mvme_set_am(myvme, MVME_AM_A24_ND);
00088   mvme_set_dmode(myvme, MVME_DMODE_D32);
00089   csr = mvme_read_value(myvme, base+VMEIO_RDASYNC);
00090   return (csr & 0xFFFFFF);
00091 }

void vmeio_AsyncWrite ( MVME_INTERFACE myvme,
DWORD  base,
DWORD  data 
)

Writee to the Async output (latch mode)

Parameters:
myvme vme structure
base VMEIO base address
data data to be written
Returns:
void

Definition at line 54 of file vme/vmeio.c.

00055 {
00056   mvme_set_am(myvme, MVME_AM_A24_ND);
00057   mvme_set_dmode(myvme, MVME_DMODE_D32);
00058   mvme_write_value(myvme, base+VMEIO_OUTLATCH, data & 0xFFFFFF);
00059 }

int vmeio_CsrRead ( MVME_INTERFACE myvme,
DWORD  base 
)

Read the CSR register

Parameters:
myvme vme structure
base VMEIO base address
Returns:
CSR status

Definition at line 68 of file vme/vmeio.c.

00069 {
00070   int csr;
00071   mvme_set_am(myvme, MVME_AM_A24_ND);
00072   mvme_set_dmode(myvme, MVME_DMODE_D32);
00073   csr = mvme_read_value(myvme, base+VMEIO_RDCNTL);
00074   return (csr & 0xFF);
00075 }

void vmeio_IntEnable ( MVME_INTERFACE myvme,
DWORD  base,
int  input 
)

Enable Interrupt source. Only any of the first 8 inputs can generate interrupt.

Parameters:
myvme vme structure
base VMEIO base address
input inputs 0..7 (LSB)
Returns:
void

Definition at line 132 of file vme/vmeio.c.

00133 {
00134   mvme_set_am(myvme, MVME_AM_A24_ND);
00135   mvme_set_dmode(myvme, MVME_DMODE_D32);
00136   mvme_write_value(myvme, base+VMEIO_IRQENBL, input);
00137 }

void vmeio_IntRearm ( MVME_INTERFACE myvme,
DWORD  base,
int  input 
)

Select Interrupt source and arm interrupt The CSR should be reset before this operation. In Sync mode the strobe and the input have to be in coincidence. In Async mode a logical level on the input will trigger the interrupt.

Parameters:
myvme vme structure
base VMEIO base address
input inputs 0..7 if 1=> Sync, 0=> Async
Returns:
void

Definition at line 150 of file vme/vmeio.c.

00151 {
00152   mvme_set_am(myvme, MVME_AM_A24_ND);
00153   mvme_set_dmode(myvme, MVME_DMODE_D32);
00154   mvme_write_value(myvme, base+VMEIO_INTSRC, input);
00155 }

void vmeio_OutputSet ( MVME_INTERFACE myvme,
DWORD  base,
DWORD  data 
)

Set output in pulse mode

Parameters:
myvme vme structure
base VMEIO base address
data data to be written
Returns:
void

Definition at line 24 of file vme/vmeio.c.

00025 {
00026   mvme_set_am(myvme, MVME_AM_A24_ND);
00027   mvme_set_dmode(myvme, MVME_DMODE_D32);
00028   mvme_write_value(myvme, base+VMEIO_OUTSET, data & 0xFFFFFF);
00029 }

void vmeio_StrobeClear ( MVME_INTERFACE myvme,
DWORD  base 
)

Clear Strobe input

Parameters:
myvme vme structure
base VMEIO base address
Returns:
void

Definition at line 116 of file vme/vmeio.c.

00117 {
00118   mvme_set_am(myvme, MVME_AM_A24_ND);
00119   mvme_set_dmode(myvme, MVME_DMODE_D32);
00120   mvme_write_value(myvme, base+VMEIO_RDCNTL, 0);
00121 }

int vmeio_SyncRead ( MVME_INTERFACE myvme,
DWORD  base 
)

Read from the Sync register

Parameters:
myvme vme structure
base VMEIO base address
Returns:
Sync_Reg

Definition at line 100 of file vme/vmeio.c.

00101 {
00102   int csr;
00103   mvme_set_am(myvme, MVME_AM_A24_ND);
00104   mvme_set_dmode(myvme, MVME_DMODE_D32);
00105   csr = mvme_read_value(myvme, base+VMEIO_RDSYNC);
00106   return (csr & 0xFFFFFF);
00107 }

void vmeio_SyncWrite ( MVME_INTERFACE myvme,
DWORD  base,
DWORD  data 
)

Write to the sync output (pulse mode)

Parameters:
myvme vme structure
base VMEIO base address
data data to be written
Returns:
void

Definition at line 39 of file vme/vmeio.c.

00040 {
00041   mvme_set_am(myvme, MVME_AM_A24_ND);
00042   mvme_set_dmode(myvme, MVME_DMODE_D32);
00043   mvme_write_value(myvme, base+VMEIO_OUTPULSE, data & 0xFFFFFF);
00044 }


Midas DOC Version 3.0.0 ---- 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