Controller Configuration Parameters
Syntax
See Below For Full List
Type
24-bit integer
Required Headers
CController.h
Remarks
Every controller timing board contains a 24-bit word known as the Controller Configuration. The bits of this word determine what hardware options are available. These options are ONLY available after a timing board file (.lod) or application has been downloaded on the controller. Although the timing board is responsible for the controller configuration word, some of the parameter commands may go to the utility board.

The user application reads the controller configuration word by sending an 'RCC' command to the timing board at the end of a controller setup sequence. In Voodoo, a tabbed window is created using the results of the ‘RCC’ command. Each tab pane corresponds to one of the available hardware options and allows parameters to be modified. Modified values are not permanently saved on the timing board EEPROM and will need to be applied every time one of the following occurs:
   -----------------------------------------------
   Controller Configuration Bit Definitions
   -----------------------------------------------

    BIT #'s		FUNCTION
    2,1,0		Video Processor
    			000	CCD Rev. 3
    			001	CCD Gen I
    			010	IR Rev. 4
    			011	IR Coadder
    			100	CCD Rev. 5, Differential input
    			101	8x IR
    
        4,3		Timing Board
    			00	Rev. 4, Gen II
    			01	Gen I
    			10	Rev. 5, Gen III, 250 MHz
    
        6,5		Utility Board
    			00	No utility board
    			01	Utility Rev. 3
    
        7		Shutter
    			0	No shutter support
    			1	Yes shutter support
    
        9,8		Temperature readout
    			00	No temperature readout
    			01	Polynomial Diode calibration
    			10	Linear temperature sensor calibration
    
        10		Subarray readout
    			0	Not supported
    			1	Yes supported
    
        11		Binning
    			0	Not supported
    			1	Yes supported
    
        12		Split-Serial readout
    			0	Not supported
    			1	Yes supported
    
        13		Split-Parallel readout
    			0	Not supported
    			1	Yes supported
    
        14		MPP = Inverted parallel clocks
    			0	Not supported
    			1	Yes supported
    
    16,15		Clock Driver Board
    			00	Rev. 3
    			11	No clock driver board (Gen I)
    
    19,18,17		Special implementations
    			000 	Somewhere else
    			001	Mount Laguna Observatory
    			010	NGST Aladdin
    			xxx	Other	
Below are the constant definitions for the above parameters:
     CCDVIDREV3B    0x000000		// CCD Video Processor Rev. 3
     ARC41          0x000000	
     VIDGENI        0x000001		// CCD Video Processor Gen I
     IRREV4         0x000002		// IR Video Processor Rev. 4
     ARC42          0x000002	
     COADDER        0x000003		// IR Coadder
     ARC44          0x000003	
     CCDVIDREV5     0x000004		// Differential input CCD video Rev. 5
     ARC45          0x000004
     IR8X           0x000005		// 8x IR
     ARC46          0x000005		// 8-channel IR video board
     ARC48          0x000006		// 8-channel CCD video board
     ARC47          0x000007		// 4-channel CCD video board
     TIMREV4        0x000000		// Timing Revision 4 = 50 MHz
     ARC20          0x000000	
     TIMGENI        0x000008		// Timing Gen I = 40 MHz
     TIMREV5        0x000010		// Timing Revision 5 = 250 MHz
     ARC22          0x000010
     UTILREV3       0x000020		// Utility Rev. 3 supported
     ARC50          0x000020
     SHUTTER_CC     0x000080		// Shutter supported
     TEMP_POLY      0x000100		// Polynomial calibration
     TEMP_LINEAR    0x000200		// Linear calibration
     SUBARRAY       0x000400		// Subarray readout supported
     BINNING        0x000800		// Binning supported
     SPLIT_SERIAL   0x001000		// Split serial supported
     SPLIT_PARALLEL 0x002000		// Split parallel supported
     MPP_CC         0x004000		// Inverted clocks supported
     ARC32          0x008000		// CCD & IR clock driver board
     CLKDRVGENI     0x018000		// No clock driver board - Gen I
     MLO            0x020000		// Set if Mount Laguna Observatory
     NGST           0x040000		// NGST Aladdin implementation
     CONT_RD        0x100000		// Continuous readout implemented
Example
        // Demonstrates how to read the controller configuration
        // parameter word and determine if binning is supported.
        // If it is, then set the binning to 2x2 for a 512x600
        // pixel array.

        #include <iostream.h>
        #include "CController.h"
        using namespace std;
        using namespace arc;

        CController cController;

        try {
            // .... open driver, initialize, etc ....

            // NOTE: Time can be saved in a real application 
            // by only reading this value once after every 
            // controller setup.
            lCCParams = cController.GetCCParams();

            if ( cController.IsCCParamSupported( BINNING ) )
            {
                cout << "Yeah! Binning is supported!" << endl;

                // Set controller to 2x2 binning for a 512x600 pixel array.
                cController.SetBinning( 512, 600, 2, 2 );
             }

            // .... do something else ....
        }
        catch ( std::exception &e )
        {
            cerr << "Exception Occurred: " << e.what() << endl;
        }

© Astronomical Research Cameras, Inc.