The DPU receives and processes CCSDS telecommand packets containing one or more commands. The format of the telecommand packet and constituent commands is described in Reference 3.
Most commands are executed as soon as they are received; exceptions are noted in the individual command descriptions. Each command is echoed after it is executed by the DPU. A command echo subpacket containing the opcode and some arguments along with a code summarizing the command's result is downlinked. Most TPU commands are not executed by the DPU but are forwarded to the TPU. The DPU echoes the command after it has been executed by the TPU.
Some default macros are available as soon as the 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 CRS_MAC_DEF and
CRS_MAC_ENDEF. The default macros are shown in the following table.
ID | Action | Commands |
---|---|---|
0 | No action | CRS_CMD_NULL |
1 | Shutdown |
CRS_SPC_PWR OFF CRS_SPC_COOL OFF CRS_IMG_PWR OFF CRS_TPU_MIR_HOME CRS_FLT_MOVE CLEAR CRS_MAC_DELAY 10 CRS_FLT_PWR OFF CRS_MAC_DELAY 50 CRS_TPU_MIR_PWR OFF CRS_PWR_PRI OFF ALL CRS_HTR_MODE OFF ALL |
2 | Imaging - Very Near | CRS_CMD_NULL |
3 | Imaging - Near | CRS_CMD_NULL |
4 | Imaging - Nominal | CRS_CMD_NULL |
5 | Imaging - Far | CRS_CMD_NULL |
6 | Imaging - Very Far | CRS_CMD_NULL |
7 | Imaging - "Bad" Targeting #1 | CRS_CMD_NULL |
8 | Imaging - "Bad" Targeting #2 | CRS_CMD_NULL |
9 | Imaging - "Bad" Targeting #3 | CRS_CMD_NULL |
10 | Closest Approach | CRS_CMD_NULL |
11 | Post Encounter | CRS_CMD_NULL |
12 | Stop Macro Processing |
CRS_MON_CNTRL DISABLE CRS_CA_RESET CRS_MEM_RUN kill all macros |
13 | Heaters Off | CRS_HTR_MODE OFF ALL |
14 | Cover HOPS Off |
CRS_COV_DEPLOY OFF 1/1 CRS_COV_DEPLOY OFF 1/2 CRS_COV_DEPLOY OFF 2/1 CRS_COV_DEPLOY OFF 2/2 CRS_COV_MODE DISABLE |
15 | Filter Wheel Off |
CRS_FLT_PWR OFF CRS_PWR_PRI OFF FW |
16 | Imager Off |
CRS_IMG_PWR OFF CRS_PWR_PRI OFF IM |
17 | Spectrometer Off |
CRS_SPC_PWR OFF CRS_SPC_COOL OFF CRS_PWR_PRI OFF SP |
18 | Tracking Mirror Off | CRS_TPU_MIR_PWR OFF |
19 - 63 | Reserved |   |
64 - 255 | Reserved for mission operations |   |
The CRISP and CFI common commands are described in Reference 3. CRISP-specific commands are defined below.
Reset
closest approach
processing logic.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0174 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 2 | Command length in 32-bit words |
Checksum | 32 |   | 32 bit XOR |
Start
closest approach
processing logic. Also, enable or disable
selection of backup closest approach macro.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x014e |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Good targeting 1 = Bad targeting | Closest approach mode |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Turn power to
cover's
HOP actuators off or on. Turning on the actuator
deploys the cover. With operation 2, the power is removed
automatically from all of the actuators by the DPU software ten seconds
after the cover is open; "open" is defined as either HOP telltale
indicating "extended". With operation 3, the actuator power is removed
after a timeout period; the timeout is a parameter. With operation 4,
the actuator power is removed once the cover is open or the timeout
period elapses. This command will be rejected unless specifically
enabled with the
CRS_COV_MODE
command. Note: the imager primary power
must be turned on for the cover to deploy.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0100 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Operation | 8 | 0 = Off 1 = On 2 = On until deployed 3 = On until timeout 4 = On until deployed or timeout | Operation for the given heater |
Heater | 8 | 0 = HOP 1, heater 1 1 = HOP 1, heater 2 2 = HOP 2, heater 1 3 = HOP 2, heater 2 | Heater |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Turn
cover's
telltale LED power off or on. Note: the imager
primary power
must be turned on for the LEDs to light.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0103 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = On | LED off/on |
LED | 8 | 0 = LED 1 1 = LED 2 255 = both LEDs | LED |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Enable or disable deployment of the
cover.
This is a safety interlock;
the actuators must be enabled before actually powering the actuator
(with
CRS_COV_DEPLOY
).
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0105 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Disable 1 = Enable | Deployment enable/disable |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Move
filter wheel
to indicated position. The filter movement begins at
the end of the current exposure. Note: the FW motor
primary power
must be turned on for the filter wheel to move.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0106 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Filter | 8 | 1 - 10 | Filter wheel position |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Turn
filter wheel
resolver power off or on. Note: the FW motor
primary power
must be turned on for the filter wheel resolver to operate.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0109 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = On | Filter wheel resolver power off/on |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Move
filter wheel
the indicated number of resolver counts. Note: the
FW motor
primary power
must be turned on for the filter wheel to move.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0169 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Counts | 16 | -32768 - 32767 | Filter motion (resolver counts) |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Select
heater
off, on, or controlled by software.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x010a |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = On 2 = Software control | Control mode |
Zone | 8 | 0 = Star camera 1 1 = Star camera 2 2 = Diaphragm 3 = Mirror motor 4 = Bulk 255 = All | Heater control zone |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Set temperature goal of the
heater
in the indicated zone. The
temperature will be held between the given setpoint and
setpoint+hysteresis.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x010c |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Setpoint | 16 | Unsigned integer | Temperature setpoint (A/D units) |
Hysteresis | 8 | Unsigned integer | Hysteresis (A/D units) |
Zone | 8 | 0 = Star camera 1 1 = Star camera 2 2 = Diaphragm 3 = Mirror motor 4 = Bulk 255 = All | Heater control zone |
Checksum | 32 |   | 32 bit XOR |
Select
image
compression algorithm. When executed at time t affects
the exposure taken at time t+1.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0156 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = High-range identity 1 = Low-end identity 2 = Mid-range identity 3 = DN-weighted SNR 4 = Inverse root 2 power 5 = Linear 6 = SNR proportional 7 = Root 2 power | Compression algorithm |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Enable or disable
image
compression. When executed at time t affects
the exposure taken at time t+1.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x010f |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Disable 1 = Enable | Enable/disable image compression |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Set
image
exposure time. An exposure time set at time t effects the
exposure taken at t+1. Exposure times can range from 128 µs to 979.968
ms.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0111 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Time | 16 | 1 - 7656 | Exposure time in 128 µs units |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Select the format of the
images
to be telemetered. When executed at
time t affects the exposure taken at time t+1.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0112 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Format | 8 | 0 = 1024 x 1024 1 = 512 x 512 2 = 256 x 256 3 = 128 x 128 | Image format |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Collect a series of
images
and downlink them. An exposure requested at
time t is taken at t+1. If an image collection series is in progress
and a new
CRS_IMG_IMAGE
is issued, the new command supersedes the old
command.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0150 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Time | 16 | 0 - 65534 = Duration 65535 = Forever | Time in which to collect images (seconds) |
Interval | 16 | 1 - 65535 | Interval between images (seconds) |
Checksum | 32 |   | 32 bit XOR |
Turn
imager
FPU power off or on. Note: the imager
primary power
must be turned on for the imager FPU to activate.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0114 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = On | Imager power off/on |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Set the origin of the
image
to be telemetered. When executed at time t
affects the exposure taken at time t+1.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0117 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
X | 16 | 0 - 1023 | X origin |
Y | 16 | 0 - 1023 | Y origin |
Checksum | 32 |   | 32 bit XOR |
Collect a series of
images
for the
TPU.
An exposure requested at time
t is taken at t+1. If an image collection series is in progress and a
new
CRS_IMG_TRACK
is issued, the new command supersedes the old
command.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0118 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Time | 16 | 0 - 65534 = Duration 65535 = Forever | Time in which to collect images (seconds) |
Interval | 16 | 1 - 65535 | Interval between images (seconds) |
Checksum | 32 |   | 32 bit XOR |
Load the data values into the identified data structure at the location
denoted by the offset. The byte count determines how many load bytes
follow and may be up to 128 bytes. The padding after the data forces
the size of the load to be a multiple of 4 bytes; M+N is always a
multiple of 4.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0023 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 4 - 35 | Command length in 32-bit words |
Id | 8 |
0 = Monitor limits 1 = DPU parameters | Id of data structure |
Byte Count | 8 | 0 - 128 (M) | Number of bytes in data field |
Offset | 16 | Unsigned integer | Byte offset into data structure |
Data | M * 8 |   | Load data |
Pad | N * 8 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Dump the identified data structure.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0025 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Id | 8 |
0 = Monitor limits 1 = DPU parameters | Id of data structure |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Turn primary power off or on to a selected subsystem.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0165 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = On | Primary power off/on |
Board | 8 | 0 = Imager 1 = Spectrometer 2 = FW Motor 255 = All | Power board |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Set the level, and consequently the brightness, of the
spectrometer's
IR calibration lamps.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0155 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Level | 8 | 0 = Dimmest ... 255 = Brightest | Lamp brightness level |
Lamp | 8 | 0 = Lamp 1 1 = Lamp 2 255 = Both lamps | Lamp |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Calibrate
spectrometer
by turning two IR calibration lamps off or on.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x011b |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = On for 1 minute | Lamp power off/on |
Lamp | 8 | 0 = Lamp 1 1 = Lamp 2 255 = Both lamps | Lamp |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Turn
spectrometer
cooler power off or on. There are two possible
temperatures to select when the cooler is on. Note: the spectrometer
primary power
must be turned on for the cooler to operate.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x011d |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = Low (90 K) 2 = High (103 K) | Cooler power off/on and goal |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Select the format of the
spectrometer
images to be telemetered.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x011e |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Format | 8 | 0 = 256 x 256 1 = 128 x 256 2 = 64 x 256 3 = 32 x 256 | Image format |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Turn
spectrometer
FPU power off or on. Note: the spectrometer
primary power
must be turned on for the spectrometer FPU to operate.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0121 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = On | Spectrometer power off/on |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Select a range of bits within each
spectrometer
pixel; these are the bits that will be telemetered.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x016a |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Range | 8 | 0 = Bits 12..1 1 = Bits 13..2 2 = Bits 11..0 | Image range |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Control the
spectrometer
collection rate. Note: even if no spectra are
being telemetered, the spectrometer will be cycled at this rate.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0122 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 1 - 5 | Collection rate (Hz) |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Set the origin of the
spectrometer
image to be telemetered.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0124 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Origin | 8 | 0 - 255 | Origin in spatial dimension |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Collect
spectra.
The collection will occur for the indicated time; a
special value will produce continuous collection. A request for
spectra made at time t starts at t+1. The number of spectra actually
taken depends on the commanded spectrometer rate
(CRS_SPC_RATE).
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0127 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Time | 16 | 0 - 65534 = Duration 65535 = Forever | Time in which to collect spectra (seconds) |
Pad | 16 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Enable or disable temperature monitoring in the
spectrometer
front end.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0163 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Disable 1 = Enable | Enable/disable spectrometer temperature monitoring |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Select the aim algorithm used by TPU
image processing
to find the comet.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x014d |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Comet 1 = Brightest object | Aim algorithm |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Reset the TPU's attitude estimation algorithm.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x016c |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 2 | Command length in 32-bit words |
Checksum | 32 |   | 32 bit XOR |
Set the origin of the region interest in the
tracking
image.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0171 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
X | 16 | 0 - 1023 | X origin |
Y | 16 | 0 - 1023 | Y origin |
Checksum | 32 |   | 32 bit XOR |
Set the zoom mode of the
tracking
image.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0172 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Zoom | 8 | 0 = 8x8 rebin 1 = 4x4 rebin 2 = 2x2 rebin 3 = 1x1 rebin | Zoom mode |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Calculate the checksum of
TPU
memory at given address. The checksum is
the 32-bit two's complement sum of the memory indicated. The results
are downlinked in a subpacket.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0128 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 4 | Command length in 32-bit words |
Source | 32 | Unsigned integer | Source address |
Byte Count | 32 | Unsigned integer | Number of bytes to check |
Checksum | 32 |   | 32 bit XOR |
Copy
TPU
memory from source to destination. The source or destination
can be either RAM or EEPROM. The result is undefined if the source and
destination regions overlap.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x012b |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 5 | Command length in 32-bit words |
Source | 32 | Unsigned integer | Source address |
Destination | 32 | Unsigned integer | Destination address |
Byte Count | 32 | Unsigned integer | Number of bytes to copy |
Checksum | 32 |   | 32 bit XOR |
Load memory to the
TPU.
The byte count determines how many load bytes
follow and may be up to 128 bytes. The padding after the data forces
the size of the load to be a multiple of 4 bytes; M+N is always a
multiple of 4.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x012d |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 4 - 36 | Command length in 32-bit words |
Address | 32 | Unsigned integer | Starting address |
Byte Count | 8 | 0 - 128 (M) | Number of bytes in data field |
Spare | 24 |   |   |
Data | M * 8 |   | Load data |
Pad | N * 8 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Dump
TPU
memory from given address.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x012e |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 4 | Command length in 32-bit words |
Source | 32 | Unsigned integer | Source address |
Byte Count | 32 | Unsigned integer | Number of bytes to dump |
Checksum | 32 |   | 32 bit XOR |
Abort the current
TPU
memory dump.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0130 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 2 | Command length in 32-bit words |
Checksum | 32 |   | 32 bit XOR |
Run a program at the given
TPU
address. The program must either
execute very quickly (so as not to hold up the command handler) or must
take over completely.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0133 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Address | 32 | Unsigned integer | Program start address |
Checksum | 32 |   | 32 bit XOR |
Load the data values into the identified data structure at the location
denoted by the offset. The byte count determines how many load bytes
follow and may be up to 128 bytes. The padding after the data forces
the size of the load to be a multiple of 4 bytes; M+N is always a
multiple of 4.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0135 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 4 - 35 | Command length in 32-bit words |
Id | 8 |
0 = Mirror parameters 1 = Aim parameters 2 = CA parameters 3 = Tracker offset 4 = Tracker control 5 = Tracker target 6 = Tracker EKF 7 = Tracker Cheby #1 8 = Tracker Cheby #2 9 = Tracker Cheby #3 10 = Tracker mirror 11 = Tracker gate 12 = Tracker align | Id of data structure |
Byte Count | 8 | 0 - 128 (M) | Number of bytes in data field |
Offset | 16 | Unsigned integer | Byte offset into data structure |
Data | M * 8 |   | Load data |
Pad | N * 8 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Dump the identified data structure.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0136 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Id | 8 |
0 = Mirror parameters 1 = Aim parameters 2 = CA parameters 3 = Tracker offset 4 = Tracker control 5 = Tracker target 6 = Tracker EKF 7 = Tracker Cheby #1 8 = Tracker Cheby #2 9 = Tracker Cheby #3 10 = Tracker mirror 11 = Tracker gate 12 = Tracker align | Id of data structure |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Sets the
angle
of the target to use when in slew mode (see
CRS_TPU_MIR_MODE).
The angle specifies the imager's look direction; a
zero angle looks along the nose of the instrument. Note that this is
not the same as the mirror shaft angle. The actual mirror shaft angle
used will depend on the commanded angle and mirror side (see
CRS_TPU_MIR_SIDE).
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0139 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Angle | 32 | IEEE-754 single | Slew target angle (degrees) |
Checksum | 32 |   | 32 bit XOR |
Search for
mirror
home fiducial. Once found, move the mirror to 90 degrees,
and set the mirror mode to "hold".
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x013a |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 2 | Command length in 32-bit words |
Checksum | 32 |   | 32 bit XOR |
Sets the control mode of the tracking
mirror.
When off, the mirror
motor is not driven. In hold mode, the mirror is held at the current
position. In slew mode, the mirror is held at a commanded angle (see
CRS_TPU_MIR_ANGLE).
In scan mode, the mirror follows a profile
computed by the tracker. Whenever the mirror mode is commanded, the
mirror controller is reset.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x013c |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = Hold 2 = Slew 3 = Scan | Mirror mode |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Turn
mirror
motor power off or on. Turning off the motor power also
sets the mirror control mode to "off" (see
CRS_TPU_MIR_MODE).
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0159 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = On | Mirror motor power off/on |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Selects which side of the
mirror
to use.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x013f |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Side | 8 | 0 = A (science) 1 = B (tracking) | Mirror side |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Set the target offset
angle.
If automatic offset adjustment is enabled
(see
CRS_TPU_OFF_MODE),
the angle will be modified at a commandable
rate (see
CRS_TPU_OFF_RATE).
Note that the angle corresponds to the
line-of-sight target angle rather than the mirror shaft angle.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0142 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Angle | 32 | IEEE-754 single | Target offset angle (degrees) |
Checksum | 32 |   | 32 bit XOR |
Enable or disable automatic offset adjustment. When enabled the offset
is adjusted based on the last commanded initial angle
(CRS_TPU_OFF_ANGLE)
and the rate
(CRS_TPU_OFF_RATE).
When disabled,
the offset is held at the last computed offset; when re-enabled, the
offset adjust will pick up where it left off. While disabled, the
offset can be commanded to a fixed position via
CRS_TPU_OFF_ANGLE).
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0144 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Disable 1 = Enable | Enable/disable automatic offset adjustment |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Set the automatic offset rate. The mirror is adjusted by the commanded
rate. This rate is only used when automatic offset adjustment is
commanded
(CRS_TPU_OFF_MODE).
Note that this rate applies to the
line-of-sight target angle and not the mirror shaft angle.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0147 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Rate | 32 | IEEE-754 single | Target offset rate (degrees/second) |
Checksum | 32 |   | 32 bit XOR |
Enable or disable test mode. In test mode, the tracking image is
loaded from a test port rather the FPU. This is only useful during
testing on the ground.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0166 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Disable 1 = Enable | Test mode enable/disable |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
If there is a partially filled subpacket packet in the
TPU,
generate a
flush subpacket so that the packet will be downlinked.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x015a |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 2 | Command length in 32-bit words |
Checksum | 32 |   | 32 bit XOR |
Enable or disable automatic flushing of partially filled subpacket
packets in the
TPU.
If enabled, the TPU will try to send a subpacket
packet every other second, even if the packet has not been completely
filled. This is most useful during ground testing since it gives a
low-latency response.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x015c |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Disable 1 = Enable | Enable/disable automatic flush |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Select
tracking
algorithm.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0148 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Off 1 = Fixed target 2 = Moving target | Tracking algorithm |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Set desired target position on CCD. The
tracker
tries to place the target at the specified position.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x0153 |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 4 | Command length in 32-bit words |
X | 32 | IEEE-754 single | X goal position (pixels) |
Y | 32 | IEEE-754 single | Y goal position (pixels) |
Checksum | 32 |   | 32 bit XOR |
Enable or disable closed-loop
tracking.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x014b |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Disable 1 = Enable | Enable/disable closed-loop tracking |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Enable or disable
tracking
telemetry
production.
Name | Length (bits) | Value | Description |
---|---|---|---|
Opcode | 16 | 0x016f |   |
Macro? | 1 | 0 = Execute 1 = Append to macro | Macro load bit |
Length | 15 | 3 | Command length in 32-bit words |
Mode | 8 | 0 = Disable 1 = Enable | Enable/disable tracking telemetry |
Pad | 24 | 0 | Pad up to 32-bit boundary |
Checksum | 32 |   | 32 bit XOR |
Return to CRISP Software User's Guide.
Report problems to John Hayes.