CAEN V895 16-Channel Discriminator
Author: Tim Mooney
Table of contents
The CAEN V895 is a 16-channel leading edge discriminator in a VME module. This driver is implemented as an asynPortDriver subclass, providing access to the per-channel threshold values (0-255) through standard asyn interfaces.
Configuration
An iocsh script is provided that initializes the driver and loads all 16 channels:
iocshLoad("$(VME)/iocsh/CAEN_v895.iocsh", "PREFIX=xxx:, INSTANCE=disc:, VME=$(VME), ADDRESS=0x04000000, PORT=v895")
| Macro | Required | Description |
|---|---|---|
PREFIX | Yes | IOC prefix |
INSTANCE | Yes | Instance prefix |
ADDRESS | Yes | VME base address |
PORT | Yes | asyn port name |
VME | Yes | Location of vme module |
The script calls initCAEN_v895(portName, baseAddress) and loads one instance of singleDiscrim.db per channel (N=1-16, S=0-15). When configuring manually:
initCAEN_v895("v895", 0x04000000)
dbLoadRecords("$(VME)/vmeApp/Db/singleDiscrim.db", "P=$(PREFIX),D=$(INSTANCE),N=1,S=0")
# Repeat for N=2..16, S=1..15
asyn Parameters
| Parameter String | asyn Interface | Description |
|---|---|---|
DATA | asynInt32 | Discriminator threshold in device units (0-255) |
DOUBLE_DATA | asynFloat64 | Discriminator threshold as floating-point |
The driver is configured as ASYN_MULTIDEVICE with 16 channels (addresses 0-15).
The CAEN V895 hardware is write-only. Read operations return 0; the last written value is tracked via the asyn parameter library.
Dependencies
Requires the asyn module (asynPortDriver base class).