📄 adcm2650_hw.h
字号:
#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 ERROR 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 Registersint adcm2650_pipeline_read( u16 reg_addr, u16 * reg_value);int adcm2650_pipeline_write( u16 reg_addr, u16 reg_value);int adcm2650_pipeline_read_rl( u16 reg_addr, u16 mask, u16 field);int adcm2650_pipeline_write_wa( u16 reg_addr, u16 mask);int adcm2650_pipeline_write_wo( u16 reg_addr, u16 mask);// Read and Write from/to Image Sensor Registers: The image sensor registers are 8bit wide.int adcm2650_sensor_read_rs( u8 reg_addr, u8 * reg_value );int adcm2650_sensor_write_ws( u8 reg_addr, u8 reg_value );// adcm2650_ Waitvoid adcm2650_wait( int ms );// Configuration Proceduresint adcm2650_power_on( u8 );int adcm2650_power_off( void );int adcm2650_change_viewfinder_mode(adcm_window_size * input_win, adcm_window_size *vf_output_win, adcm_window_size *sf_output_win );int adcm2650_jpeg_slow_still_frame( void );int adcm2650_jpeg_fast_still_frame( void );int adcm2650_pll(void);int adcm2650_auto_config_complete( void );int adcm2650_firmware_upgrade( void );int adcm2650_version_revision(u16 * cm_revision, u8 *sensor_revision);int adcm2650_viewfinder_on( void );int adcm2650_viewfinder_off( void );int adcm2650_power_low( void );int adcm2650_power_normal( void );int adcm2650_suspend( void );int adcm2650_wakeup( void );int adcm2650_abort_image( void );int adcm2650_snapshot_trigger( void );int adcm2650_snapshot_complete( void );int adcm2650_snapshot_status(u16 *);int adcm2650_image_flip_v(u16 mode);int adcm2650_image_flip_h(u16 mode);int adcm2650_image_flip_vh(u16 mode);int adcm2650_pll_active( void );int adcm2650_pll_deactive( void );int adcm2650_pll_configuration( void );int adcm2650_pll_synchronized( void );int adcm2650_master_clock( u8 clk );int adcm2650_sensor_voltage( u8 vltg );int adcm2650_factory_overwrite( void );int adcm2650_viewfinder_input_size( adcm_window_size * win );int adcm2650_stillframe_input_size( adcm_window_size * win );int adcm2650_viewfinder_output_size(adcm_window_size * win);int adcm2650_stillframe_output_size(adcm_window_size * win);int adcm2650_flicker_rate(u16 rate);int adcm2650_low_light( void );int adcm2650_normal_light( void );int adcm2650_discard_Viewfinder_image_data( void );int adcm2650_set_output_to_jpeg(u16 mode);int adcm2650_stillframe_cfg_output(u16 format);int adcm2650_viewfinder_cfg_output(u16 format);int adcm2650_switch_to_jpeg(u16 mode);int adcm2650_switch_to_normal(u16 mode);int adcm2650_gamma_correction( void );int adcm2650_get_output_frame_rate(u16 * fps);int adcm2650_detect_camera_mode(u16 *mode);int adcm2650_camera_ready( void );int adcm2650_wait_till_in_stillframe_mode( void );int adcm2650_halt_video_output( void );int adcm2650_get_single_image( void );int adcm2650_resume_to_full_output_mode( void );int adcm2650_manual_a_table( void );int adcm2650_auto_q_table( void );// i2c int i2c_init(void);int i2c_deinit(void);// helper apisvoid adcm2650_dump_pipeline_register(u16 start_reg_addr, u16 end_reg_addr, u16* buffer);void adcm2650_dump_sensor_register(u16 start_reg_addr, u16 end_reg_addr, u8* buffer);#define WO( a, b ) adcm2650_pipeline_write_wo((a), (b))#define WA( a, b ) adcm2650_pipeline_write_wa((a), (b))#define RL( a, m, f ) adcm2650_pipeline_read_rl((a), (m), (f))#define R( a, p ) adcm2650_pipeline_read((a), (p))#define W( a, v ) adcm2650_pipeline_write((a), (v))#define RS( a, p ) adcm2650_sensor_read_rs((a), (p))#define WS( a, v ) adcm2650_sensor_write_ws((a), (v))#define WAIT( ms ) adcm2650_wait( ms )#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -