A serial interface from the CIDP delivers command and ancillary support messages to the HENA DPU.

Message Format

The DPU receives data from the CIDP serially at 38400 baud with eight data bits, one stop bit, and no parity. The CIDP sends messages to the HENA DPU over this interface. Each message is 62 bytes long and starts with a four byte header. The header is a three byte synchronization pattern followed by a message identifier. Following the header, there is a checksum. The checksum is the byte-wise exclusive-or of all the bytes in the message following the checksum. Following the checksum there is a message length indicating how many of the remaining bytes in the message are meaningful. The message types used by HENA are summarized in the following tables.

If there is no message to send within a one second interval, the CIDP will send a message indicating that "All-Is-Well". If the "All-is-Well" message is missing for more than 300 consecutive seconds, the DPU will run the shutdown macro.

All-Is-Well Message Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30xa5 - All-Is-Well Message Id
4Checksum (= 0)
5Byte Count (= 0)
6-61Fill (= 0)

The periodic message reports spacecraft time and attitude. This message is sent once per spin between synchronization pulses 3500 and 3550; the data will be valid at the next nadir pulse.

Periodic Message Format
7654 3210
0 0xfe - Synchronization Pattern 1
1 0xfa - Synchronization Pattern 2
2 0x30 - Synchronization Pattern 3
3 0xc5 - Periodic Message Id
4 Checksum
5 Byte Count (starting at byte 6)
6-9 MET coarse time: 0.1s resolution
10-11 MET fine time: 195 usec res. (9 bits valid)
12-13 Data Status Flags
14-25 Spin Axis Inertial X, Y, Z
26-29 Spin Phase (degrees)
30-33 Filtered Spin Rate Magnitude
34-37 MET coarse time at which Orbital Elements were valid
38-39 MET fine time at which Orbital Elements were valid
40-43 MET coarse time of Periapse Passage
44-45 MET fine time Periapse Passage
46-47 Semimajor Axis
48-49 Eccentricity
50-51 Cosine of Angle of Inclination
52-53 Argument of Perigee
54-55 Longitude of Ascending Node
56-57 Distance to Earth Center
58-61 Fill (= 0)

Safe messages warn the DPU of imminent power loss. The DPU shuts down power (via the shutdown macro) in anticipation of losing power. The CIDP will turn off HENA ten or more seconds after sending the safe message.

Safe Message Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30xdd - Safe Message Id
4Checksum (= 0)
5Byte Count (= 0)
6-61Fill (= 0)

Low power messages tell the DPU to reduce power (via the low power macro).

Low Power Message Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30xd1 - Low Power Message Id
4Checksum (= 0)
5Byte Count (= 0)
6-61Fill (= 0)

Normal power messages tell the DPU to restore power (via the normal power macro). The message is ignored if not preceded by a low power message.

Normal Power Message Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30x1d - Normal Power Message Id
4Checksum (= 0)
5Byte Count (= 0)
6-61Fill (= 0)

Command messages are relayed from the ground, through the CIDP, and to the HENA DPU. A command message can arrive at any time. There is exactly one command per message. The CIDP adds the four-word header; the remaining 58 bytes have been uplinked from the ground. The two-byte command opcode identifies the command. The HENA commands are defined in the following section.

Command Message Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30xcc - Command Message Id
4Checksum
5Byte Count
6-7Command Opcode
8-61...
Command Data
...

Upload messages are relayed from the CIDP EEPROM. A load consists of a sequence of upload messages. The grouping flags and sequence count enumerate the steps in a load. The first load message has a grouping flag set to first (= 01). Subsequent load messages will have a continuation grouping flag (= 00) and incrementing sequence count. The final load message will have a last grouping flag (= 10). The first load message (flag = 01) has destination information in the first ten data bytes. The first two bytes comprise the destination memory id (ms byte first); this is followed by two bytes of destination address. The next four bytes are unused. The final two bytes gives the total data size for the entire load. The remaining data bytes in the first load message are data to be loaded. The final load message (flag = 10) has the total byte-wise exclusive-or checksum of the entire load.

Upload Message Format
7654 3210
00xfe - Synchronization Pattern 1
10xfa - Synchronization Pattern 2
20x30 - Synchronization Pattern 3
30xaa - Upload Message Id
4Checksum
5Byte Count
6-7Command Opcode (= 0x112f)
8-9spare
10GroupingSequence Count (ms)
11Sequence Count (ls)
12-61...
Data
...

There is also a short load that fits in one upload message. The grouping flags will indicate short (= 11), the destination will be in the first data bytes as before, and the remaining data bytes comprise the entire load.

Only one load can be in progress at a time. A load message will be rejected if the target memory region has not been enabled via H_MEM_DAT_WRITE.

Command and Macro Processing

Most HENA commands consist of a two-byte opcode followed by a macro byte and 53 argument bytes. The only exception is the H_MEM_DAT_LOAD command which has no macro byte. Most arguments are a single byte; larger arguments are spread over multiple bytes with the most significant byte first.

Most commands are executed as soon as they are received; exceptions are noted in the individual command descriptions. Each command is logged as it is received by the DPU. A short command echo containing the opcode and some arguments along with a code summarizing the command's result is downlinked.

64 kbytes of DPU memory are reserved for the storage of macros. This memory is initialized with default macros stored with the flight software. A macro can be any length as long as the total length of all the macros fit in the memory. Up to 256 macros may be defined; each macro is identified by a small integer, 0 - 255.

The HENA opcode is followed by a macro byte. The command handler can be commanded into a "learning" mode to define a macro. If a command arrives with the macro byte set when the command handler is in learning mode, the command is logged, but not executed; instead the command is added to the macro currently being constructed. Any command that arrives without the macro byte set, will be handled as usual. When not in learn mode, a command that arrives with the macro byte set will be rejected. Later, when a macro is executed, its component commands will be logged and executed.

There are commands for running and stopping a macro. There is also a special command for adding delays to a macro; these can be used only within a macro.

Up to 64 macros can be running concurrently. If more than one macro has been commanded to run, one of them is run until completion or until a delay command is executed. Then the next runnable macro is run. At all times, new commands arriving from the CIDP have priority over macros.

Several default macros are available as soon as the HENA DPU is started. Most of these macros are one or two commands long and are used by the monitoring subsystem to respond to out of limit conditions. A default macro can be replaced with a new macro via H_MAC_DEF and H_MAC_ENDEF. The default macros are described in the following table.

ID Action Commands
0 No action H_SYS_NULL
1 Shutdown H_MEM_STR_LOAD 26 0 0
H_MEM_STR_LOAD 26 2 0
H_MEM_STR_LOAD 26 4 0
H_SEN_HV_LEVEL 0 ALL
H_MEM_STR_LOAD 26 10 0
H_SSD_BIAS_LEVEL 0
H_MAC_NEST 2
H_MAC_DELAY 10
H_SEN_HV_PWR OFF
H_SC_PWR_OFF
H_MEM_STR_LOAD 1 0 0
H_MEM_STR_LOAD 1 2 0
H_MEM_STR_LOAD 1 4 0
H_MEM_STR_LOAD 1 10 0
2 Low Power H_MAC_NEST 18
H_MAC_NEST 16
H_HTR_DEC_PWR OFF
3 Normal Power H_SEN_ANLG_PWR ALL ON
H_SSD_PRE_PWR ON
4 Turn Off Sensor H_SEN_ANLG_PWR ALL OFF
5 Turn Off HV Power H_SEN_HV_PWR OFF
6 Turn Off Coincidence HV H_SEN_HV_CNTRL OFF COINC
7 Turn Off Start HV H_SEN_HV_CNTRL OFF START
8 Turn Off Stop HV H_SEN_HV_CNTRL OFF STOP
9 Turn Off Positive Collimator HV H_SEN_HV_CNTRL OFF +COL
10 Turn Off Negative Collimator HV H_SEN_HV_CNTRL OFF ÐCOL
11 Turn Down Coincidence HV H_SEN_HV_STEP 3 DOWN COINC
12 Turn Down Start HV H_SEN_HV_STEP 3 DOWN START
13 Turn Down Stop HV H_SEN_HV_STEP 3 DOWN STOP
14 Turn Down Positive Collimator HV H_SEN_HV_STEP 3 DOWN +COL
15 Turn Down Negative Collimator HV H_SEN_HV_STEP 3 DOWN ÐCOL
16 Turn Off Shutter Power H_SHUT_MODE MANUAL
H_SHUT_PWR OFF
17 Turn Off Sensor & SSD Preamps H_SSD_PRE_PWR OFF
H_MAC_NEST 4
18 Turn Off Heater, Sensor, & SSD Preamps H_HTR_SURV_PWR OFF
H_MAC_NEST 17
19 Turn Off Bias Power H_SSD_BIAS_PWR OFF
20 Turn Off SSD Preamps H_SSD_PRE_PWR OFF
21 Turn Off HV & Shutter Power H_SEN_HV_PWR OFF
H_MAC_NEST 16
22 Turn Off Heater H_HTR_SURV_PWR OFF
23 Turn On Heater H_HTR_SURV_PWR ON
24 Turn Off SSD Sensor and Preamps H_SEN_ANLG_PWR SSD OFF
H_SSD_PRE_PWR OFF
25 Turn Off MCP Sensor H_SEN_ANLG_PWR MCP OFF
26 Wind Shutter Spring H_SHUT_MODE MANUAL
H_SHUT_PWR ON
H_MEM_STR_LOAD 25 32 0
H_SHUT_MOVE 68 CCW
H_MAC_DELAY 1 second
H_SHUT_MOVE 2 CCW
H_MAC_DELAY 1 second
H_SHUT_MOVE 1 CCW
H_MAC_DELAY 1 second
H_SEN_ACT_PWR OFF PRIMARY
H_SEN_ACT_PWR OFF BACKUP
H_MAC_DELAY 15 minutes
H_SHUT_PWR OFF
H_MEM_STR_LOAD 12 32 0
27 Start Earth H_SYS_NULL
28 End Earth H_SYS_NULL
29 Start Sun H_SYS_NULL
30 End Sun H_SYS_NULL
31 Start Bright H_SYS_NULL
32 End Bright H_SYS_NULL

Commands

The commands are defined below. Opcodes are defined such that two bit flips are needed to transform a valid opcode into another valid opcode.

H_HTR_DEC_PWR - Controls the Decontamination Heater Power

Opcode:000116 
Arguments:0: state 
  0 = off
  1 = on

Turn the HENA decontamination heater on or off.

H_HTR_SURV_PWR - Controls the Survival Heater Power

Opcode:000216 
Arguments:0: state 
  0 = off
  1 = on

Turn the HENA survival heater on or off. The heater is also controlled by a thermostat. The heater is turned on by this command or by the thermostat.

H_MAC_DEF - Begin a Macro Definition

Opcode:000416 
Arguments:0: id 

Start defining the identified macro. All subsequent commands, which have their macro byte set, will be added to the macro; commands without the byte set, will be executed as usual. Macro definition continues until an H_MAC_ENDEF command is seen; H_MAC_ENDEF must not have its macro byte set to end the definition. The macro cannot be run until the definition is complete. If the macro already exists, the new macro will replace the old when the H_MAC_ENDEF is received. The command will be rejected if the id is invalid.

H_MAC_DELAY - Delay Macro

Opcode:000716 
Arguments:0: delay (ms) 
 1: delay (ls) 

Incorporate a delay of the given number of seconds into the macro currently being defined. This command will be rejected if used outside of a macro definition.

H_MAC_END - End a Macro

Opcode:007016 
Arguments:none 

Terminate macro execution. If this is a nested macro, resume the calling macro. This command will be rejected if used outside of a macro definition.

H_MAC_ENDEF - End a Macro Definition

Opcode:000816 
Arguments:none 

Terminate macro definition. Add an H_MAC_END command to the macro being defined and end the definition. This command will be rejected if no macro is being defined.

H_MAC_HALT - Halt an Executing Macro

Opcode:000b16 
Arguments:0: id 

Stop the identified macro. This command will be rejected if the id is invalid, if the identified macro is undefined, or it is not running.

H_MAC_NEST - Nest a Macro

Opcode:007316 
Arguments:0: id 

Run the identified macro. The macro that contains the H_MAC_NEST command is suspended until the new macro completes. This command will be rejected if the id is invalid or if the identified macro is undefined. This command will also be rejected if used outside of a macro definition.

H_MAC_PAUSE - Pause Macro

Opcode:008616 
Arguments:0: time (ms) 
 1: time 
 2: time 
 3: time (ls) 

Pause macro execution. When a macro executes this command, the macro will pause until the given MET arrives. This command will be rejected if used outside of a macro definition.

H_MAC_RUN - Run a Macro

Opcode:000d16 
Arguments:0: id 

Run the identified macro. This command will be rejected if the id is invalid or if the identified macro is undefined.

H_MCP_PHA_MODE - Sets MCP PHA Event Selection Mode

Opcode:001016 
Arguments:0: mode 
  0 = FIFO
  1 = normal
  2 = priority

Select the mode used to collect HENA-M PHA results.

H_MCP_PHA_PRI - Sets MCP PHA Priority Selection

Opcode:001316 
Arguments:0: TOF category 
  0 = very fast ([ctof]=0-1)
  1 = fast ([ctof]=2-3)
  2 = medium ([ctof]=4-5)
  3 = slow ([ctof]=6-7)
  4 = very slow ([ctof]=8-9)

Select the TOF category of HENA-M events to collect when HENA-M PHA is operating in priority mode.

H_MCP_THRE - Set MCP Thresholds

Opcode:001516 
Arguments:0: level 
 1: channel 
  0 = start
  1 = stop
  2 = coincidence
  3 = all

The start, stop, and coincidence channel thresholds determine the minimum signal level that is required in a timing channel before the event is registered. This command allows adjustment of the thresholds for each or all of the channels to keep the threshold set just above the noise level of the channel.

H_MEM_DAT_CHECK - Check a Portion of DPU Memory

Opcode:001616 
Arguments:0: memory id. 
 1: address (ms) 
 2: address (ls) 
 3: length (ms) 
 4: length (ls) 

Calculate the checksum of up to 65535 bytes of memory from given address space, page, and address. The checksum is the byte-wise exclusive-or of the memory indicated. The results are downlinked.

H_MEM_DAT_COPY - Copies Memory Contents

Opcode:001916 
Arguments:0: source memory id. 
 1: source address (ms) 
 2: source address (ls) 
 3: destination memory id. 
 4: destination address (ms) 
 5: destination address (ls) 
 6: length (ms) 
 7: length (ls) 

Copy DPU memory from any address space, page, and address to any address space, page, and address. Up to 65535 bytes can be copied with one command. The command will be rejected if the destination memory region has not been enabled via H_MEM_DAT_WRITE. The result is undefined if the source and destination regions overlap.

H_MEM_DAT_LOAD - Loads Data into DPU Memory

Opcode:112f16 
Arguments:0: spare 
 1: spare 
 2: grouping flags / sequence count (ms) 
 3: sequence count (ls) 
 4 - 53: data 

Load DPU memory. A command message with an H_MEM_DAT_LOAD command is identical in format to an upload message except that the message id is different (see above).

H_MEM_DAT_READ - Reads a Selected Portion of DPU Memory

Opcode:001c16 
Arguments:0: memory id. 
 1: address (ms) 
 2: address (ls) 
 3: length (ms) 
 4: length (ls) 

Dump up to 65535 bytes of memory from given address space, page, and address.

H_MEM_DAT_WRITE - Enables Memory Write Operations

Opcode:001f16 
Arguments:0: memory id. 
 1: first address (ms) 
 2: first address (ls) 
 3: last address (ms) 
 4: last address (ls) 

Enable writes or copies into given region of memory. The range check is inclusive; for example, if first address is 0 and last address is 0xffff, then the entire 64 kbytes are enabled. Only one memory region can be write-enabled at any one time; a write-enable command disables the previously enabled region. All memory is disabled by specifying an invalid memory id, e.g. 0x40.

H_MEM_RUN - Run a Program

Opcode:006d16 
Arguments:0: page 
 1: address (ms) 
 2: address (ls) 

Run a program at the given address in the given page. The program must either execute very quickly (so as not to hold up the command handler) or must take over completely. If the program returns, there must be no net stack effects.

H_MEM_STR_LOAD - Load a Value into a Selected Data Structure

Opcode:002016 
Arguments:0: value (ms) 
 1: value (ls) 
 2: id (ms) 
 3: id (ls) 
 4: data structure 
  0 = parameters
  1 = calibration sequences
  2 = monitor limits
  3 = SSD parameters
  5 = SSD bad pixel map

Load the value into the given data structure at the location denoted by the id. The value is a byte when loading calibration sequences, monitor limits, or the SSD bad pixel map; it is a word when loading parameters or SSD parameters. With the exception of SSD parameter ids, the id is defined by the byte offset into the data structure to the value of interest. For SSD parameters, the id is the address of the parameter in the SSD hardware. Note: an SSD parameter can be set even if the SSD power is off; the parameters will be loaded into the SSD once the power is on.

H_MEM_STR_READ - Reads a Selected Data Structure

Opcode:002316 
Arguments:0: data structure 
  0 = parameters
  1 = calibration sequences
  2 = monitor limits
  3 = SSD parameters
  4 = macro status
  5 = SSD bad pixel map

Downlink the indicated data structure.

H_MOD_CHARG - Set Charge Mode

Opcode:002516 
Arguments:0: mode 
  0 = neutral
  1 = ion

Set charge mode to collect neutral atoms only or ions. In neutral mode, the detector's collimators are charged and only neutral particles enter the detector. In ion mode, the collimators are uncharged and any particle can enter the detector.

H_MOD_DATA - Selects Normal or Backup Data Collection Modes

Opcode:002616 
Arguments:0: mode 
  0 = normal
  1 = backup

Select HENA data collection mode. In normal mode, events are collected from HENA-M and HENA-S, pulse height analyzed, accumulated into images, and downlinked. Whenever normal mode is entered, the event analysis lookup tables are recalculated as if H_SEN_RECALC was issued. In backup mode, energy images are read directly from HENA-S, accumulated into energy images, and downlinked.

H_MOD_EARTH - Set Earth Avoidance Modes

Opcode:007516 
Arguments:0: shutter operations 
  0 = no-op
  1 = close

Select the operation that occurs automatically when the earth enters the HENA field of view. The shutter operational mode must be "automatic" for the selected operation to occur.

H_MOD_IMC - Set Image Motion Compensation Mode

Opcode:008016 
Arguments:0: mode 
  0 = disabled (i.e. staring)
  1 = enabled (i.e. spinning)

Enable or disable image motion compensation (IMC). If enabled, the smear produced by spacecraft spin motion is removed from images and PHA results. If disabled, IMC is not performed; this is probably only useful for ground testing. A mode change does not take effect until the sun is the center of the HENA-S field of view.

H_MOD_SUN - Set Sun Avoidance Modes

Opcode:002916 
Arguments:0: shutter operation 
  0 = no-op
  1 = close
 1: HV operation 
  0 = no-op
  1 = ramp down
 2: data operation 
  0 = collect data
  1 = reject data

Select the operations that occur automatically when the sun enters the HENA field of view. The shutter operational mode must be "automatic" for the selected shutter operation to occur.

H_MON_CNTRL - Enables / Disables Alarm Monitor Response

Opcode:002a16 
Arguments:0: mode 
  0 = disable
  1 = enable

Enable or disable alarm monitor response. If enabled, an alarm will cause a corresponding response macro to be executed.

H_SC_PWR_OFF - Request Power Down

Opcode:002c16 
Arguments:none 

Send a message to the CIDP requesting removal of HENA power. The CIDP will respond within two spins.

H_SEN_ACT_CNTRL - Enables or Disables the Sensor's Wax Actuator

Opcode:002f16 
Arguments:0: mode 
  0 = disable
  1 = enable

Enable or disable operation of the sensor's wax actuator. This is a safety interlock; this actuator must be enabled before actually powering the actuator (with H_SEN_ACT_PWR).

H_SEN_ACT_PWR - Controls the Sensor Wax Actuator Power

Opcode:003116 
Arguments:0: operation 
  0 = off
  1 = on (allow cover to open, stay on)
  2 = on (allow cover to open, turn off when open)
  3 = on (allow cover to open, turn off after ten seconds)
  4 = on (allow cover to open, run macro 26 when open)
 1: heater 
  0 = primary
  1 = backup

Turn power to sensor's wax actuator off or on. Turning on the actuator deploys the cover; this can only be done once. The wax actuator in the sensor contains redundant heater elements; one is designated primary and the other backup. The backup command would normally be used only if the primary heater circuit fails. This command will be rejected unless specifically enabled with the H_SEN_ACT_CNTRL command. With operations 2 or 3, the actuator power is removed automatically by the HENA software once the cover is open or after ten seconds. With operation 4, a macro is run; the macro will rewind the spring in addition to removing actuator power.

H_SEN_ANLG_PWR - Controls Sensor Analog Electronics Power

Opcode:003216 
Arguments:0: state 
  0 = off
  1 = on
 1: subsystem 
  0 = MCP
  1 = SSD
  2 = all

Turn power to the sensor's analog electronics off or on.

H_SEN_CAL_PWR - Controls Calibrator Power

Opcode:003416 
Arguments:0: state 
  0 = off
  1 = on
 1: subsystem 
  0 = MCP cal clock
  1 = SSD cal clock
  2 = MCP cal power
  3 = all

Turn power to the sensor's calibrators off or on.

H_SEN_CAL_SEQ - Sequence Calibrator Settings

Opcode:003716 
Arguments:0: sequence (0 - 3) 
  0 = stop

Run the indicated calibration sequence. The sequence loads new calibrator settings every eight sectors and runs for fifteen steps. The sequence is restarted when it reaches the end. The sequence can be stopped by trying to run invalid sequence number 0 or by using H_SEN_CAL_SET.

H_SEN_CAL_SET - Controls Calibrator Settings

Opcode:003816 
Arguments:0: level (0 - 255) 
 1: channel 
  0 = time (TOF)
  1 = SSD
  2 = top/coin
  3 = bottom
  4 = wedge
  5 = strip
  6 = interstitial
  7 = all

Stop the current calibration sequence and set given calibration channel to the given level.

H_SEN_CNTRL - Enables / Disables Sensor Data Generation

Opcode:003b16 
Arguments:0: mode 
  0 = disable
  1 = enable
 1: data 
  0 = accumulators
  1 = HENA-M PHA
  2 = HENA-S PHA
  3 = HENA-M Images
  4 = HENA-S Images
  5 = all

Enable or disable generation of specified data products. The modes are sampled once per spin.

H_SEN_EVNT - Controls Sensor Event Logic Definitions

Opcode:003d16 
Arguments:0: mode (0 - 255) 
 1: sensor 
  0 = MCP
  1 = SSD

Set the sensor event logic mode for either the MCP or the SSD.

H_SEN_FILT - Enables/Disables Software Event Filter

Opcode:008916 
Arguments:0: mode 
  0 = disable
  1 = enable
 1: sensor 
  0 = MCP

Enable or disable software event filter.

H_SEN_HV_CNTRL - Controls Sensor High Voltage Supply

Enables
Opcode:003e16 
Arguments:0: mode 
  0 = disable
  1 = enable
 1: supply 
  0 = coincidence MCP
  1 = start MCP
  2 = stop MCP
  3 = positive collimator
  4 = negative collimator
  5 = all MCPs
  6 = all collimators
  7 = all HVs

Enable or disable an individual HV supply or a group of HV supplies. The HV subsystem must be enabled and powered (H_SEN_HV_PWR) before enabling the individual supplies; otherwise, the command will be rejected.

H_SEN_HV_LEVEL - Controls Sensor High Voltage Supply Levels

Opcode:004016 
Arguments:0: level (0 - 255) 
 1: supply 
  0 = coincidence MCP
  1 = start MCP
  2 = stop MCP
  3 = positive collimator
  4 = negative collimator
  5 = all MCPs
  6 = all collimators
  7 = all HVs

Set the voltage level of an individual HV supply or a group of HV supplies. The HV subsystem must be enabled, the HV powered (H_SEN_HV_PWR), and the individual HVs must be enabled (H_SEN_HV_CNTRL) before the HV level can be set; otherwise, the command will be rejected. A command to set the level above its command limit (H_SEN_HV_LIMIT) will also be rejected.

H_SEN_HV_LIMIT - Controls Sensor High Voltage Supply Limits

Opcode:004316 
Arguments:0: limit (0 - 255) 
 1: supply 
  0 = coincidence MCP
  1 = start MCP
  2 = stop MCP
  3 = positive collimator
  4 = negative collimator
  5 = all MCPs
  6 = all collimators
  7 = all HVs

Set the upper voltage limit of an individual HV supply or a group of HV supplies. If a limit is set below the current level of an operating HV level, the level is automatically reduced to the limit.

H_SEN_HV_PWR - Controls Sensor High Voltage Power

Opcode:004516 
Arguments:0: state 
  0 = off
  1 = on

Turn power to the sensor's high voltage subsystem off or on. A command to turn on the HV subsystem will be rejected if the HV subsystem is disabled.

H_SEN_HV_STEP - Step Sensor High Voltage Supply Levels

Opcode:004616 
Arguments:0: step (0 - 255) 
 1: direction 
  0 = down
  1 = up
 2: supply 
  0 = coincidence MCP
  1 = start MCP
  2 = stop MCP
  3 = positive collimator
  4 = negative collimator
  5 = all MCPs
  6 = all collimators
  7 = all HVs

Step the voltage level of an individual HV supply or a group of HV supplies. The high voltage subsystem must be powered (H_SEN_HV_PWR) and the individual HVs must be enabled (H_SEN_HV_CNTRL) before the HV level can be stepped. A command to step the level above its commanded limit (H_SEN_HV_LIMIT) will be rejected.

H_SEN_RAW_CNTRL - Enables / Disables Sensor Raw Data

Opcode:004916 
Arguments:0: mode 
  0 = disable
  1 = enable

Enable or disable inclusion of HENA sensor raw data with PHA data.

H_SEN_RECALC - Recalculate Sensor Setup

Opcode:007f16 
Arguments:none 

Recalculate sensor setup: load offset parameters, calculate lookup tables, etc.

H_SHUT_MODE - Sets the Shutter Operational Mode

Opcode:007616 
Arguments:0: operation 
  0 = manual
  1 = automatic
  2 = open
  3 = close

Select how the HENA shutter is controlled.

H_SHUT_MOVE - Moves Shutter Motor

Opcode:007916 
Arguments:0: number of steps (0-255) 
 1: direction 
  0 = CCW
  1 = CW

Moves the shutter motor the specified number of steps in the specified direction. This command will be rejected if the shutter operational mode is not "manual" or the shutter power is off.

H_SHUT_PWR - Controls Shutter Power

Opcode:007a16 
Arguments:0: state 
  0 = off
  1 = on

Turn power to the HENA shutter off or on. This command will be rejected if the shutter operational mode is not "manual".

H_SSD_BIAS_PWR - Controls the SSD Bias Power

Opcode:004c16 
Arguments:0: state 
  0 = off
  1 = on

Turn power to the SSD's bias power supply off or on.

H_SSD_BIAS_LEVEL - Sets the SSD Bias Level

Opcode:004f16 
Arguments:0: level (0 - 255) 

Set the SSD's bias level. The bias system must be powered (H_SSD_BIAS_PWR) before the level can be set. A command to set the level above its commanded limit (H_SSD_BIAS_LIMIT) will be rejected.

H_SSD_BIAS_LIMIT - Sets the SSD Bias Limit

Opcode:006e16 
Arguments:0: limit (0 - 255) 

Set an upper limit for the SSD's bias level. If the limit is set below the current level, the level is automatically reduced to the limit.

H_SSD_PH_LEVEL - Sets the Range of SSD Pulse Heights Accepted

Opcode:005116 
Arguments:0: level (0 - 255) 
 1: selection 
  0 = lower
  1 = upper

Set the lower or upper range of pulse heights accepted by the SSD. The range is divided into sixteen energy bins for SSD accumulated images.

H_SSD_PHA_MODE - Sets SSD PHA Event Selection Mode

Opcode:005216 
Arguments:0: mode 
  0 = FIFO
  1 = normal
  2 = priority

Select the mode used to collect HENA-S PHA results.

H_SSD_PHA_PRI - Sets the SSD PHA Priority Selection

Opcode:005416 
Arguments:0: mass category 
  0 = H ([m]=0)
  1 = He ([m]=1)
  2 = CNO ([m]=2)
  3 = "bad" ([m]=3)
 1: TOF category 
  0 = very fast ([ctof]=0-1)
  1 = fast ([ctof]=2-3)
  2 = medium ([ctof]=4-5)
  3 = slow ([ctof]=6-7)

Select the mass/TOF category of HENA-S events to collect when HENA-S PHA is operating in priority mode.

H_SSD_PIX_CAL - Selects the SSD Pixels for Calibration

Opcode:005716 
Arguments:0: mode 
  0 = disable
  1 = enable
 1: pixel ID (0 - 239) 
  240 = cycle
  255 = all

Selects which SSD pixels are enabled to see the calibration signal. Specifying "cycle" causes one and only one pixel to be selected for calibration; a new pixel is selected every two sectors. Cycling stops when any other H_SSD_PIX_CAL command is received.

H_SSD_PIX_CNTRL - Enable or Disable Selected SSD Pixels

Opcode:005816 
Arguments:0: mode 
  0 = disable
  1 = enable
 1: pixel ID (0 - 239) 
  255 = all

Selects which SSD pixels can generate events.

H_SSD_PIX_DIAG - Selects the SSD Pixels for Diagnosis

Opcode:005b16 
Arguments:0: pixel ID (0 - 239) 

Selects the SSD pixels to monitor. Up to fifteen pixels can be selected as long as they are in separate FEA chips. The selected pixels' analog signals will be routed to test points in the detector. This command is only useful on the ground.

H_SSD_PIX_THRE - Sets the SSD Pixel Thresholds

Opcode:005d16 
Arguments:0: level (0-15) 
 1: pixel ID (0-239) 
  255 = all

Set the threshold of an SSD pixel. All of the pixels in the FEA chip are effected.

H_SSD_PRE_PWR - Controls SSD Preamp Power

Opcode:005e16 
Arguments:0: state 
  0 = off
  1 = on

Turn power to the SSD preamplifier circuit off or on.

H_SYS_CNT_CLR - Clear Command Counters

Opcode:008316 
Arguments:0: counter 
  0 = commands executed
  1 = commands rejected
  2 = macro commands executed
  3 = macro commands rejected
  255 = all

Clear selected command counters.

H_SYS_NULL - HENA No Operation

Opcode:006116 
Arguments:none 

Do nothing. Useful for testing command uplink and command echo downlink.

H_SYS_SCOPE - Control Analog Oscilloscope

Opcode:008516 
Arguments:0: channel (0-31) 
  255 = disable

Select a channel to monitor for the analog oscilloscope telemetry data. Any invalid channel number will disable this mode.

H_SYS_SHUT - Shutdown HENA

Opcode:006216 
Arguments:none 

Shutdown HENA in preparation for losing power. Runs the shutdown macro.

H_SYS_SYNC - Enable/Disable Synthetic Synchronization

Opcode:007c16 
Arguments:0: mode 
  0 = disable
  1 = enable

Enable or disable generation of synthetic synchronization pulse. The synthetic pulse should be enabled if the CIDP synchronization pulse fails. Note that since nadir and sun pulses will also be synthesized, HENA will have no idea where the sun really is.

H_SYS_WRAP - Wrapped HENA Command

Opcode:006416 
Arguments:0: opcode (ms) 
 1: opcode (ls) 
 2: arg0 
 3: etc. 

Process the arguments as a command. Note: the wrapped command will be echoed, not the H_SYS_WRAP command.

H_TLM_ALL_ALLOC - Set Total Telemetry Allocation

Opcode:006716 
Arguments:0: allocation (ms) 
 1: allocation (ls) 

Set the number of bytes of telemetry to generate each spin. This command can be used to increase the HENA telemetry allocation during ground testing. An allocation change does not take effect until the next nadir.

H_TLM_PHA_DIV - Set PHA Science Telemetry Allocation

Opcode:006816 
Arguments:0: percentage (0 - 100) 

Set the percentage of PHA science telemetry allocated to HENA-M. The percentage is sampled once per spin.

H_TLM_STAT_RATE - Sets the Status Housekeeping Generation Rate

Opcode:006b16 
Arguments:0: packages (0 - 120) 

Set the rate at which status housekeeping data is collected and transmitted. The rate is measured in packages per spin. A change does not take effect until the next nadir.


home Return to HENA Software User's Guide. Report problems to John Hayes. mail