dac128V

Current Author: Mark Rivers

Original Author: Jim Kolakowski

 

This file describes support for the Systran DAC128V, an 8 channel, 12-bit D/A converter. The following source files are included in this module.

DAC128V.h defines dac128V class
dac128V.cc communicates with hardware
dac128VServer.cc MPF server, interface between MPF and dac128V.cc
devAoDAC128V.cc EPICS device support code for ao (analog output record)
devAoDAC128V.dbd EPICS device support definition for ao (analog output record)

 

Hardware Configuration

The minimum and maximum voltage of the DAC128V IP module are set by jumpers.  The minimum voltage choices are -10V, -5V or 0V, and the maximum voltage choices are 0V, +5V and +10V.

NOTE: The factory configuration is minimum and maximum both set to 0V, so the DAC won't put out any voltage!  You MUST change the jumpers before installing the module.

CAUTION: The modules always initializes (after VME reset or power-on) to the midpoint of the minimum and maximum voltages that are jumper selected.  Thus, if the range is -10V to +10V then it will come up at 0V, while if the range is 0 to +5V it will come up at 2.5V.  If you are connecting the device to something that should not have voltage applied at reset (such as a heater, or DC motor amplifier, etc.) then always select either -10V to +10V or -5V to +5V range, so that it will power up at 0V.

NOTE: The module can supply up to 20mA over its full output voltage if it is connected to an external 15V power supply.  If you use the internal VME 12V supply, which is the factory default configuration, then the following are true:

 

Startup Script

The following lines should go in your startup script to initialize the dac128V MPF server.

EPICS 3.14

# Initialize Systran DAC
# initDAC128V(char *serverName, int carrier, int slot, int queueSize)
# serverName = name to give this server
# carrier = IPAC carrier number (0, 1, etc.)
# slot = IPAC slot (0,1,2,3, etc.)
# queueSize = size of output queue for EPICS
# Example:
initDAC128V("DAC1", 0, 3, 20)

EPICS 3.13

# Initialize Systran DAC
# initDAC128V(char *serverName, char *carrierName, char *siteName int queueSize)
# serverName = name to give this server
# carrierName = name of IPAC carrier from initIpacCarrier
# siteName = name of IP site, e.g. "IP_a"
# queueSize = size of output queue for EPICS
# pDAC128V = pointer to server object.  Used in fast feedback with ip330 and quadEM.
# Example:
pDAC128V = initDAC128V("d-DAC",carrier0,"IP_d",20)

 

EPICS Device Support

EPICS device support sends Int32Messages with the following info

MPF server returns

Standard input record type format is for ao records

field(SCAN,"1 second")

field(DTYP,"dac128V")

field(INP,"#C{card} S{signal} @{servername}
card = The location of the MPF server
signal = The output channel of the DAC128V. Channels 0 - 7 are valid
serverName = Must match the serverName specified with initDAC128V

field(EGUF,"{FULL VALUE}") The engineering units at positive full scale output.  The actual output voltage depends on the jumpers.

field(EGUL,"{LOW VALUE}") The engineering units at negative full scale output.  The actual output voltage depends on the jumpers.

field(LINR,"LINEAR") Optional

 

Release Notes

 

Suggestions and Comments to:
Mark Rivers : (rivers@cars.uchicago.edu)
Last modified: November 6, 2003