[PREVIOUS] [NEXT] [CONTENTS] ACIS Users Guide, Rev. A [AXAF]

5.4 Timed Exposure Science Run with Imaging CCDs

This section provides an example Timed Exposure Science Run.

5.4.1 Parameter Block Setup

This section describes the example set of parameters and reasons why the parameters were chosen. This section follows the field descriptions provided in Section 4.1.4.1.

5.4.1.1 Parameter Block Id

For the purposes of this example, assume that the user assigns a unique parameter block id of 0x635231a2 to the paramter block.

5.4.1.2 CCD Selection

This example uses all 4 Imaging CCDs and the two center spectrosocpy CCDs, of which CCD_S3 is a back-side CCD. According to the CCD-lab, the backside CCDs have marginally better performance if their images are held in the CCD framestore for longer periods of time. In order to take advantage of this, CCD_S3 is configured for the first FEP (see Section 4.1.1.2).

The FEP selection array is configured as:

fepCcdSelect[FEP_0] := CCD_S3
fepCcdSelect[FEP_1] := CCD_I0
fepCcdSelect[FEP_2] := CCD_I1
fepCcdSelect[FEP_3] := CCD_I2
fepCcdSelect[FEP_4] := CCD_I3
fepCcdSelect[FEP_5] := CCD_S2
5.4.1.3 Mode Selection

For this example, assume that the source is expected to produce no more than about 80 events per second (including background events which "sneak" through the filters) across all CCDs, and that we don't want to spend the time to send the entire bias map. The event rate for this example is low enough to support Timed Exposure Faint with bias mode, so we choose:

fepMode := FEP_TE_MODE_EV3x3
bepMode := BEP_TE_MODE_FAINTBIAS
5.4.1.4 Clocking Parameters

For this example, we're not doing on-chip summing, not using a subarray, using the maximum of 30 overclocks per output node, and using a normal video gain. Assume that all of the video chains are working and will be used. The minimum, normal integration time for 6 CCDs is 3.3 seconds (see Section 4.1.1.2). For this example, assume that the source is diffuse enough and the spacecraft dither rate is fast enough to avoid pileup with the 80 counts/second, given a 3.3 second static integration time. This leads to the following:

primaryExposure         := 33
secondaryExposure       := 0
dutyCycle               := 0
onChip2x2Summing        := 0
subarrayStartRow        := 0
subarrayRowCount        := 1023
overclockPairsPerNode   := 15
outputRegisterMode      := QUAD_FULL
ccdVideoResponse[FEP_0] := 0
ccdVideoResponse[FEP_1] := 0
ccdVideoResponse[FEP_2] := 0
ccdVideoResponse[FEP_3] := 0
ccdVideoResponse[FEP_4] := 0
ccdVideoResponse[FEP_5] := 0
5.4.1.5 Video ADC Offsets

Each video board channel has a characteristic video offset value. The offset value is tuned to provide a decent dynamic range, while avoiding clipping the measurment below zero or above 4095. These offsets may be adjusted by the maintainers over the life of the mission. The video offsets provided in the parameter blocks in ROM, and used during calibration are provided in TBD. The offset parameters are indexed by the FEP using the particular CCD, so the mapped parameters are as follows:

CCD_S3
fep0VideoOffset[ONODE_A] := 79
fep0VideoOffset[ONODE_B] := 79
fep0VideoOffset[ONODE_C] := 79
fep0VideoOffset[ONODE_D] := 77
CCD_I0
fep1VideoOffset[ONODE_A] := 87
fep1VideoOffset[ONODE_B] := 86
fep1VideoOffset[ONODE_C] := 76
fep1VideoOffset[ONODE_D] := 89
CCD_I1
fep2VideoOffset[ONODE_A] := 83
fep2VideoOffset[ONODE_B] := 69
fep2VideoOffset[ONODE_C] := 79
fep2VideoOffset[ONODE_D] := 83
CCD_I2
fep3VideoOffset[ONODE_A] := 86
fep3VideoOffset[ONODE_B] := 65
fep3VideoOffset[ONODE_C] := 82
fep3VideoOffset[ONODE_D] := 89
CCD_I3
fep4VideoOffset[ONODE_A] := 76
fep4VideoOffset[ONODE_B] := 68
fep4VideoOffset[ONODE_C] := 79
fep4VideoOffset[ONODE_D] := 80
CCD_S2
fep5VideoOffset[ONODE_A] := 90
fep5VideoOffset[ONODE_B] := 86
fep5VideoOffset[ONODE_C] := 79
fep5VideoOffset[ONODE_D] := 94
5.4.1.6 Bias Parameters

For this example, the observation is going to re-compute the bias, but not send it. The algorithm will use "Whole-Frame" mode, with 5 conditioning exposures followed by 11 approximation-to-mean exposures. The low-pixel elimination feature will not be used. The event rejection threshold for the backside CCD, CCD_S3, will be 26 ADU above the the approximated bias level, and will be 50 ADU for all of the front-side CCDs. The pixel rejection threshold for the approximation-to-mean stage will be maintained at 20 ADU above the current bias approximation for all of the CCDs. In order to allow the video board temperatures to settle, and to effectively flush the charge from the CCDs, the system will ignore the first 30 exposures prior to starting the bias computation. The current bad pixel and Timed Exposure column lists will be applied to the bias maps once the maps have been computed. This leads to the following parameters:

ignoreBadPixelMap               := 0
ignoreBadColumnMap              := 0
recomputeBias                   := 1
trickleBias                     := 0
ignoreInitialFrames             := 30
CCD_S3
biasAlgorithmId[FEP_0]          := FEP_BIAS_1
biasArg0[FEP_0]                 := 5
biasArg1[FEP_0]                 := 16
biasArg2[FEP_0]                 := 0
biasArg3[FEP_0]                 := 26
biasArg4[FEP_0]                 := 20
biasCompressionSlotIndex[FEP_0] := 255
CCD_I0
biasAlgorithmId[FEP_1]          := FEP_BIAS_1
biasArg0[FEP_1]                 := 5
biasArg1[FEP_1]                 := 16
biasArg2[FEP_1]                 := 0
biasArg3[FEP_1]                 := 50
biasArg4[FEP_1]                 := 20
biasCompressionSlotIndex[FEP_1] := 255
CCD_I1
biasAlgorithmId[FEP_2]          := FEP_BIAS_1
biasArg0[FEP_2]                 := 5
biasArg1[FEP_2]                 := 16
biasArg2[FEP_2]                 := 0
biasArg3[FEP_2]                 := 50
biasArg4[FEP_2]                 := 20
biasCompressionSlotIndex[FEP_2] := 255
CCD_I2
biasAlgorithmId[FEP_3]          := FEP_BIAS_1
biasArg0[FEP_3]                 := 5
biasArg1[FEP_3]                 := 16
biasArg2[FEP_3]                 := 0
biasArg3[FEP_3]                 := 50
biasArg4[FEP_3]                 := 20
biasCompressionSlotIndex[FEP_3] := 255
CCD_I3
biasAlgorithmId[FEP_4]          := FEP_BIAS_1
biasArg0[FEP_4]                 := 5
biasArg1[FEP_4]                 := 16
biasArg2[FEP_4]                 := 0
biasArg3[FEP_4]                 := 50
biasArg4[FEP_4]                 := 20
biasCompressionSlotIndex[FEP_4] := 255
CCD_S2
biasAlgorithmId[FEP_5]          := FEP_BIAS_1
biasArg0[FEP_5]                 := 5
biasArg1[FEP_5]                 := 16
biasArg2[FEP_5]                 := 0
biasArg3[FEP_5]                 := 50
biasArg4[FEP_5]                 := 20
biasCompressionSlotIndex[FEP_5] := 255
5.4.1.7 Event Selection Parameters

For this example, the Front End Processors will select a candidate event center if the center pixel values are 20 ADU above their bias levels for the back-side CCD (CCD_S3), and 38 ADU for the remaining front-side CCDs. The event's split threshold is 13 ADU above the pixel bias values for all of the CCDs. In this example, the system will only accept events whose grade codes map to ASCA grades 0, 2, 3, 4 and 6 (unsplit, vertical splits, left and right horizontal splits, and L-square corner splits). No window filters or pulse height filters will be applied.

This leads to the following event selection parameters:

lowerEventAmplitude                  := 0
eventAmplitudeRange                  := 65535
gradeSelections[0,2,8,10,11,12,
16,17,18,22,34,48,49,50,54,64,
65,68,69,72,76,80,81,104,108,
130,136,138,140,162,208,209]         := 1
all other gradeSelections[]          := 0
windowSlotIndex                      := 255 (no windows)
CCD_S3
fep0Threshold[ONODE_A..ONODE_D]      := 20
fep0SplitThreshold[ONODE_A..ONODE_D] := 13
CCD_I0
fep1Threshold[ONODE_A..ONODE_D]      := 38
fep1SplitThreshold[ONODE_A..ONODE_D] := 13
CCD_I1
fep2Threshold[ONODE_A..ONODE_D]      := 38
fep2SplitThreshold[ONODE_A..ONODE_D] := 13
CCD_I2
fep3Threshold[ONODE_A..ONODE_D]      := 38
fep3SplitThreshold[ONODE_A..ONODE_D] := 13
CCD_I3
fep4Threshold[ONODE_A..ONODE_D]      := 38
fep4SplitThreshold[ONODE_A..ONODE_D] := 13
CCD_S2
fep5Threshold[ONODE_A..ONODE_D]      := 38
fep5SplitThreshold[ONODE_A..ONODE_D] := 13
5.4.1.8 Parameter Block Summary

The following is the resulting parameter block, where the grade selection bit-map has been expressed as a series of 32-bit words:

loadTeBlock: CMDOP_LOAD_TE
{  teBlockSlotIndex                    := not-yet specified
  checksum                             := 65458
  parameterBlockId                     := 0x635231a2
  fepCcdSelect[FEP_0..FEP_5]           := CCD_S3, CCD_I0, CCD_I1, 
                                          CCD_I2, CCD_I3, CCD_S2
  fepMode                              := FEP_TE_MODE_EV3x3
  bepPackingMode                       := BEP_TE_MODE_FAINTBIAS
  onChip2x2Summing                     := 0
  ignoreBadPixelMap                    := 0
  ignoreBadColumnMap                   := 0
  recomputeBias                        := 1
  trickleBias                          := 0
  subarrayStartRow                     := 0
  subarrayRowcount                     := 1023
  overclockPairsPerNode                := 15
  outputRegisterMode                   := FULL
  ccdVideoResponse[FEP_0..FEP_5]       := 0,0,0,0,0,0
  primaryExposure                      := 33
  secondaryExposure                    := 0
  dutyCycle                            := 0
  fep0EventThreshold[ONODE_A..ONODE_D] := 20,20,20,20
  fep1EventThreshold[ONODE_A..ONODE_D] := 38,38,38,38
  fep2EventThreshold[ONODE_A..ONODE_D] := 38,38,38,38
  fep3EventThreshold[ONODE_A..ONODE_D] := 38,38,38,38
  fep4EventThreshold[ONODE_A..ONODE_D] := 38,38,38,38
  fep5EventThreshold[ONODE_A..ONODE_D] := 38,38,38,38
  fep0SplitThreshold[ONODE_A..ONODE_D] := 13,13,13,13
  fep1SplitThreshold[ONODE_A..ONODE_D] := 13,13,13,13
  fep2SplitThreshold[ONODE_A..ONODE_D] := 13,13,13,13
  fep3SplitThreshold[ONODE_A..ONODE_D] := 13,13,13,13
  fep4SplitThreshold[ONODE_A..ONODE_D] := 13,13,13,13
  fep5SplitThreshold[ONODE_A..ONODE_D] := 13,13,13,13
  lowerEventAmplitude                  := 0
  eventAmplitudeRange                  := 65535
  gradeSelections[0..255]              := 0x00471d05, 0x00470004, 
                                          0x00031133, 0x00001100,
                                          0x00001d04, 0x00000004,
                                          0x00030000, 0x00000000
  windowSlotIndex                      := 255
  histogramCount                       := 0
  biasCompressionSlotIndex[FEP_0..FEP_5] := 255,255,255,255,255,255
  rawCompressionSlotIndex              := 255
  ignoreInitialFrames                  := 30
  biasAlgorithmId[6]                   := FEP_BIAS_1, FEP_BIAS_1, 
                                          FEP_BIAS_1, FEP_BIAS_1,
                                          FEP_BIAS_1, FEP_BIAS_1
  biasArg0[FEP_0..FEP_5]               := 5,5,5,5,5,5
  biasArg1[FEP_0..FEP_5]               := 16,16,16,16,16,16
  biasArg2[FEP_0..FEP_5]               := 0,0,0,0,0,0
  biasArg3[FEP_0..FEP_5]               := 26,50,50,50,50,50
  biasArg4[FEP_0..FEP_5]               := 20,20,20,20,20,20
  fep0VideoOffset[ONODE_A..ONODE_D]    := 79,79,79,77
  fep1VideoOffset[ONODE_A..ONODE_D]    := 87,86,76,89
  fep2VideoOffset[ONODE_A..ONODE_D]    := 83,69,79,83
  fep3VideoOffset[ONODE_A..ONODE_D]    := 86,65,82,89
  fep4VideoOffset[ONODE_A..ONODE_D]    := 76,68,79,80
  fep5VideoOffset[ONODE_A..ONODE_D]    := 90,86,79,94
  deaLoadOverride                      := 0
  fepLoadOverride                      := 0
}

5.4.2 Initial Instrument State

This example assumes that both BEPs are powered, that the Side-A DEA Power supply has power, that all the FEPs have power (and were powered for over 7 minutes), but that the state of the video board power is unknown to the ground scheduling algorithm. This example also assumes that all of the hardware and software is operating properly, that the system configuration parameters (other than the video board power) are in a stable, known state, and that the focal plane temperature is at its normal operating temperature (i.e. about -120oC).

5.4.3 Switch Video Board Power

The user first issues a command which powers off video boards not used for the run, and powers on the boards required for the run. In this example, CCDs I0 - I3 and S2 and S3 are to be used. This leads to the following "Change System Configuration" command (see Section 3.3.3):

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId      =  SYSSET_DEA_POWER
    itemValue   =  0x0cf
  }
}

If all of the board power settings were changed by the command, the command will take about 11 seconds to execute. If all of the boards were already in their desired state, the command will take less than 1 second to execute.

5.4.4 Load Parameter Block

For this example, the parameter block will be loaded into Timed Exposure slot 3, by setting the teBlockSlotIndex in the parameter set shown in Section 5.4.1.8 to a value of 3, and issuing the command. Since no windows are being used, no window parameter block command is needed for the run. Upon receipt of the command, the block will be loaded in under 1 second (see Section 4.1.4.1 ). The instrument is now ready to start a run.

5.4.5 Start Run

The user starts the run using a "Start Science" command, specifying slot 3 (see Section 4.1.5):

startScience: CMDOP_START_TE
{
  blockSlotIndex = 3
}

5.4.6 Setup Time

Given that 6 CCDs are being configured and the PRAM/SRAM load is a standard load, the system will take on the order of 2 minutes to configure the system, acquire and dump the DEA housekeeping information, and start clocking the CCDs:

setup time  := 30 seconds to load video registers +
                1 minute to acquire and dump DEA housekeeping +
               11 seconds to flush CCD charge +
               ~1 second of additional overhead
            ~= 1.7 minutes

Once the system is configured, the FEPs will be commanded to re-compute the bias. Assuming that the whole-frame algorithm keeps up with the incoming images, the bias computation will take about 3 minutes:

bias time := (30 ignored frames + 16 bias frames) *
              3.3 seconds/frame
          := 2.53 minutes

5.4.7 Bias Telemetry

For this example, the bias maps are not telemetered.

5.4.8 Data Processing

After the bias maps have been computed, the instrument will stop the sequencers, prepare the FEPs for data processing, and re-start the CCD sequencers. The FEPs will automatically discard the first two exposures, and then start data processing. The first exposure records will appear about 10 seconds after data processing starts (3.3 seconds/ frame * 2 ignore frames + 1 exposure frame). Every 3.3 seconds, each FEP will produce zero or more Faint-with-Bias data packets followed by 1 Faint-with-Bias exposure record. The data packets and exposure records from the various FEPs are interleaved in time. If the event rate climbs such that one or more of the FEPs gets backlogged, their data packets and exposure records may be sent later than those for FEPs which are not backlogged.

NOTE: If the system's buffers fill, some FEPs may drop exposures, whereas others might not.


    

5.4.9 Stop Run

Once the desired observation time has elapsed, the user stops the run by issuing a "Stop Science" command packet:

stopScience: CMDOP_STOP_SCIENCE
{
  No additional parameters are required
}

After receiving the command, the system will command the FEPs to finish up their current exposures.

5.4.10 Draining Telemetry

Once the FEPs have been instructed to stop, the BEP will poll the FEPs until they've finished their current exposure, and drained their FEP to BEP ring-buffers. In this example, the event rate doesn't exceed the telemetry rate, and therefore, the ring-buffers and telemetry buffers are fairly empty. If the last image had just started arriving at the FEPs when they were instructed to stop, the image transfer time will dominate the time to finish the run. For this example, this is about 3.3 seconds.

5.4.11 Run Complete

Once the run completes, the BEP will produce a "Science Report" telemetry packet. Assume for this example, that the observation was scheduled for about 4 hours, that nothing went wrong, and that telemetry was never saturated (i.e. no frames were dropped). Under these conditions, the "Science Report" might look as follows:

scienceReport: TTAG_SCI_REPORT
{
  runStartTime           = 0x054379a2 (~biasStartTime + 2.5 minutes)
  parameterBLockId       = 0x635231a2
  windowBlockId          = 0xffffffff
  biasStartTime          = 0x045bd8c2
  biasParameterId        = 0x635231a2 (same as parameterBlockId)
  exposuresProduced      = 4364 (largest exposure number @ ~4 
                           hours @ 3.3 seconds/frame)
  exposuresSent          = 26166 (first 2 exposures are never sent, 
                           6 FEPs sending)
  biasErrorCount         = 0
  fepErrorCodes[6]       = FEP_CMD_NOERR, FEP_CMD_NOERR, 
                           FEP_CMD_NOERR, FEP_CMD_NOERR, 
                           FEP_CMD_NOERR, FEP_CMD_NOERR
  ccdErrorFlags[6]       = 0,0,0,0,0,0
  deaInterfaceErrorFlag  = 0
  terminationCode        = SMTERM_STOPCMD
}

[PREVIOUS] [NEXT] [CURRENTS]
James E. Francis
Last modified: Wed Jan 12 10:58:56 EST