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.

  1. Multi-Quadrant/Multi-Chip Readout

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.