MONSOON/Torrent Software Setup Guide
MNSN-AD-08-0005 MONSOON Software Setup Guide [1] Rev 2.1
Torrent Software Description
TRNT-AD-08-0001 Torrent Software System Description [2] Rev 0
Acquisition Software Client
TRNT-AD-08-0002 borg and mborg clients [3] Rev 0
System Configuration Tools
TRNT-AD-08-0006 Software User Manual [4] Rev 0
Attribute Extraction Tool
TRNT-AD-08-0003 Assimilate [5] Rev 1.2
Attribute Collector Tool
TRNT-AD-08-0004 Collector [6] Rev 1.1
Torrent Sequencer description
TRNT-AD-08-0012 Torrent Sequencer Description [7] Rev 0
Sequencer Assembler
Torrent assembler [8] Rev 6.0
The calibration EEPROMs for Torrent systems are contained on each of the component electronics boards. A fully populated Torrent system will have five Calibration EEPROMs, four in the Controller box and one in the TSM box. There is one EEPROM on the LCB, one on the PSM and one on each of the AFE boards.
These EEPROMs are currents arranged as 128 pages of 16 words each 32 bits wide. Pages 0 and 1 are ID pages that contain information to identify and help verify the data stored in the EEPROM.
Data stored in the EEPROMS is all integer values. Where a floating point value is desired we store the value as int( value * 1000 ) This limits the range of values that can be stored to -2,147,483.000 to 2,147,483.000. We could not think of any requirement that required a greater range
A copy of the data in the EEPROMs for each system is kept in a set of EEPROM Mirror Files stored in the $MONSOON_CFG/_sysName configuration directory for the system. Changing out a DHE Controller will require obtaining the correct mirror files for the new controller from the Torrent configuration database
Word # | Word Name | Board | Default Value | Long Name | Comments |
---|---|---|---|---|---|
0 | PSTORFORMAT | ALL | 0x00000001 | EEPROM Storage Format | The Code for the Format of the data stored in this EEPROM (1) |
1 | MDLIDCODE | LCB | 0x00000010 | Module ID Code | The code number assigned to the LCB boards (16) |
PSM | 0x00000020 | The code number assigned to the PSM boards (32) | |||
CCD AFE | 0x00000040 | The code number assigned to the CCD AFE boards (64) | |||
IR AFE | 0x00000050 | The code number assigned to the IR AFE boards (80) | |||
TSM Utility | 0x00000030 | The code number assigned to the IR AFE boards (48) | |||
2 | MDLVARCODE | ALL | 0x00000001 | Module Variant Code | The Variant ## of a board that differs from a standard board (1) |
3 | MDLREVNUM | ALL | 0x00000001 | Module Release Number | The release number for the module being read all still at release 1 |
4 | MDLSERNUM | ALL | 0x0000xxxx | Module Serial number | The serial number of this board. Currently not in use |
5 | SYSFPGACODE | ALL | 0x000000CC | System FPGA Code Version | The FPGA code version used to write this EEPROM Currently 204 |
6 - 15 | Not Used | ALL | 0x00000000 | Not Used | Locations Reserved |
Word # | Word Name | Board | Default Value | Long Name | Comments |
---|---|---|---|---|---|
0 | MDLLASTTESTDATE | ALL | 20090316 | Module's Last Test Date | The date of the last time this board was tested (various) |
1 | LASTWRTDATE | ALL | 20110318 | EEPROM Last Written Date | The date of the last time this EEPROM was written (various) |
2 | VLDPAGECNT | ALL | 0x00000005 | Valid Page Count | The number of pages in the EEPROM that contain Valid Data (various) |
3 - 11 | Not Used | ALL | 0x00000000 | Not Used | Locations Reserved |
12 - 15 | CRC0 - CRC3 | ALL | 7FE163FB6 | CRC code portion 0 - 3 | The 128 byte representation of the MD5Sum calculated on the Data in all valid pages excepting Page 1 words 12 through 15 (various) |
This is a basic guide to setting up a system configuration from scratch ...
In big-boy
1. run bldMNSN
to setup distribution directory structure
2. run assimilate -version 207 -sysName mySystemName
-version points to the version of firmware that is in the hardware -sysName points to a common directory of form /MNSN/soft_dev/cfg/_mySystemName/.dscFiles and /MNSN/soft_dev/cfg/_mySystemName/.eep which are used to contain the Torrent specific configuration files
3. run arrayDesc -type genericdetectorType -arrayID thisDetectorName -fpName mySystemName for as many detectors that make up the focal plane, changing the -arrayID value for each one.
-type identifies a generic detector description currently available types are e2v44-82 e2v231-84 lbnl234 STA1042 -arrayID is the unique identifier for this detector, usually the serial number or a positional key -fpName is the system configuration name
see file big-boy:/MNSN/soft_dev/Torrent_Text/sysName.ini.tmplt
The values in the template file will be replaced by the "collector" with values read from the system TSM eeprom
see file big-boy:/MNSN/soft_dev/Torrent_Text/sysName_DefaultSetup.mod.tmplt
The values in the template file will be replaced by the "collector" with values read from the system TSM eeprom.
Reading out Regions of Interest (ROI) for CCD focal planes can be extremely complex. The inter-connection between number of outputs per detector, number and orientation of detectors and pixel binning can result in scenarios that are too complex for the simple sequencer processing available in MONSOON/Torrent systems.
Four user attributes are used to describe a region of interest. These attributes are all described by pixel positions or counts given assuming no binning is being done. The values loaded down to the sequencer are modified to take into account any requested binning values.
The following explains the restrictions on ROI definitions made to simplify ROI handling to prevent some of this complication.
There are sixteen 16-bit loop registers for available in the Sequencer to enable code flow control. The table below shows their current default usage. While these registers are general purpose loop registers using them for other than their reserved purpose will require the writing of a custom Detector library routine (detCalcPixels) to load the registers with correct values before taking an image.
The generic_CCD and basciCCD detector libraries use these assignments, but load the seqColBin register with one less than the requested number of pixels to be binned and sets the user Bit serBinEnbl to 1 if serial binning is active. The chileCCD detector library uses these assignments, and loads the seqColBin register with the requested number of pixels to be binned and does not use serBinEnbl user bit.
Register number | FPGA Register name | CCD User Register name | CCD Sequencer Usage | IR User Register name | IR Sequencer Usage | Comments |
---|---|---|---|---|---|---|
0 | SeqLoopReg[0] | seqRowCount | #NROW | seqRowCount | #ROW_CNT | Number of rows to readout i.e. for CCDs the number of parallel or slow shifts |
1 | SeqLoopReg[1] | seqColCount | #NCOL | seqColCount | #COL_CNT | Number of columns to readout i.e. for CCDs the number of serial or fast shifts |
2 | SeqLoopReg[2] | seqRowBin | #NPBINS | seqFSamples | #FSAMPLES | Number of rows to bin during CCD readout or number of Fowler samples in IR Readout |
3 | SeqLoopReg[3] | seqColBin | #NSBINS | seqDigAvg | #DIG_AVG | Number of columns to bin during CCD readout or number of Digital Average samples in IR Readout |
4 | SeqLoopReg[4] | seqRoiRow | #ROIROW | seqCoAdds | #COADDS | Number of rows to skip during CCD ROI readout or number of Co-Adds in IR Readout |
5 | SeqLoopReg[5] | seqRoiCol | #ROICOL | seqLoopDly | #LOOP_DLY | Number of columns to skip during CCD ROI readout or read loop delay factor in Fowler IR Readout |
6 | SeqLoopReg[6] | seqRoiRskip | #RROWSKP | seqSweeps | #SWEEPS | Number of rows to skip after ROI readout is Complete or number of reset cycles before integration in IR mode |
7 | SeqLoopReg[7] | seqRoiCskip | #RCOLSKP | seqSyncResets | #SYNC_RESETS | Number of columns to skip on each row after the ROI columns are read out or number of resets to do when syncing two DHE's |
8 | SeqLoopReg[8] | seqFocusShft | #FOCUS_SHFT | seqRstTime | #RST_TIME | number of rows to shift image between focus exposures |
9 | SeqLoopReg[9] | seqPreScan | #XPRE | Not Assigned | Not Assigned | number of prescan pixels to read (Usually not converted or transferred to the PAN |
10 | SeqLoopReg[10] | seqShtrDly | #SHUTDLY | Not Assigned | Not Assigned | The time in ms to delay while the shutter opens or closes if these times are different use an unassigned register for the closing time. |
11 | SeqLoopReg[11] | OvrScanRowCnt | #OSROWCNT | Not Assigned | Not Assigned | Number of binned rows to convert after reading ROI rows and skipping unread active rows |
12 | SeqLoopReg[12] | OvrScanColCnt | #OSCOLCNT | Not Assigned | Not Assigned | Number of binned pixels to convert after reading ROI pixels skipping unread active pixels |
13 | SeqLoopReg[13] | Not Assigned | Not Assigned | Not Assigned | ||
14 | SeqLoopReg[14] | Not Assigned | Not Assigned | Not Assigned | ||
15 | SeqLoopReg[15] | Not Assigned | Not Assigned | Not Assigned |
The MONSOON/Torrent systems have in the sequencer Control register four user settable bits that can be used with The conditional jump instruction to steer the ucode execution. The following are the current default usage for these bits.
User bit number | FPGA Attribute name | CCD User Attribute name | CCD Sequencer Usage | IR User Attribute name | IR Sequencer Usage | Comments |
---|---|---|---|---|---|---|
0 | SeqUserBit0 | seqContRun | #CONT_RUN | seqContRun | #CONT_RUN | Debug function - run process indefinitely after start exposure received |
1 | SeqUserBit1 | serBinEnbl | #SBIN_ENB | Not Assigned | #IDLERST_ENBL | Enable serial binning in CCD readout or enable array resets during idle time for IR apps. |
2 | SeqUserBit2 | rdRoiEnbl | #RDROI_ENB | digAvgEnb | #DIGAVG_ENBL | Tells the sequencer a ROI readout is in progress for CCDs or enable digital averaging in IR apps. |
3 | SeqUserBit3 | Not Assigned | Not Assigned | Not Assigned | #ROWRST_ENBL | Enable Row Reset mode in IR apps. |
Links
[1] http://www.ctio.noao.edu/noao/sites/default/files/instruments/Controllers/MONSOON/Technical_Documents/Torrent/Software/MNSN-AD-08-0005_MONSOON_Software_Setup_Rev_2.1.pdf
[2] http://www.ctio.noao.edu/noao/sites/default/files/instruments/Controllers/MONSOON/Technical_Documents/Torrent/Software/TRNT-AD-08-0001%20Software%20System%20Description%20Rev%200.pdf
[3] http://www.ctio.noao.edu/noao/sites/default/files/instruments/Controllers/MONSOON/Technical_Documents/Torrent/Software/TRNT-AD-08-0002%20borg%20R0.pdf
[4] http://www.ctio.noao.edu/noao/sites/default/files/instruments/Controllers/MONSOON/Technical_Documents/Torrent/Software/TRNT-AD-08-0006%20Software%20User%20Manual%20R0.pdf
[5] http://www.ctio.noao.edu/noao/sites/default/files/instruments/Controllers/MONSOON/Technical_Documents/Torrent/Software/TRNT-AD-08-0003%20Assimilate%20Rev1.2.pdf
[6] http://www.ctio.noao.edu/noao/sites/default/files/instruments/Controllers/MONSOON/Technical_Documents/Torrent/Software/TRNT-AD-08-0004_Torrent_Collector_Rev_1.1.pdf
[7] http://www.ctio.noao.edu/noao/sites/default/files/instruments/Controllers/MONSOON/Technical_Documents/Torrent/Software/TRNT-AD-08-0012%20Torrent%20Sequencer%20Description%20R0.pdf
[8] http://www.ctio.noao.edu/noao/sites/default/files/instruments/Controllers/MONSOON/Technical_Documents/Torrent/Software/TRNT_Assembler_Ver_6.zip