Functions | |
int EXPRT | mvme_open (MVME_INTERFACE **vme, int idx) |
int EXPRT | mvme_close (MVME_INTERFACE *vme) |
int EXPRT | mvme_sysreset (MVME_INTERFACE *vme) |
int EXPRT | mvme_read (MVME_INTERFACE *vme, void *dst, mvme_addr_t vme_addr, mvme_size_t n_bytes) |
unsigned int EXPRT | mvme_read_value (MVME_INTERFACE *vme, mvme_addr_t vme_addr) |
int EXPRT | mvme_write (MVME_INTERFACE *vme, mvme_addr_t vme_addr, void *src, mvme_size_t n_bytes) |
int EXPRT | mvme_write_value (MVME_INTERFACE *vme, mvme_addr_t vme_addr, unsigned int value) |
int EXPRT | mvme_set_am (MVME_INTERFACE *vme, int am) |
int EXPRT | mvme_get_am (MVME_INTERFACE *vme, int *am) |
int EXPRT | mvme_set_dmode (MVME_INTERFACE *vme, int dmode) |
int EXPRT | mvme_get_dmode (MVME_INTERFACE *vme, int *dmode) |
int EXPRT | mvme_set_blt (MVME_INTERFACE *vme, int mode) |
int EXPRT | mvme_get_blt (MVME_INTERFACE *vme, int *mode) |
int EXPRT mvme_close | ( | MVME_INTERFACE * | vme | ) |
Close and release ALL the opened VME channel. See example in mvme_open()
*vme | VME structure. |
int EXPRT mvme_get_am | ( | MVME_INTERFACE * | vme, | |
int * | am | |||
) |
Get Address Modifier.
*vme | VME structure | |
*am | returned address modifier |
Referenced by sis3820_FifoRead(), VPPGRegRead(), and VPPGRegWrite().
int EXPRT mvme_get_blt | ( | MVME_INTERFACE * | vme, | |
int * | mode | |||
) |
Get current Data mode.
*vme | VME structure | |
*mode | returned BLT mode |
int EXPRT mvme_get_dmode | ( | MVME_INTERFACE * | vme, | |
int * | dmode | |||
) |
Get current Data mode.
*vme | VME structure | |
*dmode | returned address modifier |
Referenced by lrs1151_Clear(), lrs1151_Read(), lrs1190_CountRead(), lrs1190_Disable(), lrs1190_Enable(), lrs1190_H2Read(), lrs1190_I4Read(), lrs1190_L2Read(), lrs1190_Reset(), sis3801_channel_enable(), sis3801_CSR_read(), sis3801_CSR_write(), sis3801_dwell_time(), sis3801_FIFO_clear(), sis3801_FIFO_flush(), sis3801_HFIFO_read(), sis3801_input_mode(), sis3801_int_attach(), sis3801_int_source(), sis3801_int_source_disable(), sis3801_int_source_enable(), sis3801_IRQ_REG_read(), sis3801_IRQ_REG_write(), sis3801_module_ID(), sis3801_module_reset(), sis3801_next_logic(), sis3801_ref1(), sis3801_Setup(), v1190_AcqModeRead(), v1190_ContinuousSet(), v1190_DataRead(), v1190_DataReady(), v1190_EventRead(), v1190_EvtCounter(), v1190_EvtStored(), v1190_GeoWrite(), v1190_LEResolutionSet(), v1190_MicroFlush(), v1190_MicroRead(), v1190_MicroWrite(), v1190_OffsetSet(), v1190_ResolutionRead(), v1190_SetEdgeDetection(), v1190_Setup(), v1190_SoftClear(), v1190_SoftReset(), v1190_SoftTrigger(), v1190_Status(), v1190_TdcIdList(), v1190_TriggerMatchingSet(), v1190_WidthSet(), v1729_AcqStart(), v1729_ChannelSelect(), v1729_DataRead(), v1729_FrqSamplingSet(), v1729_isTrigger(), v1729_NColsGet(), v1729_NColsSet(), v1729_OrderData(), v1729_PedestalRun(), v1729_PostTrigSet(), v1729_PreTrigSet(), v1729_Reset(), v1729_Setup(), v1729_SoftTrigger(), v1729_Status(), v1729_TimeCalibrationRun(), v1729_TriggerTypeSet(), v792_BitSet2Clear(), v792_BitSet2Read(), v792_BitSet2Set(), v792_ControlRegister1Read(), v792_ControlRegister1Write(), v792_CSR1Read(), v792_CSR2Read(), v792_DataClear(), v792_DataRead(), v792_DataReady(), v792_EmptyEnable(), v792_EventRead(), v792_EvtCntRead(), v792_EvtCntReset(), v792_EvtTriggerSet(), v792_IntDisable(), v792_IntEnable(), v792_IntSet(), v792_isBusy(), v792_isPresent(), v792_LowThDisable(), v792_LowThEnable(), v792_OnlineSet(), v792_Setup(), v792_SingleShotReset(), v792_SoftReset(), v792_Status(), v792_ThresholdRead(), v792_ThresholdWrite(), v792_Trigger(), vf48_AcqStart(), vf48_AcqStop(), vf48_ActiveChMaskRead(), vf48_ActiveChMaskSet(), vf48_ChSuppRead(), vf48_ChSuppSet(), vf48_CsrRead(), vf48_DivisorRead(), vf48_DivisorWrite(), vf48_EventRead(), vf48_EventRead64(), vf48_ExtTrgClr(), vf48_ExtTrgSet(), vf48_FeFull(), vf48_FeNotEmpty(), vf48_GrpEnable(), vf48_GrpRead(), vf48_HitThresholdRead(), vf48_HitThresholdSet(), vf48_isPresent(), vf48_NFrameRead(), vf48_ParameterRead(), vf48_ParameterWrite(), vf48_RawDataSuppRead(), vf48_RawDataSuppSet(), vf48_Reset(), vf48_SegmentSizeRead(), vf48_SegmentSizeSet(), vf48_Setup(), vf48_Status(), vf48_TrgThresholdRead(), vf48_TrgThresholdSet(), vpc6_ASDHysteresisSet(), vpc6_ASDModeSet(), vpc6_ASDRegSet(), vpc6_ASDThresholdSet(), vpc6_CfgRetrieve(), vpc6_isPortBusy(), vpc6_PATypeRead(), vpc6_PATypeWrite(), vpc6_PortCfgLoad(), vpc6_PortRegRBRead(), vpc6_PortRegRead(), vpc6_PortTypeRead(), vpc6_Setup(), vpc6_Status(), VPPGRegRead(), VPPGRegWrite(), vt2_CSRRead(), vt2_CycleNumberRead(), vt2_CycleReset(), vt2_FifoLevelRead(), vt2_FifoRead(), vt2_IntEnable(), vt2_KeepAlive(), vt2_ManReset(), vt48_EventRead(), vt48_RegPrint(), vt48_RegRead(), vt48_RegWrite(), vt48_Setup(), vt48_Status(), vt48_WindowOffsetSet(), and vt48_WindowSet().
int EXPRT mvme_interrupt_attach | ( | MVME_INTERFACE * | mvme, | |
int | level, | |||
int | vector, | |||
void(*)(int, void *, void *) | isr, | |||
void * | info | |||
) |
Referenced by sis3801_int_attach().
int EXPRT mvme_interrupt_detach | ( | MVME_INTERFACE * | mvme, | |
int | level, | |||
int | vector, | |||
void * | info | |||
) |
int EXPRT mvme_interrupt_disable | ( | MVME_INTERFACE * | mvme, | |
int | level, | |||
int | vector, | |||
void * | info | |||
) |
int EXPRT mvme_interrupt_enable | ( | MVME_INTERFACE * | mvme, | |
int | level, | |||
int | vector, | |||
void * | info | |||
) |
int EXPRT mvme_interrupt_generate | ( | MVME_INTERFACE * | mvme, | |
int | level, | |||
int | vector, | |||
void * | info | |||
) |
int EXPRT mvme_open | ( | MVME_INTERFACE ** | vme, | |
int | idx | |||
) |
VME open The code below summarize the use of most of the mvme calls included in this interface.
#include "vmicvme.h" // or other VME interface driver. int main () { int i, status, vmeio_status, data; MVME_INTERFACE *myvme; // Open VME channel status = mvme_open(&myvme, 0); // Reset VME // Under VMIC reboot CPU!! // status = mvme_sysreset(myvme); // Setup AM status = mvme_set_am(myvme, MVME_AM_A24_ND); // Setup Data size status = mvme_set_dmode(myvme, MVME_DMODE_D32); // Read VMEIO status status = mvme_read(myvme, &vmeio_status, 0x78001C, 4); printf("VMEIO status : 0x%x\n", vmeio_status); // Write Single value mvme_write_value(myvme, 0x780010, 0x3); // Read Single Value printf("Value : 0x%x\n", mvme_read_value(myvme, 0x780018)); // Write to the VMEIO in latch mode for (i=0;i<10000;i++) { data = 0xF; status = mvme_write(myvme, 0x780010, &data, 4); data = 0x0; status = mvme_write(myvme, 0x780010, &data, 4); } // Close VME channel status = mvme_close(myvme); return 1; }
**vme | user VME pointer to the interface | |
idx | interface number should be used to distingush multiple VME interface access within the same program. |
int EXPRT mvme_read | ( | MVME_INTERFACE * | vme, | |
void * | dst, | |||
mvme_addr_t | vme_addr, | |||
mvme_size_t | n_bytes | |||
) |
Read from VME bus. Implementation of the read can include automatic DMA transfer based on the size of the data. See example in mvme_open()
*vme | VME structure | |
*dst | destination pointer | |
vme_addr | source address (VME location). | |
n_bytes | requested transfer size. |
Referenced by sis3820_FifoRead(), v1190_DataRead(), v560_Read(), v792_DataRead(), and vf48_DataRead().
unsigned int EXPRT mvme_read_value | ( | MVME_INTERFACE * | vme, | |
mvme_addr_t | vme_addr | |||
) |
Read single data from VME bus. Useful for register access. See example in mvme_open()
*vme | VME structure | |
vme_addr | source address (VME location). |
Referenced by lrs1151_Read(), lrs1190_CountRead(), lrs1190_H2Read(), lrs1190_I4Read(), lrs1190_L2Read(), lrs1190_Reset(), v895::readReg16(), v895::readReg8(), regRead(), sis3801_CSR_read(), sis3801_dwell_time(), sis3801_FIFO_flush(), sis3801_HFIFO_read(), sis3801_input_mode(), sis3801_IRQ_REG_read(), sis3801_IRQ_REG_write(), sis3801_module_ID(), sis3801_next_logic(), sis3801_ref1(), v1190_DataReady(), v1190_EventRead(), v1190_EvtCounter(), v1190_EvtStored(), v1190_GeoWrite(), v1190_MicroRead(), v1190_MicroWrite(), v1729_DataRead(), v1729_isTrigger(), v1729_NColsGet(), v1729_OrderData(), v1729_PedestalRun(), v1729_Status(), v1729_TimeCalibrationRun(), v792_BitSet2Read(), v792_ControlRegister1Read(), v792_CSR1Read(), v792_CSR2Read(), v792_DataReady(), v792_EventRead(), v792_EvtCntRead(), v792_isBusy(), v792_isPresent(), v792_Read16(), v792_Status(), v792_ThresholdRead(), v792_ThresholdWrite(), vf48_AcqStart(), vf48_AcqStop(), vf48_CsrRead(), vf48_EventRead(), vf48_ExtTrgClr(), vf48_ExtTrgSet(), vf48_FeFull(), vf48_FeNotEmpty(), vf48_GrpRead(), vf48_isPresent(), vf48_NFrameRead(), vf48_ParameterRead(), vf48_ParameterWrite(), vf48_Reset(), vf48_Status(), vf48_Trigger(), vmeio_AsyncRead(), vmeio_CsrRead(), vmeio_SyncRead(), vpc6_ASDHysteresisSet(), vpc6_ASDModeSet(), vpc6_ASDThresholdSet(), vpc6_isPortBusy(), vpc6_PATypeRead(), vpc6_PortRegRBRead(), vpc6_PortRegRead(), vpc6_PortTypeRead(), VPPGRegRead(), VPPGRegWrite(), vt2_CSRRead(), vt2_CycleNumberRead(), vt2_FifoLevelRead(), vt2_FifoRead(), vt48_EventRead(), and vt48_RegRead().
int EXPRT mvme_set_am | ( | MVME_INTERFACE * | vme, | |
int | am | |||
) |
Set Address Modifier.
*vme | VME structure | |
am | address modifier |
Referenced by regRead(), regWrite(), sis3820_FifoRead(), v560_Read(), vf48_AcqStart(), vf48_AcqStop(), vf48_DataRead(), vf48_NFrameRead(), vmeio_AsyncRead(), vmeio_AsyncWrite(), vmeio_CsrRead(), vmeio_IntEnable(), vmeio_IntRearm(), vmeio_OutputSet(), vmeio_StrobeClear(), vmeio_SyncRead(), vmeio_SyncWrite(), VPPGRegRead(), and VPPGRegWrite().
int EXPRT mvme_set_blt | ( | MVME_INTERFACE * | vme, | |
int | mode | |||
) |
Set Block Transfer mode.
*vme | VME structure | |
mode | BLT mode |
Referenced by sis3820_FifoRead(), and vf48_DataRead().
int EXPRT mvme_set_dmode | ( | MVME_INTERFACE * | vme, | |
int | dmode | |||
) |
Set Data mode.
*vme | VME structure | |
dmode | Data mode |
Referenced by lrs1151_Clear(), lrs1151_Read(), lrs1190_CountRead(), lrs1190_Disable(), lrs1190_Enable(), lrs1190_H2Read(), lrs1190_I4Read(), lrs1190_L2Read(), lrs1190_Reset(), v895::readReg16(), v895::readReg8(), regRead(), regWrite(), sis3801_channel_enable(), sis3801_CSR_read(), sis3801_CSR_write(), sis3801_dwell_time(), sis3801_FIFO_clear(), sis3801_FIFO_flush(), sis3801_HFIFO_read(), sis3801_input_mode(), sis3801_int_attach(), sis3801_int_source(), sis3801_int_source_disable(), sis3801_int_source_enable(), sis3801_IRQ_REG_read(), sis3801_IRQ_REG_write(), sis3801_module_ID(), sis3801_module_reset(), sis3801_next_logic(), sis3801_ref1(), sis3801_Setup(), v1190_AcqModeRead(), v1190_ContinuousSet(), v1190_DataRead(), v1190_DataReady(), v1190_EventRead(), v1190_EvtCounter(), v1190_EvtStored(), v1190_GeoWrite(), v1190_LEResolutionSet(), v1190_MicroFlush(), v1190_MicroRead(), v1190_MicroWrite(), v1190_OffsetSet(), v1190_ResolutionRead(), v1190_SetEdgeDetection(), v1190_Setup(), v1190_SoftClear(), v1190_SoftReset(), v1190_SoftTrigger(), v1190_Status(), v1190_TdcIdList(), v1190_TriggerMatchingSet(), v1190_WidthSet(), v1729_AcqStart(), v1729_ChannelSelect(), v1729_DataRead(), v1729_FrqSamplingSet(), v1729_isTrigger(), v1729_NColsGet(), v1729_NColsSet(), v1729_OrderData(), v1729_PedestalRun(), v1729_PostTrigSet(), v1729_PreTrigSet(), v1729_Reset(), v1729_Setup(), v1729_SoftTrigger(), v1729_Status(), v1729_TimeCalibrationRun(), v1729_TriggerTypeSet(), v560_Read(), v792_BitSet2Clear(), v792_BitSet2Read(), v792_BitSet2Set(), v792_ControlRegister1Read(), v792_ControlRegister1Write(), v792_CSR1Read(), v792_CSR2Read(), v792_DataClear(), v792_DataRead(), v792_DataReady(), v792_EmptyEnable(), v792_EventRead(), v792_EvtCntRead(), v792_EvtCntReset(), v792_EvtTriggerSet(), v792_IntDisable(), v792_IntEnable(), v792_IntSet(), v792_isBusy(), v792_isPresent(), v792_LowThDisable(), v792_LowThEnable(), v792_OnlineSet(), v792_Read16(), v792_Setup(), v792_SingleShotReset(), v792_SoftReset(), v792_Status(), v792_ThresholdRead(), v792_ThresholdWrite(), v792_Trigger(), v792_Write16(), vf48_AcqStart(), vf48_AcqStop(), vf48_ActiveChMaskRead(), vf48_ActiveChMaskSet(), vf48_ChSuppRead(), vf48_ChSuppSet(), vf48_CsrRead(), vf48_DataRead(), vf48_DivisorRead(), vf48_DivisorWrite(), vf48_EventRead(), vf48_EventRead64(), vf48_ExtTrgClr(), vf48_ExtTrgSet(), vf48_FeFull(), vf48_FeNotEmpty(), vf48_GrpEnable(), vf48_GrpRead(), vf48_HitThresholdRead(), vf48_HitThresholdSet(), vf48_isPresent(), vf48_NFrameRead(), vf48_ParameterRead(), vf48_ParameterWrite(), vf48_RawDataSuppRead(), vf48_RawDataSuppSet(), vf48_Reset(), vf48_SegmentSizeRead(), vf48_SegmentSizeSet(), vf48_Setup(), vf48_Status(), vf48_TrgThresholdRead(), vf48_TrgThresholdSet(), vmeio_AsyncRead(), vmeio_AsyncWrite(), vmeio_CsrRead(), vmeio_IntEnable(), vmeio_IntRearm(), vmeio_OutputSet(), vmeio_StrobeClear(), vmeio_SyncRead(), vmeio_SyncWrite(), vpc6_ASDHysteresisSet(), vpc6_ASDModeSet(), vpc6_ASDRegSet(), vpc6_ASDThresholdSet(), vpc6_CfgRetrieve(), vpc6_isPortBusy(), vpc6_PATypeRead(), vpc6_PATypeWrite(), vpc6_PortCfgLoad(), vpc6_PortRegRBRead(), vpc6_PortRegRead(), vpc6_PortTypeRead(), vpc6_Setup(), vpc6_Status(), VPPGRegRead(), VPPGRegWrite(), vt2_CSRRead(), vt2_CycleNumberRead(), vt2_CycleReset(), vt2_FifoLevelRead(), vt2_FifoRead(), vt2_IntEnable(), vt2_KeepAlive(), vt2_ManReset(), vt48_EventRead(), vt48_RegPrint(), vt48_RegRead(), vt48_RegWrite(), vt48_Setup(), vt48_Status(), vt48_WindowOffsetSet(), vt48_WindowSet(), v895::writeReg16(), and v895::writeReg8().
int EXPRT mvme_sysreset | ( | MVME_INTERFACE * | vme | ) |
VME bus reset. Effect of the VME bus reset is dependent of the type of VME interface used. See example in mvme_open()
*vme | VME structure. |
int EXPRT mvme_write | ( | MVME_INTERFACE * | vme, | |
mvme_addr_t | vme_addr, | |||
void * | src, | |||
mvme_size_t | n_bytes | |||
) |
Write data to VME bus. Implementation of the write can include automatic DMA transfer based on the size of the data. See example in mvme_open()
*vme | VME structure | |
vme_addr | source address (VME location). | |
*src | source array | |
n_bytes | size of the array in bytes |
int EXPRT mvme_write_value | ( | MVME_INTERFACE * | vme, | |
mvme_addr_t | vme_addr, | |||
unsigned int | value | |||
) |
Write single data to VME bus. Useful for register access. See example in mvme_open()
*vme | VME structure | |
vme_addr | source address (VME location). | |
value | Value to be written to the VME bus |
Referenced by lrs1151_Clear(), lrs1190_Disable(), lrs1190_Enable(), lrs1190_I4Read(), regWrite(), sis3801_channel_enable(), sis3801_CSR_write(), sis3801_dwell_time(), sis3801_FIFO_clear(), sis3801_input_mode(), sis3801_int_attach(), sis3801_int_clear(), sis3801_int_source(), sis3801_int_source_disable(), sis3801_int_source_enable(), sis3801_IRQ_REG_write(), sis3801_module_reset(), sis3801_next_logic(), sis3801_ref1(), v1190_GeoWrite(), v1190_MicroWrite(), v1190_SoftClear(), v1190_SoftReset(), v1190_SoftTrigger(), v1729_AcqStart(), v1729_ChannelSelect(), v1729_FrqSamplingSet(), v1729_NColsSet(), v1729_PostTrigSet(), v1729_PreTrigSet(), v1729_Reset(), v1729_Setup(), v1729_SoftTrigger(), v1729_TriggerTypeSet(), v792_BitSet2Clear(), v792_BitSet2Set(), v792_ControlRegister1Write(), v792_DataClear(), v792_EmptyEnable(), v792_EvtCntReset(), v792_EvtTriggerSet(), v792_IntDisable(), v792_IntEnable(), v792_IntSet(), v792_LowThDisable(), v792_LowThEnable(), v792_OnlineSet(), v792_SingleShotReset(), v792_SoftReset(), v792_ThresholdWrite(), v792_Trigger(), v792_Write16(), vf48_AcqStart(), vf48_AcqStop(), vf48_ExtTrgClr(), vf48_ExtTrgSet(), vf48_GrpEnable(), vf48_ParameterRead(), vf48_ParameterWrite(), vf48_Reset(), vf48_Trigger(), vmeio_AsyncWrite(), vmeio_IntEnable(), vmeio_IntRearm(), vmeio_OutputSet(), vmeio_StrobeClear(), vmeio_SyncWrite(), vpc6_ASDRegSet(), vpc6_CfgRetrieve(), vpc6_PATypeWrite(), vpc6_PortCfgLoad(), VPPGRegWrite(), vt2_CycleReset(), vt2_IntEnable(), vt2_KeepAlive(), vt2_ManReset(), vt48_RegWrite(), v895::writeReg16(), and v895::writeReg8().