JLab discriminator

From GlueXWiki
Revision as of 17:46, 5 December 2011 by Nerses (Talk | contribs) (Scalers readout preliminary driver)

Jump to: navigation, search

There is a Hall-B page for JLab discriminator

Manuals

Manual for 16-Channel Discriminator/Scaler VME Module (by J.Proffit), 20-Nov-2002, in (pdf)
Manual for New 16-Channel Discriminator/Scaler VME Module (draft by Ben Raydo), 6-Mar-2009, in (pdf)
Manual for New 16-Channel Discriminator/Scaler VME Module (rev.B by Ben Raydo), 28-May-2010, in (pdf)
Manual for New 16-Channel Discriminator/Scaler VME Module (rev.C by Ben Raydo), 11-Feb-2011, in (pdf)

Example Program

#include "dsc2.h"
int main(){
 vmeOpenDefaultWindows(); /* Map the VME bus memory (For Linux only.). */
 dsc2Init(0xe00000,0,1);  /* Base memory: Only last 2 HW switches are relevant, 
                             the rest are lost due to shift of address. */
                          /* Memory size per board. */
                          /* Number of boards. */
 dsc2Status(0,0);         /* Board number and flag which is not used. */
 dsc2PrintScalers(0,0xff);/* Board number and printing option */
 return(0);
}

Linux VME support

Brian Moffit from CODA group has setup a directory for software for Intel based VME controllers running Linux. README there is a good introduction to the subject.

/site/coda/2.6.1/extensions/linuxvme

RPMs for VME controllers running Linux located in the directory

/site/coda/2.6.1/extensions/linuxvme/RPMS

Available files are:

gefvme-kmod-common-4.1-0.i386.rpm (Development files)
kmod-gefvme-PAE*.rpm (Kernel module)

To install the development RPM without kernel module will require the --nodeps option

rpm -i --nodeps gefvme-kmod-common-4.1-0.i386.rpm

Scalers readout preliminary driver

The current scheme of data flow is the following (from top to down):

VME bus
dsc2.c
mutex-ed access to the hardware
JLabDiscr.c::JLabDiscrReadTask()
a thread to poll scalers every second
and stores them in the memory


EPICS Scan Task
will periodically start a record processing
JLabDiscr_subrecord.c
will copy from memory and push to CA server
EPICS CA Server will broardcast

Other supplemental files are:

  • JLabDiscr_subMain.cpp -- The standard main program
  • JLabDiscr_subConfig.c -- hooks for EPICS
  • JLabDiscr_subConfig.dbd, JLabDiscr_subrecord.dbd -- DBD files
  • dbJLabDiscr.db -- DB file