📄 adcm2650_hw.h
字号:
#define DROP_FRAME_CNT 0x013c
#define BPA_BADPIX_CNT 0x013e
#define APS_FRAME_CNT 0x0140
#define BPA_OUTL_PED 0x0142
#define BPA_SCALE 0x0144
#define S_PLL_DIVBY_VID 0x0146
#define S_PLL_DIVBY_STL 0x0148
#define TCTRL_VID 0x2000
#define HBLANK_VID 0x2002
#define VBLANK_VID 0x2004
#define MIN_MAX_F_VID 0x2006
#define RPT_VID 0x2008
// Page 419
#define TCTRL_STL 0x2010
#define HBLANK_STL 0x2012
#define VBLANK_STL 0x2014
#define MIN_MAX_F_STL 0x2016
#define RPT_STL 0x2018
#define AF_CTRL_1 0x2020
#define AF_CTRL_2 0x2022
#define AF_STATUS 0x2024
#define MASTER_CLK_FREQ 0x2026
#define AE_GAIN_MIN 0x2028
#define AE_GAIN_MIN_P 0x202a
#define AE_GAIN_MAX 0x202c
#define AE_GAIN_DFLT 0x202e
#define AE2_ETIME_MIN 0x2030
#define AE2_ETIME_MAX 0x2032
#define AE2_ETIME_DFLT 0x2034
#define AE_TARGET 0x2036
#define AE_TOL_ACQ 0x2038
#define AE_TOL_MON 0x203a
#define AE_MARGIN 0x203c
#define AE_DOE_FACTOR 0x203e
#define AE_DOE_MARGIN 0x2040
#define AWB_RED_MIN 0x2044
#define AWB_RED_MAX 0x2046
// Page 420
#define AWB_RED_DFLT 0x2048
#define AWB_BLUE_MIN 0x204a
#define AWB_BLUE_MAX 0x204c
#define AWB_BLUE_DFLT 0x204e
#define AWB_TOL_ACQ 0x2050
#define AWB_TOL_MON 0x2052
#define FLICK_1 0x2054
#define FLICK_2 0x2056
#define ERROR_FLAGS 0x205e
#define NACC_TABLE 0x2060
/***********************************************************************
*
* Sensor Register Offset
*
***********************************************************************/
#define IDENT 0x00
#define STATUS 0x01
#define ICTRL 0x05
#define ITMG 0x06
#define FWROW 0x0a
#define FWCOL 0x0b
#define LWROW 0x0c
#define LWCOL 0x0d
#define TCTRL 0x0e
#define ERECPGA 0x0f
#define EROCPGA 0x10
#define ORECPGA 0x11
#define OROCPGA 0x12
#define ROWEXPL 0x13
#define ROWEXPH 0x14
#define SROWEXP 0x15
#define ERR 0x16
#define HBLANK 0x19
#define VBLANK 0x1a
#define CONFIG 0x1b
#define CONTROL 0x1c
#define TEST0 0x1d
#define TEST1 0x1e
#define TEST2 0x1f
#define TEST3 0x20
#define TEST4 0x24
#define TEST5 0x25
#define CONFIG_2 0x27
/***********************************************************************
*
* Bit/Field definitions
*
***********************************************************************/
#define CMD_1_VE 0x0001
#define CMD_1_LPE 0x0002
#define CMD_2_SNAP 0x0001
#define CMD_2_ACS 0x0002
#define CMD_2_AVT 0x0004
#define CMD_2_AST 0x0008
#define CMD_2_SGO 0x0010
#define CMD_2_P_RESET 0x0020
#define CMD_2_S_RESET 0x0040
#define CMD_2_U_RESET 0x0080
#define CMD_2_PLL_ON 0x0100
#define CMD_2_UCGS 0x0200
#define CMD_2_PLL_OFF 0x0400
#define CMD_2_IA 0x1000
#define CMD_2_UART_F 0x2000
#define CMD_2_SVWC 0x4000
#define CMD_2_SVHC 0x8000
#define BYPASS_CTRL_BPA 0x0001
#define BYPASS_CTRL_G1G2 0x0002
#define BYPASS_CTRL_SB 0x0004
#define BYPASS_CTRL_AQA 0x0008
#define BYPASS_CTRL_PCD 0x0010
#define BYPASS_CTRL_QT_HEAD 0x0020
#define BYPASS_CTRL_WGF 0x0040
#define BYPASS_CTRL_OLP 0x0080
#define BYPASS_CTRL_CAM_CON 0x0100
#define BYPASS_CTRL_DDFF 0x0200
#define VIDEO_CONFIG_SS 0x0004
#define VIDEO_CONFIG_SHP 0x0008
#define VIDEO_CONFIG_H_MIRROR 0x0010
#define VIDEO_CONFIG_V_MIRROR 0x0020
#define VIDEO_CONFIG_O_FORMAT_SHIFT 8
#define VIDEO_CONFIG_O_FORMAT_MASK (0xF<<VIDEO_CONFIG_O_FORMAT_SHIFT)
#define VIDEO_CONFIG_JPEG_MASK 0x2000
#define STILL_CONFIG_SS 0x0004
#define STILL_CONFIG_SHP 0x0008
#define STILL_CONFIG_H_MIRROR 0x0010
#define STILL_CONFIG_V_MIRROR 0x0020
#define STILL_CONFIG_O_FORMAT_SHIFT 8
#define STILL_CONFIG_O_FORMAT_MASK (0xF<<STILL_CONFIG_O_FORMAT_SHIFT)
#define STILL_CONFIG_JPEG_MASK 0x2000
#define BYPASS_CTRL_SB 0x0004
#define SENSOR_CTRL_RW 0x0010
#define SENSOR_CTRL_GO 0x0020
#define AF_STATUS_CC 0x0008
#define S_PLL_CTRL_0_S_PLL_SE 0x0010
/***********************************************************************
*
* Function Prototype
*
***********************************************************************/
// Read and Write from/to Image Pipeline Registers
int ADCM2650PipelineRead( XLLP_UINT16_T regAddr, XLLP_UINT16_T * regValue);
int ADCM2650PipelineWrite( XLLP_UINT16_T regAddr, XLLP_UINT16_T regValue);
int ADCM2650PipelineReadRL( XLLP_UINT16_T regAddr, XLLP_UINT16_T mask, XLLP_UINT16_T field);
int ADCM2650PipelineWriteWA( XLLP_UINT16_T regAddr, XLLP_UINT16_T mask);
int ADCM2650PipelineWriteWO( XLLP_UINT16_T regAddr, XLLP_UINT16_T mask);
// Read and Write from/to Image Sensor Registers: The image sensor registers are 8bit wide.
int ADCM2650SensorReadRS( XLLP_UINT8_T regAddr, XLLP_UINT8_T * pRegValue );
int ADCM2650SensorWriteWS( XLLP_UINT8_T regAddr, XLLP_UINT8_T regValue );
// ADCM2650 Wait
int ADCM1650Wait( int ms );
// Configuration Procedures
int ADCM2650PowerOn( XLLP_UINT8_T );
int ADCM2650PowerOff( void );
int ADCM2650ChangeViewfinderMode(ADCM_WINDOWSIZE * pInputWin, ADCM_WINDOWSIZE *pVfOutputWin, ADCM_WINDOWSIZE *pSfOutputWin );
int ADCM2650JpegSlowStillFrame( void );
int ADCM2650JpegFastStillFrame( void );
int ADCM2650Pll(void);
int ADCM2650AutoConfigComplete( void );
int ADCM2650FirmwareUpgrade( void );
int ADCM2650VersionRevision(XLLP_UINT16_T * pCmRevision, XLLP_UINT8_T *pSensorRevision);
int ADCM2650ViewfinderOn( void );
int ADCM2650ViewfinderOff( void );
int ADCM2650PowerLow( void );
int ADCM2650PowerNormal( void );
int ADCM2650Suspend( void );
int ADCM2650Wakeup( void );
int ADCM2650AbortImage( void );
int ADCM2650SnapshotTrigger( void );
int ADCM2650SnapshotComplete( void );
int ADCM2650SnapshotStatus(XLLP_UINT16_T *);
int ADCM2650ImageFlipV(XLLP_UINT16_T mode);
int ADCM2650ImageFlipH(XLLP_UINT16_T mode);
int ADCM2650ImageFlipVH(XLLP_UINT16_T mode);
int ADCM2650PllActive( void );
int ADCM2650PllDeactive( void );
int ADCM2650PllConfiguration( void );
int ADCM2650PllSynchronized( void );
int ADCM2650MasterClock( XLLP_UINT8_T clk );
int ADCM2650SensorVoltage( XLLP_UINT8_T vltg );
int ADCM2650FactoryOverwrite( void );
int ADCM2650ViewfinderInputSize( ADCM_WINDOWSIZE * pWindow );
int ADCM2650StillframeInputSize( ADCM_WINDOWSIZE * pWindow );
int ADCM2650ViewfinderOutputSize(ADCM_WINDOWSIZE * pWindow);
int ADCM2650StillframeOutputSize(ADCM_WINDOWSIZE * pWindow);
int ADCM2650FlickerRate(XLLP_UINT16_T rate);
int ADCM2650LowLight( void );
int ADCM2650NormalLight( void );
int ADCM2650DiscardViewfinderImageData( void );
int ADCM2650SetOutputToJpeg(XLLP_UINT16_T mode);
int ADCM2650StillFrameCfgOutput(XLLP_UINT16_T format);
int ADCM2650ViewfinderCfgOutput(XLLP_UINT16_T format);
int ADCM2650SwitchToJpeg(XLLP_UINT16_T mode);
int ADCM2650SwitchToNormal(XLLP_UINT16_T mode);
int ADCM2650GammaCorrection( void );
int ADCM2650GetOutputFrameRate(XLLP_UINT16_T * fps);
int ADCM2650DetectCameraMode(XLLP_UINT16_T *pMode);
int ADCM2650CameraReady( void );
int ADCM2650WaitTillInStillFrameMode( void );
int ADCM2650HaltVideoOutput( void );
int ADCM2650GetSingleImage( void );
int ADCM2650ResumetoFullOutputMode( void );
int ADCM2650ManualQTable( void );
int ADCM2650AutoQTable( void );
// helper apis
void ADCM2650DumpPipelineRegister(XLLP_UINT16_T startRegAddr, XLLP_UINT16_T endRegAddr, XLLP_UINT16_T* buffer);
void ADCM2650DumpSensorRegister(XLLP_UINT16_T startRegAddr, XLLP_UINT16_T endRegAddr, XLLP_UINT8_T* buffer);
#define WO( a, b ) ADCM2650PipelineWriteWO((a), (b))
#define WA( a, b ) ADCM2650PipelineWriteWA((a), (b))
#define RL( a, m, f ) ADCM2650PipelineReadRL((a), (m), (f))
#define R( a, p ) ADCM2650PipelineRead((a), (p))
#define W( a, v ) ADCM2650PipelineWrite((a), (v))
#define RS( a, p ) ADCM2650SensorReadRS((a), (p))
#define WS( a, v ) ADCM2650SensorWriteWS((a), (v))
#define WAIT( ms ) ADCM2650Wait( ms )
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -