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

3.3 Changing the System Configuration

This section describes how to modify the ACIS software system configuration table, including controlling the power to the Front End Processors and the Detector Electronics Assembly Video Boards.

3.3.1 System Configuration Table

The System Configuration Table consists of a table of various settings. These settings are broken into the following components:

The values in the table are modified using a "Change System Configuration" command packet, whose contents identify a set of items and their values to load into the table.

The instrument's System Configuration Task polls this table once per second to see if any thing has changed in the FEP/DEA Power, or DEA Interface Board settings since the last time the table was polled. If anything has changed, the task updates the corresponding power item, or item in the DEA interface board.

The DEA Video board settings, on the other hand, are only used at the start of a Science Run. At that time, they are used to configure the various Digital-to-Analog settings in the video board.

3.3.2 Controlling FEP Power

Description

The Front End Processors (FEPs) are split into two groups, FEPs 0, 1, 2 are pow ered by the Side-A DPA Power Supply, and FEPs 3, 4 and 5 are powered by the Side-B DPA Power Supply (refer to Section 3.1.1 for a description of powering the DPA Power supplies). Prior to enabling the power to a specific FEP, the appropri ate supply must be on. Once the FEPs supply is on, its power must be enabled by the BEP using an entry in the Change System Configuration software command.

The FEP Power entry of the Change System Configuration command consists of a bit-map, where bit 0 (lsb) corresponds to FEP 0, bit 1 corresponds to FEP 1, etc. If the bit in the map is 0, then the corresponding FEP is powered off. If the bit is a 1, then the FEP is powered on.

In order to avoid exceeding possible power limitations (there are currently no such limitations, but things change), the System Configuration task within ACIS always first powers off those FEPs which are to be off, and then powers on the FEPs which should be running. There is a 1 second delay between each power off command. There will never be less than a 1 second delay between each power on. However, it currently takes 7 to 10 seconds to load the current FEP software into each FEP, so it can take up to 1 minute to power on all 6 FEPs. If the FEPs are already in their desired states (i.e. off or on), the System Configuration task takes no action.

The Side-A and Side-B BEPs can both enable and disable power to the FEPs. In order to prevent a failure on one BEP from preventing the other being able to pow er on a FEP, the power enable outputs of the BEPs are logically OR'd. This can lead to confusion when selecting between BEPs. If both BEPs are powered (which they would have to be if you were using all 6 FEPs), and the previously selected BEP has power enabled to some of the FEPs, the currently selected BEP will not be able to power-off those FEPs. To avoid this condition, always issue a command to power off FEPs on the active BEP prior to selecting the other BEP.

An attempt to enable power to a FEP which does not have its corresponding power-supply on will generate a memory bus error exception on the BEP, which is trapped and handled by the BEP ONLY when the FEP is commanded on. In this situation, the System Configuration task will repeat its attempts to power on the FEP once a second. However, if a FEP is already on, and its power-supply is turned off, the next access to the FEP will cause a non-recovered bus error exception, resulting in a Fatal Error telemetry message, and watchdog reset of the BEP. Also note that, even when handled by the BEP, these bus errors will disrupt the transmission of a telemetry packet being sent to the RCTU, causing fill-pattern gaps in middle of the telemetry packets.

An un-handled memory bus exception (and resulting Fatal Error and watchdog re set) will also be caused if a FEP's power is disabled in the middle of a BEP to FEP memory access. In order to avoid this, disable FEP power only when there are no science runs active, and no commanded FEP memory loads or dumps in progress.

Figure 2. FEP Power Supplies and Enables

Commands

Change System Configuration

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId      =  SYSSET_FEP_POWER
    itemValue   =  FEP power bit-map, where bits 0 - 5 correspond to
                   FEPs 0 - 5, respectively, and bits 7 - 15 are unused.
  }
}

For example, to power-on all 6 FEPs:

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId      =  SYSSET_FEP_POWER
    itemValue   =  0x3f
  }
}

To power on FEP 0 only (and power off FEPs 1 .. 5, if they were on):

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId      =  SYSSET_FEP_POWER
    itemValue   =  0x1
  }
}

Engineering Telemetry

The only engineering telemetry items which indicate whether or not FEPs are up and running are the electric current channels. These can give an indication as to how many FEPs are on and in what state they are in, but do not give very specific information beyond that. Refer to Appendix A for a table of power levels under dif ferent instrument configurations.

Science Telemetry

Command Echo

commandEcho: TTAG_CMD_ECHO
{
  arrival         = time command arrived (BEP 10Hz Ticks)
  result          = CMDRESULT_OK (other values indicate an error)

  changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
  {
    entries[] =
    {
      itemId    =  SYSSET_FEP_POWER
      itemValue =  FEP power bit-map
    }
  }
}

Software Housekeeping Statistics (may be spread across two consecutive reports)

swHousekeeping: TTAG_SW_HOUSE
{
  startingBepTickCounter = varying
  endingBepTickCounter   = startingBepTickCounter + 640
  statistics[] =
  {
    swStatisticId        = SWSTAT_VERSION
    count                = 1
    value                = 11 (if not, System Patched, SEU or hardware)
  }
  {
    swStatisticId        = SWSTAT_TIMERCB_INVOKE
    count                = 1
    value               ~= 640 (~10 timer ticks/second)
  }
  {
    swStatisticId        =  SWSTAT_FEP_EXECMEM
    count                =  count of FEPs being powered on
    value                =  FEP Id of last FEP powered on
  }
  {
    swStatisticId        =  SWSTAT_FEP_WRITEMEM
    count                =  count of FEPs being powered on
    value                =  FEP Id of last FEP powered on
  }
  {
    swStatisticId        =  SWSTAT_FEPMAN_POWERON
    count                =  count of FEPs being powered on
    value                =  FEP Id of last FEP powered on
  }
  {
    swStatisticId        =  SWSTAT_FEPMAN_POWEROFF
    count                =  count of FEPs being powered off
    value                =  FEP Id of last FEP powered off
  }
  {
    swStatisticId        =  SWSTAT_FEPMAN_STARTLOAD
    count                =  count of FEPs being powered on
    value                =  FEP Id of last FEP powered on
  }
  {
    swStatisticId        =  SWSTAT_FEPMAN_ENDLOAD
    count                =  count of FEPs being powered on
    value                =  FEP Id of last FEP powered on
  }
}

If there were errors during the execution of the command, or an activity was using one of the FEPs which was being powered off, the Software Housekeeping statis tics may also include entries:

SWSTAT_FEPLOCK_TIMEOUT   -  FEP Wait: Wait for lock timed out
SWSTAT_FEPLOCK_POWEROFF  -  FEP Wait: FEP has no power
SWSTAT_FEPLOCK_RESET     -  FEP Wait: FEP is reset
SWSTAT_FEPLOCK_NOIO      -  FEP Wait: FEP has no mailbox/ringbuffer

SWSTAT_FEPREPLY_TIMEOUT  -  FEP Reply: FEP timed out
SWSTAT_FEPREPLY_POWEROFF -  FEP Reply: FEP has no power
SWSTAT_FEPREPLY_RESET    -  FEP Reply: FEP is reset
SWSTAT_FEPREPLY_NOIO     -  FEP Reply: FEP has no mailbox/ringbuffer

SWSTAT_FEPCMD_MBOXSTATE  -  FEP Mailbox not empty (protocol error)

If an attempt is made to enable FEP power, but its corresponding power supply is off, the following Software Housekeeping entry will be reported:

SWSTAT_INTR_FEPBUS        - FEP access causes bus error exception on BEP

If power is removed while the FEP is being used during a run or memory load, a Fatal Error and Watchdog Reset may result:

Fatal Error

fatalMessage: TTAG_FATAL
{
  bepTickCounter   =  BEP 10Hz Tick at time of report
  fatalCode        =  FATAL_INTR_FEP_BUS_ERROR
  fatalValue       =  Contents of R3000 Bad Virtual Address Register
}

Warnings

  1. Power Levels

    Each FEP draws a certain amount of current. The current draw is different when the FEP is held in a reset state, versus when it is fully up and running. Refer to Appendix A for a table of power levels, given certain configurations.

  2. Fatal Errors

    If a FEP is powered off while its memory is being accessed, it will generate an un-han dled BEP memory bus exception, resulting in a Fatal Error message and BEP Watch dog reset.

  3. Power-Retries/Telemetry Disruption

    If a FEP's power-supply is off when a command is issued to enable the FEP's power, the hardware will generate BEP memory bus exceptions, which will interfere with telemetry packet transmission (fill-bytes, 0xb7, in the middle of telemetry packets). The System Configuration task will retry the power enable once per second, which may continue to interfere with telemetry.

  4. FEP Timestamp after Power-On

    The FEP science 100KHz timestamp counters are synchronized to the BEPs 100KHz timestamp counter. They are reset to 0 whenever the BEPs counter's least significant 25 bits are 0. This occurs about once every 7 minutes. After a FEP is powered on, its counter is initially out-of-synch with the BEPs counter, and sometime within 7 minutes of being powered on, the FEP's counter will be set to 0. From then on, the reset of the FEP counter is synchronous with its rolling-over. This can lead to confusing initial FEP timestamps if a science run starts taking data within 7 minutes of a FEP being powered on.

3.3.3 Controlling the DEA Interface and Video Power

Description

The Detector Electronics Assembly (DEA) consists of two interface boards, and 10 video boards, one for each CCD. Each interface board is powered separately, one from the DEA Side-A Power Supply, and the other from the DEA Side-B Pow er Supply. Only one interface board may be powered at a time. The video boards are powered in pairs via a set of latching relays on the primary interface board, and enabled via the active interface board. These relays operate from the current active power supply, and, whenever the supplies are switched, must be commanded to switch to the active supply.

Like the DPA Power Supplies, the DEA Power Supplies are commanded using hardware pulse commands, consisting of enable, on, off and disable. The video board relays and power enables, however, are set using the BEP's System Config uration Table, which is modified with a "Change System Configuration" command packet.

The following table indicates the relationships between the CCDs, relays and video boards:

Table 9. CCD, Video Board and Power Relay Relationships
CCD CcdId Value Video Board Relay Set
I0 CCD_I0 = 0 1 0
I1 CCD_I1 = 1 3 1
I2 CCD_I2 = 2 5 2
I3 CCD_I3 = 3 7 3
S0 CCD_S0 = 4 2 0
S1 CCD_S1 = 5 4 1
S2 CCD_S2 = 6 8 3
S3 CCD_S3 = 7 6 2
S4 CCD_S4 = 8 9 4
S5 CCD_S5 = 9 10 4

Because the ACIS software internally translates references to CCDs into DEA vid eo board ids, all command and telemetry references identify video boards using the corresponding CCD identifier. The DEA Video Power entry of the Change System Configuration command consists of a bit-map, where bit 0 (lsb) corresponds to CCD I0, bit 1 corresponds to CCD I1, etc. If the bit in the map is 0, then the corre sponding video board is powered off. If the bit is a 1, then the video board is pow ered on. Once the table entry is modified, the System Configuration Task first powers off all of the video boards which were indicated to be off, and then powers on the boards which were requested to be powered on. To avoid stressing the pow er supply, the System Configuration Task ensures at least a 1 second delay between each power command. Assuming that the power settings to all 10 boards are being modified, the entire power switch should take between 10 and 20 seconds.

The relays are set to point to the current power supply using the "Relay Set" entries of the Change System Configuration command. If an entry is set to a non-zero val ue, a command is issued to the DEA interface board to switch the corresponding relay, and the associated pair of video boards, to the currently active power supply. If an entry is set to 0, no action is taken. Since the relays are latching, they remain switched across power-cycles. The only way to "unswitch" a relay is to switch from one DEA Power Supply to the other.

Commands

To power on Side-A DEA Power Supply (and the primary DEA interface board) (NOTE: The Side-B DEA Power Supply must be off prior to issuing these com mands):

1DEPSAEN - High-level Pulse - Enable DEA Side-A Power Supply
1DEPSAON - High-level Pulse - Power On DEA Side-A Power Supply

To power off the Side-A DEA Power Supply:

1DEPSAOF - High-level Pulse - Power Off DEA Side-A Power Supply
1DEPSADS - High-level Pulse - Disable DEA Side-A Power Supply

To power on the Side-B DEA Power Supply (and the redundant DEA interface board) (NOTE: The Side-A DEA Power Supply must be off prior to issuing these commands):

1DEPSBEN - High-level Pulse - Enable DEA Side-B Power Supply
1DEPSBON - High-level Pulse - Power On DEA Side-B Power Supply

To power off the Side-B DEA Power Supply:

1DEPSBOF - High-level Pulse - Power Off DEA Side-A Power Supply
1DEPSBDS - High-level Pulse - Disable DEA Side-A Power Supply

To switch all of the video relays to the currently active interface board:

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId     =  SYSSET_CNTL_RELAY_SET_0   -  CCD I0/S0
    itemValue  =  1                         -  Issue switch command
  }
  {
    itemId     =  SYSSET_CNTL_RELAY_SET_1   -  CCD I1/S1
    itemValue  =  1                         -  Issue switch command
  }
  {
    itemId     =  SYSSET_CNTL_RELAY_SET_2   -  CCD I2/S3
    itemValue  =  1                         -  Issue switch command
  }
  {
    itemId     =  SYSSET_CNTL_RELAY_SET_3   -  CCD I3/S2
    itemValue  =  1                         -  Issue switch command
  }
  {
    itemId     =  SYSSET_CNTL_RELAY_SET_4   -  CCD S4/S5
    itemValue  =  1                         -  Issue switch command
  }
}

Note that if "itemValue" is 0, then the entry has no effect on the relay setting.

To power on and off the DEA Video Boards ( NOTE: Either A or B side DEA Power must be on, but not both, and the relay corresponding to the desired CCDs must be switched to the active supply):

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId      =  SYSSET_DEA_POWER
    itemValue   =  DEA power bit-map, where bits 0 - 9 correspond to
                   CCDs I0 - S5, respectively, and bits 10 - 15 are
                   unused. See Table 9.
  }
}

Engineering Telemetry

DEA Power Supply Verifiers

1DEPSAEN  Verifies DEA Power Supply Side-A enabled state
            0 - disabled
            1 - enabled
1DEPSAON  Verifies DEA Power Supply Side-A powered state
            0 - not powered
            1 - powered
1DEPSBEN  Verifies DEA Power Supply Side-B enabled state
            0 - disabled
            1 - enabled
1DEPSBON  Verifies DEA Power Supply Side-B powered state
            0 - disabled
            1 - enabled

The only engineering telemetry items which indicates whether or not DEA Video boards (and by induction, their relay states) are up and running are the electric current channels. These can give an indication as to how many video boards are on and in what state they are in, but do not give very specific information beyond that. Refer to Appendix A for a table of power levels under different instrument configurations.

Science Telemetry

Command Echo from Relay Command

commandEcho: TTAG_CMD_ECHO
{
  arrival       = time command arrived (BEP 10Hz Ticks)
  result        = CMDRESULT_OK (other values indicate an error)

  changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
  {
    entries[] =
    {
      itemId    =  SYSSET_CNTL_RELAY_SET_0  -  CCD I0/S0
      itemValue =  1                        -  Issue switch command
    }
    {
      itemId    =  SYSSET_CNTL_RELAY_SET_1  -  CCD I1/S1
      itemValue =  1                        -  Issue switch command
    }
    {
      itemId    =  SYSSET_CNTL_RELAY_SET_2  -  CCD I2/S3
      itemValue =  1                        -  Issue switch command
    }
    {
      itemId    =  SYSSET_CNTL_RELAY_SET_3  -  CCD I3/S2
      itemValue =  1                        -  Issue switch command
    }
    {
      itemId    =  SYSSET_CNTL_RELAY_SET_4  -  CCD S4/S5
      itemValue =  1                        -  Issue switch command
    }
  }
}

Command Echo from DEA Video Board Power Enable

commandEcho: TTAG_CMD_ECHO
{
  arrival       = time command arrived (BEP 10Hz Ticks)
  result        = CMDRESULT_OK (other values indicate an error)

  changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
  {
    entries[] =
    {
      itemId    =  SYSSET_DEA_POWER
      itemValue =  DEA Video Board power bit-map
    }
  }
}

Software Housekeeping Statistics

swHousekeeping: TTAG_SW_HOUSE
{
  startingBepTickCounter = varying
  endingBepTickCounter   = startingBepTickCounter + 640
  statistics[] =
  {
    swStatisticId        = SWSTAT_VERSION
    count                = 1
    value                = 11 (if not, System Patched, SEU or hardware)
  }
  {
    swStatisticId        = SWSTAT_TIMERCB_INVOKE
    count                = 1
    value               ~= 640 (~10 timer ticks/second)
  }
  {
    swStatisticId        =  SWSTAT_DEACCD_POWEROFF
    count                =  count of Video boards being powered off
    value                =  CCD Id associated with last Video turned off
  }
  {
    swStatisticId        =  SWSTAT_DEACCD_POWERON
    count                =  count of Video boards being powered on
    value                =  CCD Id associated with last Video turned on
  }
}

If an error is encountered while commanding the DEA, either to switch the relays, or control power to the video boards, the following housekeeping entry will be supplied:

SWSTAT_DEABOARD_ERROR  - Error issuing command to DEA interface

where the 16 least significant bits of reported "value" field contain an internal software error code, and the most significant 16 bits of the "value" field contain the video board slot index (as opposed to the CCD Id), or "11" if the command was directed to the interface board.

If DEA Housekeeping is running (see Section 3.4.6) and is querying the state of the relays, it will be indicated as follows:

deaHousekeepingData: TTAG_DEA_HOUSE
{
  deaBlockId      = Id of parameter block used for the DEA Run
  commandId       = Id of the command which started the DEA Run
  bepTickCounter  = BEP Interrupt Count (10Hz tick) at start of DEA 
                    housekeeping acquisition
  entries[] =
  {
    query =
    {
      ccdId       = CCD_DESELECT (selects the interface board)
      queryId     = DEAHOUSE_CNTL_RELAY (reads state of relays)
    }
    value         = state of relays (where bit 0 corresponds to relay
                    set 0, bit 1 to relay set 1, etc. If a bit is 0,
                    the relay set is not switched to the active supply.
                    If a bit is 1, then the relay set is switched, and
                    the corresponding video boards can be powered).
  }
}

While the video boards are not powered (or if errors occur), any active DEA Housekeeping queries to the video boards will result in a "value" field of 0xffff.

If errors occur in queries to the interface board, the "value" field will contain 0xffff (for example, if there's no DEA power supply turned on).

Warnings

    Don't turn on both DEA Power Supplies

    Although there are protections against damage to the system, the DEA is not designed to operate with both DEA Power Supplies powered.

  1. The relays "remember"

    The DEA video relays stay switched to the most recent side across power-cycles. For example, if one powers DEA Side-B, switches the relays over, and then powers off the system, if one later powers DEA Side-A, all of the relays will remain switched to Side- B until a set of Change System Configuration entry commands are issued to switch them to the now active Side-A.

  2. Video Board Power cycles may have to be routine

    The Analog-to-Digital converters on the DEA video boards may be subject to radiation-induced latch-up. The current limiter circuits on the video boards protect the boards from any damage, but the ADCs will not recover without intervention. To recover from a latch-up, the user must issue a Change System Configuration command to power off the video boards, wait, and then issue another to re-power the video boards (NOTE: Alternatively, a warm-boot of the BEP could be used). Currently, it is not expected to be a problem. If latch-ups become a problem in-flight, the ground may want to include power-cycles of the video boards as part of the science run start-up and shutdown procedure.

3.3.4 Controlling the DEA Video Board Settings

Description

The DEA Video boards contain a set of option settings and Digital-to-Analog Converter (DAC) voltage settings, for use when clocking the CCDs. All of these settings, with the exception of four Analog-to-Digital Converter (ADC) video offset values, are maintained using the System Configuration table, and are modified using "Change System Configuration" command packets. Since the values used for the video offsets may have to be varied to accommodate changes in Science Run parameters, the four ADC video offset parameters for each configured video board are supplied with the parameter blocks for a given science run (see Section 4.1). The setting values are loaded into their respective video boards during the setup stage of a science run (i.e. after a "Start Science" command is received). Refer to the MIT 36-02205 DPA/DEA Interface Control Document for detailed descriptions of the DEA register options and conversion formulae.

Each item has a limit value (see Table 10). If an entry within a "Change System Configuration" command attempts to set a value beyond its limit, the command echo will report the condition and the offending item will be set to its maximum allowed value. The limits values are listed in Section 3.3.5 and can only be changed via Write Memory or Patch commands.

NOTE: There is currently a reasonable set of defaults for all values, which was used during the High-Resolution Mirror X-ray Calibration and Flat-Field X-ray Calibration activities at Marshall Space Flight Center. It is expected that the DEA setting values will rarely be changed.

Commands

Change System Configuration Video Board Register Options:

X := (CCD Id * (SYSSET_CCD_END - SYSSET_CCD_BASE + 1);

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId      = SYSSET_CCD_SEQ_OFFSET+X    - Video Sequencer Offset
    itemValue   = 0..63                      - Sequencer Cycle Number
  },
  {
    itemId      = SYSSET_CCD_ADC_OFFSET+X    - Video ADC Offset
    itemValue      = 0..63                   - Sequencer Cycle Number
  },
  {
    itemId      = SYSSET_CCD_VIDEO_ENABLE+X  - Video Channel Mask
    itemValue   = selection bitmap           - Bit 0 corresponds to channel A,
                                               bit 1 to channel B, etc. If 0, 
                                               output from the channel is
                                               enabled, if 1, then the output
                                               from the channel is driven to 0.
                                               This is intended as a diagnostic
                                               tool only.
  },
  {
    itemId      = SYSSET_CCD_BJD+X           - Back-Junction Diode
    itemValue   = 0 or 1                     - O = Off, 1 = On
  }
}

Change System Configuration Video Board DAC Levels:

X := (CCD Id * (SYSSET_CCD_END - SYSSET_CCD_BASE + 1);

SYSSET_DAC_PIA_P+X   - Image Array Parallel High Level
SYSSET_DAC_PIA_MP+X  - Image Array Parallel Low Level Positive
SYSSET_DAC_PIA_M+X   - Image Array Parallel Low Level Negative

(actual low-level is SYSSET_DAC_PIA_MP - SYSSET_DAC_PIA_M)

SYSSET_DAC_PFS_P+X   - Framestore Parallel High Level
SYSSET_DAC_PFS_MP+X  - Framestore Parallel Low Level Positive
SYSSET_DAC_PFS_M+X   - Framestore Parallel Low Level Negative

(actual low-level is SYSSET_DAC_PFS_MP - SYSSET_DAC_PFS_M)

SYSSET_DAC_S_P+X     - Serial Register High Level
SYSSET_DAC_S_M+X     - Serial Register Low Level

SYSSET_DAC_R_P+X     - Reset Gate High Level
SYSSET_DAC_R_MP+X    - Reset Gate Low Level Positive
SYSSET_DAC_R_M+X     - Reset Gate Low Level Negative

(actual low-level is SYSSET_DAC_R_MP - SYSSET_DAC_R_M)

SYSSET_DAC_SCP+X     - Scupper

SYSSET_DAC_OG_P+X    - Output Gate High Level
SYSSET_DAC_OG_M+X    - Output Gate Low Level

SYSSET_DAC_RD+X      - Reset Diode

SYSSET_DAC_DR0+X     - Drain Output for Channel A
SYSSET_DAC_DR1+X     - Drain Output for Channel B
SYSSET_DAC_DR2+X     - Drain Output for Channel C
SYSSET_DAC_DR3+X     - Drain Output for Channel D

Engineering Telemetry

None

Science Telemetry

Command Echo if all settings within limits

commandEcho: TTAG_CMD_ECHO
{
  arrival       = time command arrived (BEP 10Hz Ticks)
  result        = CMDRESULT_OK (other values indicate an error)

  changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
  {
    entries[] =
    {
      itemId    = SYSSET_CCD/DAC_+X   - Selected item
      itemValue = as sent             - Commanded value
    },
    ...
  }
}

Command Echo if one or more settings beyond limits

commandEcho: TTAG_CMD_ECHO
{
  arrival        = time command arrived (BEP 10Hz Ticks)
  result         = CMDRESULT_ITEM_CLIPPED

  changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
  {
    entries[] =
    {
      itemId     = SYSSET_CCD/DAC_+X  - Selected item
      itemValue  = as sent            - Commanded value
    },
    ...
  }
}

Software Housekeeping Statistics

swHousekeeping: TTAG_SW_HOUSE
{
  startingBepTickCounter = random
  endingBepTickCounter   = startingBepTickCounter + 640
  statistics[] =
  {
    swStatisticId        = SWSTAT_VERSION
    count                = 1
    value                = 11 (if not, System Patched, SEU or hardware)
  }
  {
    swStatisticId        = SWSTAT_TIMERCB_INVOKE
    count                = 1
    value               ~= 640 (~10 timer ticks/second)
  }
}

If an entry within the command exceeded its limit value, the following software housekeeping entry will be supplied:

SWSTAT_SYSCFG_IN_CLIP  - Configured setting beyond limit, where the 
                         reported "value" field is the last offending
                         entry "itemId" field in the command packet.

NOTE: Since the CCD Video Board parameters are loaded into the DEA when a science run is started, a SWSTAT_DEABOARD_ERROR won't be reported as an immediate result of the Change System Configuration command.

These parameters, once loaded into the DEA at the start of a science run, will affect the following DEA Housekeeping values:

DEAHOUSE_CCD_REG_0    - Register 0 Sequencer Control Contents
DEAHOUSE_CCD_REG_1    - Register 1 Video ADC Control Contents
DEAHOUSE_CCD_REG_2    - Register 2 Test Aid Contents
DEAHOUSE_CCD_REG_3    - Register 3 Miscellaneous Contents

DEAHOUSE_CCD_PIA_P    - Image Array Parallel Voltage + Level
DEAHOUSE_CCD_PIA_M    - Image Array Parallel Voltage - Level
DEAHOUSE_CCD_PFS_P    - Framestore Parallel Voltage + Level
DEAHOUSE_CCD_PFS_M    - Framestore Parallel Voltage - Level
DEAHOUSE_CCD_S_P      - Serial Register Voltage + Level
DEAHOUSE_CCD_S_M      - Serial Register Voltage - Level
DEAHOUSE_CCD_R_P      - Reset Gate Voltage + Level
DEAHOUSE_CCD_R_M      - Reset Gate Voltage - Level
DEAHOUSE_CCD_OG       - Output Gate Bias Level
DEAHOUSE_CCD_SCP      - Scupper Voltage Level
DEAHOUSE_CCD_RD       - Reset Diode Voltage
DEAHOUSE_CCD_DR0      - Drain Output Channel A Voltage
DEAHOUSE_CCD_DR1      - Drain Output Channel B Voltage
DEAHOUSE_CCD_DR2      - Drain Output Channel C Voltage
DEAHOUSE_CCD_DR3      - Drain Output Channel D Voltage

Warnings

  1. Loaded into DEA upon Science Run

    Although the settings are loaded into the instrument with a Change System Configuration command, the Video Board settings aren't actually loaded into the DEA hardware until a Start Science Run or Start Bias Only Run command is received, and the BEP starts setting up for the run.

  2. Jitter DAC

    During X-ray Calibration testing, it was discovered that it is necessary to "jitter" some of the video board voltages prior to starting to take science data. This action causes the CCDs to flush out built-up residual charge more effectively, leading to shorter start-up times. The most recent version of the instrument software now contains code which, when setting up for a science run, sets the necessary video board DACs to their "jitter" value, parallel clocks the CCDs for up to 11 seconds, and then restores the DACs to the values configured in the System Configuration Table. For more detail of Jitter DAC, see TBD.

  3. Video ADC Offsets in Science Parameter Block

    Although the Video Board ADC Offset parameters are listed in the System Configuration Table, they are overridden by the corresponding parameters in a science run's parameter block, and as such, the values stored in the System Configuration Table never make it into the DEA.

  4. Clipped to upper limits

    Items whose values exceed their respective limits are clipped to the limit value.

  5. See Warnings in Section 3.4.6.5.

3.3.5 CCD Voltage Setting Limits

Description

All items in the System Configuration Table have upper limits (no lower limits were required). If a "Change System Configuration" command is received which contains one or more entries whose value exceeds its limit, the system stores the maximum values for these items in their corresponding locations, and reports the occurrence in the "result" field of the "Command Echo" telemetry packet, as well as in an entry of the next "Software Housekeeping" telemetry packet.

Table Values

The following contains the limit values for the System Configuration Table entries:

Table 10. System Configuration Table Value Limits
Change System Configuration: itemId Limit Value Effect
SYSSET_DEA_POWER 0xffff no limit
SYSSET_FEP_POWER 0xffff no limit
SYSSET_CNTL_MASTER_CLK 0xffff no limit
SYSSET_CNTL_FOCAL_TEMP 0xffff no limit
SYSSET_CNTL_BAKE_TEMP 0xffff no limit
SYSSET_CNTL_BAKE_ENABLE 0 cannot enable bakeout heater without patch or write-memory command
SYSSET_CNTL_LED_ENABLE 0xffff no limit
SYSSET_CNTL_HOUSE_HOLD 0xffff no limit
SYSSET_CNTL_SIGNAL_PATH 0xffff no limit
SYSSET_CNTL_CMDCLOCK_DISABLE 0xffff no limit
SYSSET_CNTL_CMDDATA_DISABLE 0xffff no limit
SYSSET_CNTL_RELAY_SET_0 0xffff no limit
SYSSET_CNTL_RELAY_SET_1 0xffff no limit
SYSSET_CNTL_RELAY_SET_2 0xffff no limit
SYSSET_CNTL_RELAY_SET_3 0xffff no limit
SYSSET_CNTL_RELAY_SET_4 0xffff no limit
SYSSET_CCD_SEQ_OFFSET 0xffff no limit
SYSSET_CCD_ADC_OFFSET 0xffff no limit
SYSSET_CCD_VIDEO_ENABLE 0xffff no limit
SYSSET_CCD_HOLD_HOUSE 0xffff no limit
SYSSET_CCD_BJD 0xffff no limit
SYSSET_CCD_HIGH_SPEED_TAP 0xffff no limit
SYSSET_DAC_PIA_P 255 limited to 12.775V
SYSSET_DAC_PIA_MP 255 limited to 12.775V
SYSSET_DAC_PIA_M 140 limited to -7.025V
SYSSET_DAC_PFS_P 255 limited to 12.775V
SYSSET_DAC_PFS_MP 255 limited to 12.775V
SYSSET_DAC_PFS_M 140 limited to -7.025V
SYSSET_DAC_S_P 255 limited to 12.775V
SYSSET_DAC_S_M 140 limited to -7.025V
SYSSET_DAC_R_P 255 limited to 12.775V
SYSSET_DAC_R_MP 255 limited to 12.775V
SYSSET_DAC_R_M 140 limited to -7.025V
SYSSET_DAC_SCP 255 limited to 12.775V
SYSSET_DAC_OG_P 255 limited to 12.775V
SYSSET_DAC_OG_M 140 limited to -7.025V
SYSSET_DAC_RD 233 limited to 11.7V
SYSSET_DAC_DR0 177 limited to 20.6V
SYSSET_DAC_DR1 177 limited to 20.6V
SYSSET_DAC_DR2 177 limited to 20.6V
SYSSET_DAC_DR3 177 limited to 20.6V
SYSSET_DAC_A_OFF 0xffff no limit
SYSSET_DAC_B_OFF 0xffff no limit
SYSSET_DAC_C_OFF 0xffff no limit
SYSSET_DAC_D_OFF 0xffff no limit

Telemetry

If an entry in a "Change System Configuration Table" command exceeds its limit value, the result field of the corresponding Command Echo telemetry packet will be set to "CMDRESULT_ITEM_CLIPPED", and the next Software Housekeeping telemetry packet will contain a "SWSTAT_SYSCFG_IN_CLIP" entry, whose "count" field indicates the number of clipped entries, and whose "value" field indicates the last "SYSSTAT_" item which was clipped.

3.3.6 Controlling the Focal Plane Thermal Controller

Description

The ACIS Focal Plane thermal controller uses coarse and fine temperature set-points to control the focal plane temperature. These set-points are maintained in the System Configuration Table, and are modified using entries within a "Change System Configuration" command. Within about 1 second of being modified, the System Configuration task relays the change into the DEA interface control board.

In addition to the normal 4 watt (maximum) heater provided to control the focal plane temperature to the commanded set-point, a bake-out 40 watt (maximum) heater may be switched on to operate in parallel with the normal heater. The bake-out enable command provides this switching function. The circuitry controlling the focal plane temperature is entirely separate from the choice of maximum heater power available.

In order to heat the focal plane up enough to bake off contaminants, the bakeout heater must be enabled. The desired state of this heater is also maintained in the System Configuration Table. Currently, the limit for this setting is set to 0, preventing a "Change System Configuration" command entry from enabling the heater. If the system is patched or poked (write-memory) to change the setting limit, the heater can be enabled through a subsequent "Change System Configuration" command. Once enabled, when the desired focal plane temperature is greater than the actual temperature, the heater will be turned on.

Refer to TBD for the conversion formulae from set-point values to resulting temperatures.

Commands

Change System Configuration to modify temperature set-points:

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId     = SYSSET_CNTL_BAKE_TEMP   - Coarse Temp. Set-Point
    itemValue  = temperature setting     - Desired coarse temp.
  },
  {
    itemId     = SYSSET_CNTL_FOCAL_TEMP  - Fine Temp. Set-Point
    itemValue  = temperature setting     - Desired fine temperature
  }
}
NOTE: For historical reasons, SYSSET_CNTL_BAKE_TEMP is badly named.
It  is not the "bake-out" temperature, but rather the coarse temperature 
set-point.

Change System Configuration to disable the bake-out heater

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId     = SYSSET_CNTL_BAKE_ENABLE - Bakeout Enable
    itemValue  = 0                       - Disable heater
  }
}

Change System Configuration to enable bake-out heater

changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
{
  entries[] =
  {
    itemId     = SYSSET_CNTL_BAKE_ENABLE - Bakeout Enable
    itemValue  = 1                       - Enable heater
  },
}
NOTE: Unless the limit table is modified, this command will result in
a CMDRESULT_ITEM_CLIPPED, and the heater will not be enabled.

Engineering Telemetry

Temperature Measurements TBD

Commands to change the temperature set-points and enable or disable the Focal Plane bakeout heater will affect the overall power consumption of the system. Refer to Appendix A for a list of the various power configurations.

Science Telemetry

Command Echo for temperature set-points

commandEcho: TTAG_CMD_ECHO
{
  arrival       = time command arrived (BEP 10Hz Ticks)
  result        = CMDRESULT_OK

  changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
  {
    entries[] =
    {
      itemId    = SYSSET_CNTL_BAKE_TEMP
      itemValue = temperature setting
    },
    {
      itemId    = SYSSET_CNTL_FOCAL_TEMP
      itemValue = temperature setting
    }
  }
}

Command Echo for Bakeout Heater Disable

commandEcho: TTAG_CMD_ECHO
{
  arrival       = time command arrived (BEP 10Hz Ticks)
  result        = CMDRESULT_OK

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

Command Echo for Bakeout Heater Enable if limit table is as-launched

commandEcho: TTAG_CMD_ECHO
{
  arrival       = time command arrived (BEP 10Hz Ticks)
  result        = CMDRESULT_ITEM_CLIPPED

  changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
  {
    entries[] =
    {
      itemId    = SYSSET_CNTL_BAKE_ENABLE
      itemValue = 1
    }
}

Command Echo for Bakeout Heater Enable if limit table modified to allow Bakeout Enables

commandEcho: TTAG_CMD_ECHO
{
  arrival       = time command arrived (BEP 10Hz Ticks)
  result        = CMDRESULT_OK

  changeConfigSetting: CMDOP_CHANGE_SYS_ENTRY
  {
    entries[] =
    {
      itemId    = SYSSET_CNTL_BAKE_ENABLE
      itemValue = 1
    }
}

Software Housekeeping

swHousekeeping: TTAG_SW_HOUSE
{
  startingBepTickCounter = varying
  endingBepTickCounter   = startingBepTickCounter + 640
  statistics[] =
  {
    swStatisticId        = SWSTAT_VERSION
    count       = 1
    value       = 11 (if not, System Patched, SEU or hardware)
  }
  {
    swStatisticId        = SWSTAT_TIMERCB_INVOKE
    count       = 1
    value      ~= 640 (~10 timer ticks/second)
  }
}

If a Bakeout Enable entry is present, and the limit table had not been modified to allow it, the following software housekeeping entry will be supplied:

SWSTAT_SYSCFG_IN_CLIP  - Configured setting beyond limit, where the 
reported "value" field is "SYSSET_CNTL_BAKE_ENABLE".

If DEA Housekeeping is running (see Section 3.4.6) and is monitoring the Focal Plane temperature, the set-point changes and Bakeout Enable will affect the resulting temperature of the focal plane:

deaHousekeepingData: TTAG_DEA_HOUSE
{
  deaBlockId    = Id of parameter block used for the DEA Run
  commandId     = Id of the command which started the DEA Run
  bepTickCounter= BEP 10Hz Tick at start of DEA housekeeping acquisition
  entries[] =
  {
    query =
    {
      ccdId     = CCD_DESELECT (selects the interface board)
      queryId   = DEAHOUSE_CNTL_ADC_FPTEMP_12
    }
    value       = Focal Plane temperature (board 12)
  }
  {
    query =
    {
      ccdId     = CCD_DESELECT (selects the interface board)
      queryId   = DEAHOUSE_CNTL_ADC_FPTEMP_11
    }
    value       = Focal Plane temperature (board 11)
  }
}

Warnings

  1. Instrument Current Draw and Fusing

    At the time of this writing, it is uncertain if one can turn on the Bakeout heater while running 6 FEPs and 6 CCDs without incurring the risk of blowing the fuses to ACIS. To ensure that this doesn't happen, prior to patching or modifying the Bakeout Enable's limit value:

    Ensure that prior to removing the patch:

  2. Dirt moves to coldest item

    Since contaminants tend to migrate to the coldest object, when baking out the focal plane, always heat the focal plane prior to enabling the Detector Housing heater.

3.3.7 Controlling other DEA Settings

Description

In addition to the settings described in the previous sections, the following DEA settings are maintained in the System Configuration table. These settings are intended for maintenance and diagnostic activities only, and should not be modified from their defaults without assistance from the ACIS software maintenance team. These settings will be loaded into the instrument with a "Change System Configuration" command, and loaded into the DEA by the System Configuration Task within 1 second of being modified in the System Configuration Table. They include:

SYSSET_CNTL_MASTER_CLOCK     - Disable Signal clock to DEA during science
SYSSET_CNTL_LED_ENABLE       - LED to check for holes in filter (requires 
                               careful ground analysis of CCD images)
SYSSET_CNTL_HOUSE_HOLD       - Hold Housekeeping address control
SYSSET_CNTL_SIGNAL_PATH      - Select alternate signal path
SYSSET_CNTL_CMDCLOCK_DISABLE - Disable Command Clock to video boards 
                               during science
SYSSET_CNTL_CMDDATA_DISABLE  - Disable data line to video boards during 
                               science

The following settings are loaded into the DEA's video boards during the setup stage of a science run:

SYSSET_CCD_HOLD_HOUSE         - Hold Video Housekeeping address control
                                (overridden by instrument software behavior)
SYSSET_CCD_HIGH_SPEED_TAP     - Enable high-speed tap (not useful in flight)

Commands

These items are modified as described in earlier sections above using entries within a "Change System Configuration" command packet.

Engineering Telemetry

none

Science Telemetry

The commands to modify these items are echoed as described in earlier sections, and can produce similar Software Housekeeping reports. Only the SYSSET_CCD_HIGH_SPEED_TAP entry will affect the DEA Housekeeping entries, by controlling bit 3 of the DEAHOUSE_CCD_REG_3 register read-back.


[PREVIOUS] [PREVIOUS] [PREVIOUS]
James E. Francis
Last modified: Wed Jan 12 12:38:34 EST