Difference between revisions of "JLab discriminator"

From GlueXWiki
Jump to: navigation, search
m
m (Scalers readout preliminary driver)
Line 40: Line 40:
 
== Scalers readout preliminary driver ==
 
== Scalers readout preliminary driver ==
  
The current scheme of data flow is the followong.
+
The current scheme of data flow is the following (from top to down):
  
 
{| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1px"
 
{| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1px"
| style="border-style: solid; border-width: 1px 1px 0 0" | VME bus
+
| style="border-style: solid; border-width: 1px 1px 1px 1px" | VME bus
| -
+
| style="border-style: solid; border-width: 1px 1px 0 0" | dsc2.c <br/ > mutex-ed access to the hardware
+
 
|-
 
|-
| style="border-style: solid; border-width: 1px 1px 0 0" | JLabDiscr.c::JLabDiscrReadTask() <br/ > a thread to poll scalers every second
+
| style="border-style: solid; border-width: 1px 1px 1px 1px" | dsc2.c <br/ > mutex-ed access to the hardware
 
+
|-
 +
| style="border-style: solid; border-width: 1px 1px 1px 1px" | JLabDiscr.c::JLabDiscrReadTask() <br/ > a thread to poll scalers every second
 +
|-
 +
|}
 +
{| style="color:blue; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1px"
 +
| style="border-style: solid; border-width: 1px 1px 1px 1px" | EPICS Scan Task <br/ > will periodically start a record processing
 +
|-
 +
| style="border-style: solid; border-width: 1px 1px 1px 1px" | JLabDiscr_subrecord.c <br/ > will copy from memory and push to CA server
 +
|-
 +
| style="border-style: solid; border-width: 1px 1px 1px 1px" | EPICS CA Server will broardcast
 
|}
 
|}

Revision as of 17:35, 5 December 2011

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
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