git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@14363 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
378 lines
12 KiB
HTML
Executable File
378 lines
12 KiB
HTML
Executable File
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>areaDetector Andor driver</title>
|
|
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
|
</head>
|
|
<body>
|
|
<div style="text-align: center">
|
|
<h1>
|
|
areaDetector Andor driver</h1>
|
|
<h2>
|
|
January 7, 2012</h2>
|
|
<h2>
|
|
Matthew Pearson, Diamond Light Source</h2>
|
|
<h2>
|
|
Mark Rivers, University of Chicago</h2>
|
|
</div>
|
|
<h2>
|
|
Table of Contents</h2>
|
|
<ul>
|
|
<li><a href="#Introduction">Introduction</a></li>
|
|
<li><a href="#StandardNotes">Implementation of standard driver parameters</a></li>
|
|
<li><a href="#Driver_parameters">Andor specific parameters</a></li>
|
|
<li><a href="#Unsupported">Unsupported standard driver parameters</a></li>
|
|
<li><a href="#Configuration">Configuration</a></li>
|
|
<li><a href="#MEDM_screens">MEDM screens</a></li>
|
|
<li><a href="#Future_plans">Future plans</a> </li>
|
|
</ul>
|
|
<h2 id="Introduction" style="text-align: left">
|
|
Introduction</h2>
|
|
<p>
|
|
This is an <a href="http://www.aps.anl.gov/epics">EPICS</a> <a href="areaDetector.html">
|
|
areaDetector</a> driver for CCD and CMOS detectors from <a href="http://www.andor.com">Andor Technology</a>.
|
|
It has been tested on the Andor iKon CCD cameras with USB interface, but should work with other cameras as well.</p>
|
|
<p>
|
|
The driver currently provides the following features:</p>
|
|
<ul>
|
|
<li>Take images in single image mode and accumulate mode</li>
|
|
<li>Set the exposure time</li>
|
|
<li>Set the filename</li>
|
|
<li>Change the ADC sampling speed (0.05MHz and 2.5MHz)</li>
|
|
<li>Set a region of interest (a smaller region can be read out faster)</li>
|
|
<li>Set and monitor the CCD temperature</li>
|
|
<li>Set the number of images to use in accumulate mode</li>
|
|
</ul>
|
|
|
|
<p>
|
|
This driver inherits from <a href="areaDetectorDoc.html#ADDriver">ADDriver</a>.
|
|
It implements many of the parameters in <a href="areaDetectorDoxygenHTML/asyn_n_d_array_driver_8h.html">
|
|
asynNDArrayDriver.h</a> and in <a href="areaDetectorDoxygenHTML/_a_d_driver_8h.html">
|
|
ADArrayDriver.h</a>. It also implements a number of parameters that are specific
|
|
to the Andor detectors. The <a href="areaDetectorDoxygenHTML/class_andor_c_c_d.html">
|
|
Andor class documentation</a> describes this class in detail.</p>
|
|
<h2 id="StandardNotes" style="text-align: left">
|
|
Implementation of standard driver parameters</h2>
|
|
<p>
|
|
The following table describes how the Andor driver implements some of the
|
|
standard driver parameters.
|
|
</p>
|
|
<table border="1" cellpadding="2" cellspacing="2" style="text-align: left">
|
|
<tbody>
|
|
<tr>
|
|
<td align="center" colspan="3">
|
|
<b>Implementation of Parameters in asynNDArrayDriver.h and ADDriver.h, and EPICS Record
|
|
Definitions in ADBase.template and NDFile.template</b></td>
|
|
</tr>
|
|
<tr>
|
|
<th>
|
|
Parameter index variable</th>
|
|
<th>
|
|
EPICS record name</th>
|
|
<th>
|
|
Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADTriggerMode</td>
|
|
<td>
|
|
$(P)$(R)TriggerMode<br />
|
|
$(P)$(R)TriggerMode_RBV</td>
|
|
<td>
|
|
Sets the trigger mode for the detector. Options are:
|
|
<ul>
|
|
<li>Internal</li>
|
|
<li>External</li>
|
|
</ul>
|
|
This has not yet been tested.
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADImageMode</td>
|
|
<td>
|
|
$(P)$(R)ImageMode<br />
|
|
$(P)$(R)ImageMode_RBV</td>
|
|
<td>
|
|
Sets the trigger mode for the detector. Options are:
|
|
<ul>
|
|
<li>Single</li>
|
|
<li>Multiple (accumulate)</li>
|
|
<li>Continuous (not supported yet)</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADNumImages</td>
|
|
<td>
|
|
$(P)$(R)NumImages<br />
|
|
$(P)$(R)NumImages_RBV</td>
|
|
<td>
|
|
Set the number of images to take in multiple (accumulate) mode
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADTemperature</td>
|
|
<td>
|
|
$(P)$(R)Temperature<br />
|
|
$(P)$(R)Temperature_RBV</td>
|
|
<td>
|
|
Set and read the operating temperature of the CCD (-120C to 20C)
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<h2 id="Driver_parameters" style="text-align: left">
|
|
Andor specific parameters</h2>
|
|
<p>
|
|
The Andor driver implements the following parameters in addition to those
|
|
in asynNDArrayDriver.h and ADDriver.h.
|
|
</p>
|
|
<table border="1" cellpadding="2" cellspacing="2" style="text-align: left">
|
|
<tbody>
|
|
<tr>
|
|
<td align="center" colspan="7">
|
|
<b>Parameter Definitions in andorCCD.h and EPICS Record Definitions in andorCCD.template</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>
|
|
Parameter index variable</th>
|
|
<th>
|
|
asyn interface</th>
|
|
<th>
|
|
Access</th>
|
|
<th>
|
|
Description</th>
|
|
<th>
|
|
drvInfo string</th>
|
|
<th>
|
|
EPICS record name</th>
|
|
<th>
|
|
EPICS record type</th>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorCoolerParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Turn the CCD cooler on and off</td>
|
|
<td>ANDOR_COOLER</td>
|
|
<td>AndorCooler<br/>
|
|
AndorCooler_RBV</td>
|
|
<td>bo<br/>
|
|
bi</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorShutdownParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Write a 1 to this PV to shutdown the CCD and the driver cleanly. This must be done before rebooting the IOC.</td>
|
|
<td>ANDOR_SHUTDOWN</td>
|
|
<td>AndorShutdown</td>
|
|
<td>bo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorStartupParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Write a 1 to this PV to reinitialize the Andor software.</td>
|
|
<td>ANDOR_STARTUP</td>
|
|
<td>AndorStartup</td>
|
|
<td>bo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorImageModeAMultiParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Selects the Andor imaging mode. Choices are:
|
|
<ul>
|
|
<li>Accumulate</li>
|
|
<li>Kinetics</li>
|
|
<li>Fast Kintetics</li>
|
|
</ul></td>
|
|
<td>ANDOR_IMAGE_MODE_AM</td>
|
|
<td>AndorImageMode</td>
|
|
<td>mbbo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorACTInKineticsParam</td>
|
|
<td>asynFloat64</td>
|
|
<td>R/W</td>
|
|
<td>Accumulated cycle time in kinetics mode.</td>
|
|
<td>ANDOR_ACT_KINETICS</td>
|
|
<td>AndorACTInKinetics</td>
|
|
<td>ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorANumInKineticsParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Number of accumulations in kinetics mode.</td>
|
|
<td>ANDOR_ANUM_KINETICS</td>
|
|
<td>AndorANumInKinetics</td>
|
|
<td>ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorFKHeightParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Height of the region in Fast Kinetics mode.</td>
|
|
<td>ANDOR_FK_HEIGHT</td>
|
|
<td>AndorFKHeight</td>
|
|
<td>ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorFKHBinningParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Horizontal binning of the region in Fast Kinetics mode.</td>
|
|
<td>ANDOR_FKH_BINNING</td>
|
|
<td>AndorFKHBinning</td>
|
|
<td>ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorFKVBinningParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Vertical binning of the region in Fast Kinetics mode.</td>
|
|
<td>ANDOR_FKV_BINNING</td>
|
|
<td>AndorFKVBinning</td>
|
|
<td>ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorFKOffsetParam</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Offset in Fast Kinetics mode.</td>
|
|
<td>ANDOR_FK_OFFSET</td>
|
|
<td>AndorFKOffset</td>
|
|
<td>ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorTempStatusMessage</td>
|
|
<td>asynOctet</td>
|
|
<td>R/O</td>
|
|
<td>Temperature status message.</td>
|
|
<td>ANDOR_TEMP_STAT</td>
|
|
<td>AndorTempStatus_RBV</td>
|
|
<td>waveform</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorMessage</td>
|
|
<td>asynOctet</td>
|
|
<td>R/O</td>
|
|
<td>Other status message.</td>
|
|
<td>ANDOR_MESSAGE</td>
|
|
<td>AndorMessage_RBV</td>
|
|
<td>waveform</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorShutterMode</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Selects the Andor shutter mode. Choices are:
|
|
<ul>
|
|
<li>Auto</li>
|
|
<li>Open</li>
|
|
</ul></td>
|
|
<td>ANDOR_SHUTTER_MODE</td>
|
|
<td>AndorShutterMode</td>
|
|
<td>mbbo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorShutterExTTL</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Selects the TTL polarity of an external shutter. Choices are:
|
|
<ul>
|
|
<li>Low To Open</li>
|
|
<li>High To Open</li>
|
|
</ul></td>
|
|
<td>ANDOR_SHUTTER_EXTTL</td>
|
|
<td>AndorShutterExTTL</td>
|
|
<td>bo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorFileFormat</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Selects the file format for save files with the Andor driver. Choices are:
|
|
<ul>
|
|
<li>TIFF</li>
|
|
<li>BMP</li>
|
|
<li>SIF</li>
|
|
<li>EDF</li>
|
|
<li>RAW</li>
|
|
<li>TEXT</li>
|
|
</ul>
|
|
NOTE: Currently only TIFF is supported.</td>
|
|
<td>ANDOR_FILE_FORMAT</td>
|
|
<td>AndorFileFormat</td>
|
|
<td>mbbo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorPALFileName</td>
|
|
<td>asynOctet</td>
|
|
<td>R/W</td>
|
|
<td>Path and Filename of pallette file (used for TIFF file colours) (255 chars max).</td>
|
|
<td>ANDOR_PAL_FILE_PATH</td>
|
|
<td>PALFilePath</td>
|
|
<td>waveform</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AndorAdcSpeed</td>
|
|
<td>asynInt32</td>
|
|
<td>R/W</td>
|
|
<td>Switch between the slow (low noise) ADC and the fast ADC. Choices are:
|
|
<ul>
|
|
<li>0.05 MHz</li>
|
|
<li>2.5 MHz</li>
|
|
</ul> </td>
|
|
<td>ANDOR_ADC_SPEED</td>
|
|
<td>AndorADCSpeed<br/>
|
|
AndorADCSpeed_RBV</td>
|
|
<td>mbbo<br/>
|
|
mbbi</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<h2 id="Usage" style="text-align: left">
|
|
Usage</h2>
|
|
<p>
|
|
Always use channel access put callback when setting parameters.</p>
|
|
<p>
|
|
If any of the parameters set are out of range or fail in some way, then the PV will be put into alarm state.
|
|
This should be checked after every PV set. </p>
|
|
<p>
|
|
An example palette file for a TIFF file is GREY.PAL in the iocAndor directory.</p>
|
|
|
|
<h2 id="Andor_docs" style="text-align: left">
|
|
Andor CCD information and user manual</h2>
|
|
<p>
|
|
file:///dls_sw/work/R3.14.8.2/support/andorCCD/etc/private/iKon-M_Manual.pdf</p>
|
|
<p>
|
|
file:///dls_sw/work/R3.14.8.2/support/andorCCD/etc/private/Software_Development_Kit_V2.81.pdf (for developers only)</p>
|
|
|
|
<h2 id="Future_plans" style="text-align: left">
|
|
Future plans</h2>
|
|
<ul>
|
|
<li>Support for more data acquisiton modes (kinetic and fast kinetics)</li>
|
|
<li>Automatic filename handling</li>
|
|
<li>Support for more file types (EDF)</li>
|
|
<li>Support for array callbacks to support plugins.</li>
|
|
<li>Support for setting more iKon detector parameters</li>
|
|
<li>Support for detector output signals (trigger and gate)</li>
|
|
<li>Set up autosave restore of settings, and archiving of parameters.</li>
|
|
<li>Remove AndorShutdown, use an EPICS exit handler instead.</li>
|
|
<li>Remove AndorFileFormat, just use normal NDFileFormat.</li>
|
|
</ul>
|
|
</body>
|
|
</html>
|