isegvhs.c File Reference

Go to the source code of this file.

Functions

static uint32_t regRead (MVME_INTERFACE *mvme, DWORD base, int offset)
static float regReadFloat (MVME_INTERFACE *mvme, DWORD base, int offset)
static void regWrite (MVME_INTERFACE *mvme, DWORD base, int offset, uint32_t value)
static void regWriteFloat (MVME_INTERFACE *mvme, DWORD base, int offset, float value)
uint32_t isegvhs_RegisterRead (MVME_INTERFACE *mvme, DWORD base, int offset)
float isegvhs_RegisterReadFloat (MVME_INTERFACE *mvme, DWORD base, int offset)
void isegvhs_RegisterWrite (MVME_INTERFACE *mvme, DWORD base, int offset, uint32_t value)
void isegvhs_RegisterWriteFloat (MVME_INTERFACE *mvme, DWORD base, int offset, float value)
void isegvhs_Status (MVME_INTERFACE *mvme, DWORD base)


Function Documentation

uint32_t isegvhs_RegisterRead ( MVME_INTERFACE mvme,
DWORD  base,
int  offset 
)

Definition at line 64 of file isegvhs.c.

00065 {
00066   return regRead(mvme, base, offset);
00067 }

float isegvhs_RegisterReadFloat ( MVME_INTERFACE mvme,
DWORD  base,
int  offset 
)

Definition at line 70 of file isegvhs.c.

Referenced by isegvhs_Status().

00071 {
00072   float temp;
00073   temp = regReadFloat(mvme, base, offset);
00074   //  printf("temp:%f\n", temp);
00075   return temp;
00076 }

void isegvhs_RegisterWrite ( MVME_INTERFACE mvme,
DWORD  base,
int  offset,
uint32_t  value 
)

Definition at line 79 of file isegvhs.c.

00080 {
00081   regWrite(mvme,base,offset,value);
00082 }

void isegvhs_RegisterWriteFloat ( MVME_INTERFACE mvme,
DWORD  base,
int  offset,
float  value 
)

Definition at line 85 of file isegvhs.c.

00086 {
00087   regWriteFloat(mvme, base, offset, value);
00088 }

void isegvhs_Status ( MVME_INTERFACE mvme,
DWORD  base 
)

Definition at line 91 of file isegvhs.c.

00092 {
00093   uint32_t sn=0, csr;
00094   uint64_t vendor=0;
00095   printf("ISEGVHS at A32 0x%x\n", (int)base);
00096   vendor = (regRead(mvme,base,ISEGVHS_VENDOR_ID)<<16) | regRead(mvme,base,ISEGVHS_VENDOR_ID+2);
00097   printf("Module Vendor     : 0x%x%x\n", regRead(mvme,base,ISEGVHS_VENDOR_ID), regRead(mvme,base,ISEGVHS_VENDOR_ID+2));
00098   printf("Module Vendor     : %s\t\t", (char *)&vendor);
00099   csr = regRead(mvme,base,ISEGVHS_MODULE_STATUS);
00100   printf("Module Status     : 0x%x\n >> ", csr);
00101   printf("%s", csr & 0x0001 ? "FineAdj /" : " NoFineAdj /"); 
00102   printf("%s", csr & 0x0080 ? "CmdCpl /" : " /"); 
00103   printf("%s", csr & 0x0100 ? "noError /" : " ERROR /"); 
00104   printf("%s", csr & 0x0200 ? "noRamp /" : " RAMPING /"); 
00105   printf("%s", csr & 0x0400 ? "Saf closed /" : " /"); 
00106   printf("%s", csr & 0x0800 ? "Evt Active /" : " /"); 
00107   printf("%s", csr & 0x1000 ? "Mod Good /" : " MOD NO good /"); 
00108   printf("%s", csr & 0x2000 ? "Supply Good /" : " Supply NO good /"); 
00109   printf("%s\n", csr & 0x4000 ? "Temp Good /" : " Temp NO good /"); 
00110   printf("Module Control    : 0x%x\t\t", regRead(mvme,base,ISEGVHS_MODULE_CONTROL));
00111   sn = regRead(mvme, base, ISEGVHS_SERIAL_NUMBER);
00112   printf("Module S/N        : %d\n", (sn<<16)|regRead(mvme, base, ISEGVHS_SERIAL_NUMBER+2));
00113   printf("Module Temp.      : %f\t\t", isegvhs_RegisterReadFloat(mvme, base, ISEGVHS_TEMPERATURE));
00114   printf("Module Supply P5  : %f\n", regReadFloat(mvme, base, ISEGVHS_SUPPLY_P5));
00115   printf("Module Supply P12 : %f\t\t", regReadFloat(mvme, base, ISEGVHS_SUPPLY_P12));
00116   printf("Module Supply N12 : %f\n", regReadFloat(mvme, base, ISEGVHS_SUPPLY_N12));
00117   printf("Module Trim V Max : %f\t\t", regReadFloat(mvme, base, ISEGVHS_VOLTAGE_MAX));
00118   printf("Module Trim I Max : %f\n", regReadFloat(mvme, base, ISEGVHS_CURRENT_MAX));
00119   printf("Module Event Stat : 0x%04x\t\t", regRead(mvme, base, ISEGVHS_MODULE_EVENT_STATUS));
00120   printf("Module Event Mask : 0x%04x\n", regRead(mvme, base, ISEGVHS_MODULE_EVENT_MASK));
00121   printf("Channel Event Stat: 0x%04x\t\t", regRead(mvme, base, ISEGVHS_CHANNEL_EVENT_STATUS));
00122   printf("Channel Event Mask: 0x%04x\n\n", regRead(mvme, base, ISEGVHS_CHANNEL_EVENT_MASK));
00123 }

static uint32_t regRead ( MVME_INTERFACE mvme,
DWORD  base,
int  offset 
) [static]

Definition at line 20 of file isegvhs.c.

Referenced by isegvhs_RegisterRead(), isegvhs_Status(), sis3320_RegisterRead(), sis3320_Status(), sis3820_DataReady(), sis3820_RegisterRead(), sis3820_ScalerRead(), sis3820_Status(), v1720_AcqCtl(), v1720_BufferFree(), v1720_BufferFreeRead(), v1720_BufferOccupancy(), v1720_ChannelDACGet(), v1720_ChannelGet(), v1720_DataRead(), v1720_info(), v1720_RegisterRead(), v1720_Status(), v1740_AcqCtl(), v1740_BufferFree(), v1740_BufferFreeRead(), v1740_BufferOccupancy(), v1740_DataRead(), v1740_info(), v1740_RegisterRead(), v1740_Status(), v513_GetChannelMode(), v513_Read(), v513_RegisterRead(), v513_Reset(), v513_Status(), v560_RegisterRead(), v560_Reset(), and v560_Status().

00021 {
00022   mvme_set_am(mvme, MVME_AM_A16);
00023   mvme_set_dmode(mvme, MVME_DMODE_D16);
00024   return (mvme_read_value(mvme, base + offset) & 0xFFFF);
00025 }

static float regReadFloat ( MVME_INTERFACE mvme,
DWORD  base,
int  offset 
) [static]

Definition at line 27 of file isegvhs.c.

Referenced by isegvhs_RegisterReadFloat(), and isegvhs_Status().

00028 {
00029   uint32_t temp, temp1;
00030   float ftemp;
00031   mvme_set_am(mvme, MVME_AM_A16);
00032   mvme_set_dmode(mvme, MVME_DMODE_D16);
00033   temp = mvme_read_value(mvme, base + offset);
00034   temp1 = mvme_read_value(mvme, base + offset+2);
00035   temp = (temp<<16) | (temp1 & 0xFFFF);
00036   //ftemp = *((float *)&temp);
00037   memcpy(&ftemp, &temp, 4);
00038   //  printf("regReadFloat : %f 0x%x\n", ftemp, temp);
00039   return (ftemp);
00040 }

static void regWrite ( MVME_INTERFACE mvme,
DWORD  base,
int  offset,
uint32_t  value 
) [static]

Definition at line 46 of file isegvhs.c.

Referenced by isegvhs_RegisterWrite(), sis3320_RegisterWrite(), sis3320_Reset(), sis3320_Setup(), sis3820_RegisterWrite(), sis3820_Reset(), v1720_AcqCtl(), v1720_Align64Set(), v1720_BufferFree(), v1720_ChannelCtl(), v1720_ChannelDACSet(), v1720_ChannelOUThresholdSet(), v1720_ChannelSet(), v1720_ChannelThresholdSet(), v1720_RegisterWrite(), v1720_Reset(), v1720_Setup(), v1720_TrgCtl(), v1740_AcqCtl(), v1740_BufferFree(), v1740_GroupCtl(), v1740_GroupDAC(), v1740_GroupThreshold(), v1740_RegisterWrite(), v1740_Reset(), v1740_Setup(), v1740_TrgCtl(), v513_RegisterWrite(), v513_Reset(), v513_SetChannelMode(), v513_Write(), and v560_RegisterWrite().

00047 {
00048   mvme_set_am(mvme, MVME_AM_A16);
00049   mvme_set_dmode(mvme, MVME_DMODE_D16);
00050   mvme_write_value(mvme, base + offset, value);
00051 }

static void regWriteFloat ( MVME_INTERFACE mvme,
DWORD  base,
int  offset,
float  value 
) [static]

Definition at line 53 of file isegvhs.c.

Referenced by isegvhs_RegisterWriteFloat().

00054 {
00055   uint32_t temp;
00056   memcpy(&temp, &value, 4);
00057   mvme_set_am(mvme, MVME_AM_A16);
00058   mvme_set_dmode(mvme, MVME_DMODE_D16);
00059   mvme_write_value(mvme, base + offset, ((temp>>16)&0xFFFF));
00060   mvme_write_value(mvme, base + offset+2, (temp & 0xFFFF));
00061 }


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