MIPS CSMM Configuration

Last updated: 2003-08-21 by C. W. Engelbracht

Introduction

The MIPS CSMM (Cryogenic Scan Mirror Mechanism) is configured by setting the values of a series of registers. These registers control the output of a pair of DACs (Digital to Analog Converters) that, in turn, control the servo mechanism that drives the scan mirror. Near the center position, the coarse DAC has a resolution of about 17" per LSB (Least Significant Bit) while the fine DAC has a resolution 8 times smaller, about 2" per LSB. These are CSMM deflection angles (the conversion to angles on the sky is discussed below) and they vary with position, as discussed below.

Configuration Parameters

The registers used to configure the CSMM are set using CE (Combined Electronics) command parameters described below:

Table 1: CSMM Configuration Parameters

Parameter

Command

DAC

Values

Comment

posindex

cescanpos

coarse

0 - 127

coarse position for even-numbered DCEs (i.e., scanpos1)

scanmode

cescancon

N/A

0(chop)/1(ramp)

disable/enable ramping motion

rampdir

cescancon

N/A

0(pos)/1(neg)

set direction of ramping motion (ignored in "chop" mode)

scanpos2

cescancon

coarse

0 - 4095

coarse position for odd-numbered DCEs (0 = scanpos1)

relpos1

cescancon

fine

0 - 4095

fine position for even-numbered DCEs

relpos2

cescancon

fine

0 - 4095

fine position for odd-numbered DCEs

stepoffset

cescancon

fine

-2047 - 2047

fine position cumulatively added to each DCE

rampslope

cescancon

fine

0 - 511

rate of ramping motion (ignored in "chop" mode)

stimcycle

cegestim

N/A

1 - 63

number of DCEs in each repeat of pattern

The values for the various posindex entries are indicated in Table 2. In response to a CESCANPOS command, the flight software sets both scanpos1 and scanpos2 to the values indicated in Table 2, and sets relpos1 and relpos2 to their central values of 0x800 (2048 decimal). Posindex values not listed are not yet defined and are currently set to 0x800 (2048 decimal).

Table 2: Posindex Values

Posindex Hex Decimal Comment
0 79D 1949 SM_CURRENT = 0
1 7D7 2007 Optical zero
2 7D7 2007 Optical zero
3 7D7 2007 Optical zero
4 748 1864 WFOV Pos 1 - 0.75deg
5 75B 1883 WFOV Pos 2 - 0.65deg
6 76E 1902 WFOV Pos 3 - 0.55deg
7 781 1921 WFOV Pos 4 - 0.45deg
8 794 1940 WFOV Pos 5 - 0.35deg
9 7A7 1959 WFOV Pos 6 - 0.25deg
10 7BA 1978 WFOV Pos 7 - 0.15deg
11 7CD 1997 WFOV Pos 8 - 0.05deg
12 7E1 2017 WFOV Pos 9 +0.05deg
13 7F4 2036 WFOV Pos 10 +0.15deg
14 807 2055 WFOV Pos 11 +0.25deg
15 81A 2074 WFOV Pos 12 +0.35deg
16 82D 2093 WFOV Pos 13 +0.45deg
17 840 2112 WFOV Pos 14 +0.55deg
18 853 2131 WFOV Pos 15 +0.65deg
19 866 2150 WFOV Pos 16 +0.75deg
22 ACD 2765 70 dark1 - 60
23 AE1 2785 70 dark1 - 40
24 AF5 2805 70 dark1 - 20
25 B1D 2845 70 dark1 + 20
26 B31 2865 70 dark1 + 40
27 B45 2885 70 dark1 + 60
28 53D 1341 70 dark2 - 60
29 551 1361 70 dark2 - 40
30 565 1381 70 dark2 - 20
31 58D 1421 70 dark2 + 20
32 5A1 1441 70 dark2 + 40
33 5B5 1461 70 dark2 + 60
36 C7E 3198 24 +Y POM Edge
37 59B 1435 24 -Y POM Edge
38 9CA 2506 70 WF POM Edge
39 508 1288 70 NF POM Edge
40 95A 2394 160 POM Edge
41 C94 3220 SED Nominal Start
61 36B 875 70um NFOV Nominal
62 3B6 950 70um NFOV IOC SCR398
101 2B2 690 24um dark
102 B09 2825 70um dark 1
103 579 1401 70um dark 2
104 C8A 3210 160um dark
105 37B 891 70um FF stim (WFOV)
106 708 1800 70um FF stim (SED)
111 27F 639 -7.40deg
112 33B 827 -6.41deg
113 3F7 1015 -5.43deg
114 4B3 1203 -4.44deg
115 56F 1391 -3.45deg
116 62B 1579 -2.47deg
117 6E7 1767 -1.48deg
118 7A3 1955 -0.49deg
119 85F 2143 +0.49deg
120 91B 2331 +1.48deg
121 9D7 2519 +2.47deg
122 A93 2707 +3.45deg
123 B4F 2895 +4.44deg
124 C0B 3083 +5.43deg
125 CC7 3271 +6.41deg
126 D83 3459 +7.40deg
127 800 2048 Reserved for SCANABS Command

CSMM Equations

CSMM motion is described by a pair of similar equations that use the parameters in Table 1. The first equation is used for even-numbered DCEs (starting with 0) and the second is used for odd-numbered DCEs. Note that relpos1, relpos2, and stepoffset use the fine DAC (see Table 1) which is a factor of 8 smaller (in "/LSB) than the coarse DAC used by scanpos1 and scanpos2.

Equation 1: scanpos1 + relpos1 + stepoffset * (DCE# +1) (DCE# = 0, 2, 4...)
Equation 2: scanpos2 + relpos2 + stepoffset * (DCE# +1) (DCE# = 1, 3, 5...)

For example, if posindex is set to 1 (which would set scanpos1 to 2007), scanmode to "chop", scanpos2 to 0, relpos1 to 2048, relpos2 to 3000, stepoffset to -50, stimcycle to 6, numdce to 6, and framecnt to 2 (so that the DCE duration was 3 MIPS seconds) the sequence of scan mirror positions (in the units used by SCANABS, i.e., the coarse DAC) would be as shown below, where the SCANABS positions are printed on the left and plotted one per DCE on the right:

2001
2114
1988
2101
1976
2088

Figure 1

If the CSMM is configured in "ramp" mode, the starting point of each DCE is computed as above and the ramp motion is added according to the "rampslope" (which uses the fine DAC - see Table 1) parameter.

N.B. The CSMM should never be configured so that it violates its operational range by running into the hardstops at SCANABS 610 and 3486. Doing so could result in damage to the CSMM. Furthermore, the behavior of the CSMM is undefined if it is driven outside the 0 - 4095 range of the fine DAC, so don't do that, either.

A perl script which computes the CSMM motion based on these equations and the parameters in Table 1 can be found here. The script will optionally print or plot the results and will warn you if you violate the hard stops or the fine DAC range. Please use this script or some equivalent test before trying out an untested CSMM configuration.

CSMM Gain

The CSMM deflection angle as a function of DAC count (e.g., the coarse DAC used by SCANABS) is not quite linear. This is shown in Figure 2, where the red points indicate the data as recorded in this spreadsheet (csv,xls) and the blue lines fits to those data. The top plots show the CSMM angle as a function of SCANABS along with linear fits to those data, while the bottom plots show the derivatives of those data (i.e., the CSMM gain) along with quadratic fits. The fits to the CSMM gain are listed below. The perl script which computed these fits is found here (PDL and perl-PGPLOT modules required to run).

Figure 2: CSMM Gain (Coarse DAC)

The CSMM gain data are fit by the following equations, where x is the coarse DAC (i.e., SCANABS) value:

Equation 3 (CE1): 2.619e+01 - 8.828e-03 * x + 2.213e-06 * x2
Equation 4 (CE2): 2.649e+01 - 8.817e-03 * x + 2.145e-06 * x2

Nominal gain values for the most commonly-used modes are listed in Table 3. The values in this table are averages in the 200-300 SCANABS count region around the nominal SCANPOS values from Table 2.

Table 3: Nominal CSMM Gain Values (Fine DAC)

Mode

Gain (CSMM "/LSB)

scan and most photometry modes

2.17

fine-scale 70µm photometry

2.52

SED

2.62

Photometry/SED Configuration

Photometry (and SED) mode configuration is driven by 4 parameters: 1) the array pixel scale, 2) the number of DCEs in the dither pattern, 3) the separation between DCEs 0 and 1, and 4) the separation between DCEs 0 and 2. The choice of CSMM parameters is made using the following rules:

Several constants are needed to convert the descriptions of the source positions in the various observing modes (e.g., in the MIPS SDD (System Description Document)), as captured below:

Table 4: Useful Constants for CSMM Configuration

Description Value
optical gain (arcsec in CSMM space / arcsec on sky) 32.635
24µm pixel scale 2.55 arcsec
70µm coarse pixel scale 9.84 arcsec
70µm fine pixel scale 4.99 arcsec
160µm pixel scale 15.99 arcsec
SED pixel scale 10.13 arcsec
average fine DAC gain in wide field mode 2.17 arcsec/LSB
average fine DAC gain in narrow field mode 2.52 arcsec/LSB
average fine DAC gain in SED mode 2.62 arcsec/LSB

A perl script which uses these rules and constants to compute CSMM parameters can be found here. The descriptions of the various photometry modes are summarized in Table 5, and the computed parameters are summarized in Table 7.

Table 5: Photometry/SED Mode Descriptions

Mode Number of Dither Positions DCE 1 - DCE 0 DCE 2 - DCE 0
24µm small field 7 -46 pixels 4.5 pixels
24µm large field 5 -3 pixels 1.5 pixels
70µm small field 5 -7 pixels 3.5 pixels
70µm large field, top 6 1.9 arcminutes -2.5 pixels
70µm large field, bottom 6 -1.9 arcminutes 2.5 pixels
70µm fine scale, small field 8 2.5 arcminutes -1.5 pixels
70µm fine scale, large field, top 8 2.5 arcminutes -1.5 pixels
70µm fine scale, large field, bottom 8 -2.5 arcminutes 1.5 pixels
160µm small field 5 -2 pixels 1 pixel
160µm large field, top 2 2.5 arcminutes 0
160µm large field, bottom 2 -2.5 arcminutes 0
SED, 1' chop 7 1 arcminutes 0
SED, 2' chop 7 2 arcminutes 0
SED, 3' chop 7 3 arcminutes 0
SED, -1' chop 7 -1 arcminutes 0

A sample plot of CSMM positions for one stimcycle in the 24µm small-field photometry mode is shown in Figure 3.

Figure 3

Scan Configuration

Scan mode configuration is driven by 5 parameters: 1) the interval between stimflashes, 2) the DCE duration, 3), the 160µm pixel scale, 4) whether the map is filled (no gaps at 160µm) or sparse (gaps at 160µm), and 5) the scan direction (forward (positive) or reverse (negative)). Once these parameters are selected, the others are fixed by the necessity of having the CSMM get far enough ahead of the telescope in one stimcycle to allow room for a stimflash DCE. This means, for example, that we are not free to adjust the scan rate to match the spacecraft motion - the spacecraft must adjust to match the CSMM motion.

A perl script which computes CSMM parameters for scan mode based on input like that in Table 6 can be found here.

Table 6: Scan Mode Descriptions

Mode Stimcycle Duration DCE Duration Map Type
fast scan 120s 3s sparse
medium scan 120s 4s filled
slow scan 120s 10s filled

Sample plots of CSMM positions for one stimcycle in fast and slow scans can be found in Figure 4.

Figure 4: CSMM positions for a reverse leg in fast scan (left panel) and slow scan (right panel)

Summary

Table 7: MIPS Observing Mode CSMM Parameters

Mode Posindex Scanmode Rampdir Scanpos2 Relpos1 Relpos2 Stepoffset Rampslope Stimcycle
24µm small field 1 0 0 0 1510 3360 -86 0 7
24µm large field 1 0 0 0 2078 2222 -29 0 5
70µm small field 1 0 0 0 2307 3602 -259 0 6
70µm large field, top 1 0 0 0 2166 266 185 0 7
70µm large field, bottom 1 0 0 0 1930 3830 -185 0 7
70µm fine scale, small field 61 0 0 0 2780 789 48 0 9
70µm fine scale, large field, top 61 0 0 0 2780 789 48 0 9
70µm fine scale, large field, bottom 61 0 0 0 1316 3307 -48 0 9
160µm small field 1 0 0 0 2168 2769 -120 0 6
160µm large field, top 1 0 0 0 3176 920 0 0 2
160µm large field, bottom 1 0 0 0 920 3176 0 0 2
SED, 1' chop 41 0 0 0 2422 1675 0 0 7
SED, 2' chop 41 0 0 0 2796 1301 0 0 7
SED, 3' chop 41 0 0 0 3169 927 0 0 7
SED, -1' chop 41 0 0 0 1674 2421 0 0 7
fast scan, forward leg 1 1 0 0 2048 2048 -29 39 33
fast scan, reverse leg 1 1 1 0 2048 2048 29 39 33
medium scan, forward leg 1 1 0 0 2048 2289 -19 102 25
medium scan, reverse leg 1 1 1 0 2048 1807 19 102 25
slow scan, forward leg 1 1 0 0 2048 2288 -44 252 11
slow scan, reverse leg 1 1 1 0 2048 1808 44 252 11
24µm dark 101 0 0 0 2048 2048 0 0 depends on DCE time
70µm dark 1 102 0 0 0 2048 2048 0 0 depends on DCE time
70µm dark 2 103 0 0 0 2048 2048 0 0 depends on DCE time
160µm dark 104 0 0 0 2048 2048 0 0 depends on DCE time