-----------------------------------------------
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
// 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.