HAWAII SAM MICROCODE
Version haw428/9/30.asm
Operation Notes, Version 4, 22 December 1997.
Craig D Mackay.
Changes in Version 4: The operation of the CIRSI SAM is
described in terms of chip/quadrant selection (section 5), and
the use of the SAM internal delay within a sequence loop. In
section 6, various data taking strategies are described briefly.
Changes in version 3: The initialisation is now handled
without direct reference to the HAWAII devices instead it is done
against the reference output. The code has an additional delay
built into each frame loop to ensure that the system can run at
full speed without producing DMA time-outs. There are now three
versions with different ranges of read-out speeds. They are:
haw428.asm 119 to 1090 kHz pixel rate (5 cycles)
haw429.asm 273 to 1500 kHz pixel rate (2 cycles)
haw430.asm 480 to 1714 kHz pixel rate (1 cycle)
This note is a simple users guide to the SAM microcode installed
in the 4100 Capella controller and used to drive the Rockwell
MCT IR arrays.
1. Extra Pixels from SAM code.
This version allows HAWAII or PICNIC arrays to be read out in
a variety of modes. It contains no VFG type clock pulses so
the section of pixcel.ini should look like:
[PDCI]
FrameExtraPixels=0
LineExtraPixels=0
2. Shutter Operation.
The system is designed for use with no shutter. For proper
use the shutter time should be left set to 10 milliseconds.
The shutter enable tickbox use is described below.
3. Reset (Flush) Operation
At the beginning of every FOCUS or SEQUENCE operation the entire
device is reset. In addition any pre-flushes marked in the Sequence
Tab box are done at the start of each loop run in Sequence Grab
Mode.
4. Pixel Read Rates and Gain Factors
The pixel rates are different from those shown in the PixCel dialogue
box. This allows the system to cover the optimum read-out rates
for the Rockwell devices. The translation to different rates
also means that the conversion from data numbers to electrons
is also wrong. In order to understand these rates and gain factors
the following table should be used for each of the three SAMs
with haw425/426/427 (cycles=5/2/10. This table also includes
the correct microvolts/electron number for the actual arrays used
(rather than the Kodak CCDs that they are intended to refer to.
They also refer to the devices run at VD of 1.00 volts rather
than 0.50 volts that reduces the gain to 0.54 of the values shown
(so increasing the electrons/DN by a factor of 1.84 above the
values shown). The Device is then assumed to operate at 6.25
microvolts/electrons.
Haw428.asm (5 cycles per integration period)
Displayed rate Actual rate electrons/DN
kHz kHz multiply by:
500 118 0.34
600 148 0.35
750 197 0.36
1000 292 0.37
1200 387 0.39
1333 463 0.40
1500 571 0.41
1714 755 0.44
2000 and above 1090 0.47
(note intermediate rates all work. Speeds and gain factors may
be interpolated)
Haw429.asm (2 cycles per integration period)
Displayed rate Actual rate electrons/DN
kHz kHz multiply by:
500 273 0.85
600 335 0.88
750 428 0.90
1000 600 0.95
1200 752 0.98
1333 862 1.00
1500 1000 1.03
1714 1190 1.10
2000 and above 1500 1.18
(note intermediate rates all work. Speeds and gain factors may
be interpolated. There are additional gain reductions as read
speed is increased, depending on the bandwidth of the on-chip
amplifier)
Haw430.asm (1 cycles per integration period)
Displayed rate Actual rate electrons/DN
kHz kHz multiply by:
500 500 1.70
600 600 1.75
750 750 1.80
1000 923 1.85
1200 1090 1.95
1333 1200 2.00
1500 1333 2.05
1714 1500 2.20
2000 and above 1714 2.35
(note intermediate rates all work. Speeds and gain factors may
be interpolated. There are additional gain reductions as read
speed is increased, depending on the bandwidth of the on-chip
amplifier)
In all modes, sub-array read-out is enabled. Use standard PixCel
methods to set a region of interest. Read-out then occurs with
that ROI, remembering that the starting X and Y positions and
the width and height is accurate modulo 8 only.
The initialisation file pixcel.ini is loaded into PixCel when
it is first run, so if changes are made to the initialisation
parameters, the PixCel program must be updated by loading in a
new *.ini file. Also that PixCel marks pixcel.ini as "in
use" so although your editor might let you think you have
just edited it, it may not actually be updated on disk. This
can be checked by looking at the USER screen under PixCel to ensure
that the parameters have in fact been updated. Pixcel.ini contains
a section as follows:
[HEAD_CONTROL]
SHUTTER_PULSES=0,0
GROUNDING=FALSE
SHUTTER_TYPE=4
Different values of SHUTTER_TYPE allow different read-out modes
to be enabled as follows:
Type 2 The first line of the ROI is read out as you would expect from the
correct row, but subsequent data lines are read out from the same set of
pixels on the device. This is done by omitting the pulse that increments
the row count. Lines are read out until the ROI data set is complete.
One reset is done before the first line is read out but otherwise
none are done during this operation.
Type 4 Normal. The entire device or the selected ROI is read out without any
resets.
Type 8 Read-Reset-Read. The selected ROI or the full device is read out as
follows: The start (X,Y) is reached as normal, but only half the
requested pixels are read out in the row. Then that row is reset and the
same pixels are read again. The image recorded is the left hand half of
the selected ROI twice, with the left half of the image before reset, and
the right half after the reset. In order to read out the whole device in
this mode, pixcel.ini needs to be edited as follows:
[CCD_PROPERTIES]
VSPARE_B=128
VSPARE_A=128
CCD_TYPE=HAWAII
VABD=64
VABG=64
VOG=89
VRD=71
VOD=163
NO_OF_SEGMENTS=1
CCD_GAIN=1.000
PARALLEL_TIMING=15,0
ACTIVE_AREA=0,0,512,512
CCD_HEIGHT=512
CCD_WIDTH=512
[CCD_READOUT]
BINNING_ENABLE=FALSE
FULL_PARALLEL_BIN=FALSE
FULL_SERIAL_BIN=FALSE
SENSITIVITY=0
PIXEL_RATE=9
REGIONS=0,0,0,512,512
Y_BIN=1
X_BIN=1
The values marked above in BOLD need to be changed to 1024
to allow this mode to function..
Shutter disabled flag This then defaults to Type 4 operation with a reset after each
line is read out. Note that the shutter enable flag is only picked up
with a stop/start operation, and cannot be picked up on the fly in the
version of PixCel used for these tests.
Different initialisation files. There are a number of initialisation
files (*.ini) files available. The names tell all about their
contents. All are made up of:
hawxcyqzm.ini where:
haw (HAWAII CHIP) xc (x=1-4 HAWAII detectors or chips) yq (y=1-4
quadrants) zm (z-2,4 or 8 mode). If the chip selected under
"1c" is not chip 1, then 1c(x) is the format.
The SAM among code has been written for the CIRSI camera has a
capability within it of reading out any number of chips and any
number of quadrants depending on settings in the configuration
file.
Within every configuration file there is a section called [CCD_PROPERTIES]
and there is a parameter in image that section with the name of
PARALLEL_TIMING. This sets two 8-bit bytes which are transferred
to the SAM microcode. Each of each of the bits in each of those
bytes represents one of the quadrants out of the 16 that the multiplexer
can address. If a bit is enabled them the corresponding quadrant
will be read-out in turn. The first eight bit word enables the
quadrants on chips 1 and 2, and a second eight bit word enables
the quadrants on chips 3 and 4. In the first word the least significant
bit corresponds to quadrant 1 of chip 1 and the most significant
bit corresponds to quadrant 4 of the second chip. In the same
way the second eight bit word codes for the quadrants in chips
3 and 4, with the least significant bit corresponding to quadrant
1 of chip 3 and the most significant bit to quadrant 4 of chip
4.
Any combination of chips and quadrants is permitted. When the
readout micro-code is operated to produce a sequence of images,
consecutive images are taken from each of the enabled quadrants.
The images are all generated in ascending order starting with
quadrant 1, chip 1 and finishing with quadrant 4, chip 4. In
the listing above, PARALLEL_TIMING=15,0 enables all four quadrants
of chip 1.
If it is wished to change the quadrant that is being read-out
(and this can be useful for example during focus and set-up where
it is possible to enable any single quadrant somewhere within
the 16 of the array, to allow it to be used for focusing and alignment)
when using Pixcel these alternative quadrant set-ups may be brought
in by creating a set of initialisation files in the "params"
directory so that the user may bring in whichever set-up is required
to enable that specific quadrant. If one is using the 41UI user
interface then this can be managed in whatever way the programmer
chooses.
6. Read-Out Strategies at the Telescope.
The current hardware does not allow each quadrant to be reset
individually. This means it is very difficult to run with read-reset-read
(a.k.a. mode eight) readout patterns. It is possible to read
out the quadrants with normal destructive read procedure that
gives most of the properties of the read-reset-read procedure
as follows.
In the Sequence Tab (of Pixcel) one first selects the number of
pre-flushes that are required. Experience shows that more pre-flushes
help and therefore something in the region of 16 pre-flushes is
probably a good starting point. The user then sets and number
of frames which are to be read-out before the next reset. If
the user wants to have one or more reads of all the enabled quadrants
separated by a time interval between each group of reads then
the number of frames requested in the sequence should be set to
be equal to the total number of frames needed before the pre-flashing
is repeated. Once that number frames is read-out they may be
saved if the "Save Enable" button is ticked and then
provided the loop button is ticked and a number of loops requested
the program will go around the same sequence of operations again.
Within the loop it may be desired to add a fixed time delay
which is effectively acting as an integration time. This must
not be done by changing the shutter setting from the normal 10
msec setting that there is in the normal "Camera" Tab.
If the shutter is set for example to greater than 1 second or
less than 2 msec then the system takes control and restarts the
SAM for every frame to be read-out.
The SAM code has been modified to allow delay parameters to be
passed to it so that a delay may be requested that does not interrupt
the operation of the SAM sequence. These are passed to the SAM
using the parameters which are available in the initialisation
file which code shutter timing. These parameters were intended
to allow for a delay time to let the shutter open and close.
These parameters have been reused in the following way. The shutter
timing consists of two 8-bit bytes separated by a comma. The
second one gives the number of delay periods in multiples of 40
milliseconds that are wanted and the left-hand one gives the same
delay but in units of ten seconds. Each light may take the value
of 0-255. The right hand bytes therefore allows periods from
40 milliseconds up to 10 seconds to be selected while the left
one allows periods from 10 seconds up to about 45 minutes to be
requested.
It is not possible to change these parameters from within the
Pixcel program. What has to happen is that the configuration
file being used has to be edited and then re-loaded into Pixcel
with the new parameters in it. It is hope to that this can be
updated in the future to be accessible from within the modified
Pixcel program.
The total number of full quadrants that may be read-out with the
computer that has 256 MB of memory, such as the one used with
the camera at telescope, is capable of storing about 352 images
within computer memory itself (with virtual memory turned off
as is recommended for running the camera to avoid any problems
with swapping latencies). The sort of strategy that may be considered
is having a single loop that allows a read at the beginning, immediately
after the pre-flushing, followed by a delay followed by another
read followed by a further delay followed by another read, saving
the data as required, and then going around that loop again. This
allows measurements to be made while the signal level on the detectors
are ramping up because of sky and/or dark current buildup. At
the end of that group of 3 read-outs the data may be saved as
required, usually in FITS format, and the loop may be repeated
as many times as might fit into the total available memory. With
the figures given this would correspond to about seven of these
loops.
Another way that is often useful is to use no delay whatever so
that be chips are read as quickly as is possible and has many
times possible. This allows the system to be used to measure
dark current or sky current levels and also together data for
linearity checks.
CDM.