dac128V

Mark Rivers

Release 2-10-1

This file describes support for the Systran DAC128V, an 8 channel, 12-bit D/A converter in the Industry Pack form factor. This support is a simple C++ driver derived from asynPortDriver, which is part of asyn. It uses the standard asyn device support for ao records. It supports both the asynInt32 and asynFloat64 interfaces. The asynInt32 interface is used for ao records. The asynFloat64 is provided for use with the fast feedback in the EPID record, which is part of the std module in synApps. It uses the ipac module for Industry Pack communication.

Several databases are provided in the Db directory, as well as medm screens in the op/adl directory.

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 asyn server.

# Initialize Systran DAC
# initDAC128V(char *portName, int carrier, int slot)
# portName  = name to give this asyn port
# carrier     = IPAC carrier number (0, 1, etc.)
# slot        = IPAC slot (0,1,2,3, etc.)
initDAC128V("DAC1", 0, 3)


Suggestions and Comments to:
Mark Rivers : (rivers@cars.uchicago.edu)