Skip to content

JeffersonLab/vld-epics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vld-epics is an EPICS IOC/library for the VLD

Install Prereqs

jvme (must be done on OS with gefvme RPM installed)

  • set LINUXVME environment variables and install jvme library (e.g. bash)
    export LINUXVME=${HOME}/linuxvme
    export LINUXVME_INC=${LINUXVME}/include
    export LINUXVME_LIB=${LINUXVME}/Linux-x86_64/lib
    
    mkdir -p ${LINUXVME_INC}
    mkdir -p ${LINUXVME_LIB}
    
    cd ${LINUXVME}
    git clone https://github.com/JeffersonLab/jvme.git
    cd jvme
    make install
        

VLD

  • install VLD library
    cd ${LINUXVME}
    git clone https://github.com/JeffersonLab/vld.git
    
    cd vld
    make install
        

Install + configure vld-epics

  • Clone the repo
     
    git clone https://github.com/JeffersonLab/vld-epics.git
    
        
  • Modify configure/RELEASE with the paths for your system, e.g.
    ASYN = /daqfs/apps/epics/R3-15-git/support/asyn
    EPICS_BASE = /daqfs/apps/epics/R3-15-git/base
        
  • Create a substitutions file to match your crate configuration. Example is VLD-daqlab.substitutions
  • build the IOC
    cd vld-epics
    
    make
        
  • modify the st.cmd to use your substitutions file:
    epicsEnvSet("PORT", "daqlab")
    # ...
    # ...
    dbLoadTemplate($(TOP)/db/"VLD-$(PORT).substitutions","P=$(PORT),PORT=$(PORT)")
        

PVs

Crate level

  • ${PORT}NVLD
    • number of VLD found during IOC initialization.
  • ${PORT}SlotMask
    • Mask of slot numbers indicating the slots where VLD were found.
  • ${PORT}ActiveMask
    • What slots are currently enabled

Slot level

General

  • ${PORT}${SLOT}:ModuleID
    • Module ID of the VLD. Should be 0x1EDD
  • ${PORT}${SLOT}:FirmwareVersion
    • Firmware Version of the VLD
  • ${PORT}${SLOT}:Reset
    • Soft Reset of VLD to power-up values
  • ${PORT}${SLOT}:ClockSource
    • Set source of 250MHz clock.
      • 0: internal
      • 1: front panel LEMO
  • ${PORT}${SLOT}:ClockSource_RB
    • Readback of current clock source
  • ${PORT}${SLOT}:TriggerSourceMask
    • mbbo: Set source of calibration pulse
      • 0: Periodic Pulser
      • 1: Random Pulser
      • 2: Front Panel LEMO
  • ${PORT}${SLOT}:TriggerSourceMask_RB
    • mbbo: Readback of calibration pulse source
      • 0: Periodic Pulser
      • 1: Random Pulser
      • 2: Front Panel LEMO

Calibration Pulse Mode

  • ${PORT}${SLOT}:TriggerCount
    • Readback of number of calibration pulses received (or generated)

Waveform

  • ${PORT}${SLOT}:PulseWaveformType
    • Select example trapezoidal (0) or square (1) waveform
  • ${PORT}${SLOT}:SquareWaveAmplitude
    • Set amplitude of square waveform (max DAC = 63)
  • ${PORT}${SLOT}:SquareWaveWidth
    • Set the width [2ns] of the square waveform (max = 2048),

Connector - channel enable masks

  • ${PORT}${SLOT}:${CONN}:LowChannelMask
    • Mask of channels to enable (0-17)
  • ${PORT}${SLOT}:${CONN}:HighChannelMask
    • Mask of channels to enable (18-35)
  • ${PORT}${SLOT}:${CONN}:LowChannelMask_RB
    • Readback of currently enabled channels (0-17)
  • ${PORT}${SLOT}:${CONN}:HighChannelMask_RB
    • Readback of currently enabled channels (18-35)

Random Pulser

  • ${PORT}${SLOT}:RandomPulserRateSet
    • mbbo: Set the random pulse rate
      • 0: 700kHz
      • 1: 350kHz

      • 15: 21Hz
  • ${PORT}${SLOT}:RandomPulserRate
    • mbbi: Readback of current random pulser rate
  • ${PORT}${SLOT}:RandomPulserEnable
    • Enable / Disable the random pulser
  • ${PORT}${SLOT}:RandomPulserEnable_RB
    • Readback of random pulser state

Fixed Pulser

  • ${PORT}${SLOT}:PeriodicPulserPeriod
    • Set value for the fixed pulser period
  • ${PORT}${SLOT}:PeriodicPulserPeriod_RB
    • Readback value for the fixed pulser period
  • ${PORT}${SLOT}:PeriodicPulserPeriodRange
    • Set value for the fixed pulser period range (0: 8ns, 1: 8.19us)
  • ${PORT}${SLOT}:PeriodicPulserPeriodRange_RB
    • Readback value for the fixed pulser period range (0: 8ns, 1: 8.19us)
  • ${PORT}${SLOT}:PeriodicPulserNumber
    • Set value for the fixed pulser number of pulses
  • ${PORT}${SLOT}:PeriodicPulserNumber_RB
    • Readback value for the fixed pulser number of pulses

LEMO Output

  • ${PORT}${SLOT}:CalibrationPulseWidth
    • Set value for the pulse width of the trigger LEMO output
  • ${PORT}${SLOT}:CalibrationPulseWidth_RB
    • Readback value for the pulse width of the trigger LEMO output

Additional delay

  • ${PORT}${SLOT}:TriggerDelay
  • ${PORT}${SLOT}:TriggerDelay_RB
  • ${PORT}${SLOT}:TriggerDelaySet
  • ${PORT}${SLOT}:TriggerDelayStep
  • ${PORT}${SLOT}:TriggerDelayCalc
  • ${PORT}${SLOT}:TriggerDelayCalcout
  • ${PORT}${SLOT}:TriggerDelayStepCalcout
  • ${PORT}${SLOT}:TriggerDelaySetFanout
  • ${PORT}${SLOT}:TriggerDelayFanout
  • ${PORT}${SLOT}:TriggerDelayStep_RB

Bleaching Mode

  • ${PORT}${SLOT}:BleachTime
    • Set the value for the beaching timer, in units of 20ns * 1024 * 1024
  • ${PORT}${SLOT}:BleachTime_RB
    • Set the value for the beaching timer
  • ${PORT}${SLOT}:BleachTimerEnable
    • Enable / Disable the bleaching timer
  • ${PORT}${SLOT}:BleachTimerEnable_RB
    • Readback of the bleaching timer enable status
  • ${PORT}${SLOT}:${CONN}:LDOEnable
    • Enable / Disable of the bleaching LDO regulator
  • ${PORT}${SLOT}:${CONN}:LDOEnable_RB
    • Readback of the bleaching LDO regulator enable status
  • ${PORT}${SLOT}:${CONN}:LDOCurrentSetting
    • Set the value for the LDO regulator setting [0, 7]
  • ${PORT}${SLOT}:${CONN}:LDOCurrentSetting_RB
    • Readback of the LDO regulator setting

About

EPICS support for the JLAB VLD

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published