439 lines
6.3 KiB
C
439 lines
6.3 KiB
C
|
|
#include "sys_config.h"
|
||
|
|
#include "typesdef.h"
|
||
|
|
#include "lib/video/dvp/cmos_sensor/csi.h"
|
||
|
|
#include "tx_platform.h"
|
||
|
|
#include "list.h"
|
||
|
|
#include "dev.h"
|
||
|
|
#include "hal/i2c.h"
|
||
|
|
|
||
|
|
|
||
|
|
#if DEV_SENSOR_GC0311
|
||
|
|
|
||
|
|
|
||
|
|
SENSOR_INIT_SECTION static const unsigned char GC0311InitTable[CMOS_INIT_LEN]=
|
||
|
|
{
|
||
|
|
0xfe,0xf0,
|
||
|
|
0xfe,0xf0,
|
||
|
|
0xfe,0xf0,
|
||
|
|
0xfc,0x16,//clockenable
|
||
|
|
0xfc,0x16,//clockenable
|
||
|
|
|
||
|
|
0x42,0x00,
|
||
|
|
0x4f,0x01,
|
||
|
|
0x03,0x02,
|
||
|
|
0x04,0x88,
|
||
|
|
|
||
|
|
0x26,0x00,
|
||
|
|
0x29,0x40,//[7]black_compress_en,[6:0]global_offset
|
||
|
|
0x2a,0x30,
|
||
|
|
0x2b,0x30,
|
||
|
|
0x2c,0x30,
|
||
|
|
0x2d,0x30,
|
||
|
|
|
||
|
|
0x77,0x54,//AWB_R_gain
|
||
|
|
0x78,0x40,//AWB_G_gain
|
||
|
|
0x79,0x4a,//AWB_B_gain
|
||
|
|
|
||
|
|
|
||
|
|
0x73,0x80,
|
||
|
|
0x74,0x82,
|
||
|
|
0x75,0x82,
|
||
|
|
0x76,0x82,
|
||
|
|
|
||
|
|
////////////BLK/////////////////////
|
||
|
|
////////////////////////////////////////////////
|
||
|
|
0x26,0xf7,//[
|
||
|
|
0x28,0x7f,//BLKvaluelimit
|
||
|
|
0x32,0x00,
|
||
|
|
0x33,0x20,//offset_ratio_G1
|
||
|
|
0x34,0x20,//offset_ratio_G2
|
||
|
|
0x35,0x20,//offsetratio_R
|
||
|
|
0x36,0x20,//offsetratio_B
|
||
|
|
0x3b,0x08,
|
||
|
|
0x3c,0x08,
|
||
|
|
0x3d,0x08,
|
||
|
|
0x3e,0x08,
|
||
|
|
|
||
|
|
/////////////CISCTL/////////////////////////////
|
||
|
|
0xfe,0x00,//Pageselect
|
||
|
|
//////windowsetting/////
|
||
|
|
0x0d,0x01,//8cis_win_height
|
||
|
|
0x0e,0xe8,//7:0cis_win_height
|
||
|
|
0x0f,0x02,//9:8cis_win_width
|
||
|
|
0x10,0x88,//7:0cis_win_width
|
||
|
|
0x09,0x00,//row_start
|
||
|
|
0x0a,0x00,
|
||
|
|
0x0b,0x00,//col_start
|
||
|
|
0x0c,0x04,
|
||
|
|
//crop
|
||
|
|
0x50,0x01,
|
||
|
|
#if 1
|
||
|
|
///cropwindow
|
||
|
|
0x51,0x00,
|
||
|
|
0x52,0x00,///y
|
||
|
|
0x53,0x00,
|
||
|
|
0x54,0x00,///x
|
||
|
|
|
||
|
|
|
||
|
|
0x55,0x01,
|
||
|
|
0x56,0xe0,///360
|
||
|
|
0x57,0x02,
|
||
|
|
0x58,0x80,//640
|
||
|
|
#endif
|
||
|
|
/////////////////banding////////////////
|
||
|
|
0x05,0x01,
|
||
|
|
0x06,0x32,//Hb
|
||
|
|
0x07,0x00,
|
||
|
|
0x08,0x0c,//VB
|
||
|
|
0xfe,0x01,//VB
|
||
|
|
0x29,0x00,
|
||
|
|
0x2a,0x78,//step
|
||
|
|
0x2b,0x01,
|
||
|
|
0x2c,0x68,//25fps
|
||
|
|
0x2d,0x01,
|
||
|
|
0x2e,0x68,//25fps
|
||
|
|
0x2f,0x01,
|
||
|
|
0x30,0x68,//25fps
|
||
|
|
0x31,0x01,
|
||
|
|
0x32,0x68,//25fps
|
||
|
|
0x33,0x20,
|
||
|
|
0xfe,0x00,
|
||
|
|
|
||
|
|
0x17,0x14,//[1]updown,[0]mirror1417
|
||
|
|
0x19,0x04,
|
||
|
|
0x1f,0x08,
|
||
|
|
0x20,0x01,
|
||
|
|
0x21,0x48,
|
||
|
|
0x1b,0x48,//fordecreaseFPN
|
||
|
|
0x22,0xba,
|
||
|
|
0x23,0x06,//0720140113lanking
|
||
|
|
0x24,0x16,//PADdriver
|
||
|
|
|
||
|
|
//globalgainforrange
|
||
|
|
0x70,0x50,//58
|
||
|
|
|
||
|
|
////////////////////////////////////////////////
|
||
|
|
////////////blockenable/////////////
|
||
|
|
////////////////////////////////////////////////
|
||
|
|
0x40,0xff,
|
||
|
|
0x41,0x2e,
|
||
|
|
0x42,0xf9,
|
||
|
|
0x44,0xa2,//yuv
|
||
|
|
0x46,0x03,//sync_mode
|
||
|
|
0x4d,0x01,
|
||
|
|
0x4f,0x01,
|
||
|
|
|
||
|
|
|
||
|
|
//DN&EEINTP
|
||
|
|
#if 1
|
||
|
|
0x7e,0x08,
|
||
|
|
0x7f,0xc3,
|
||
|
|
0x80,0x01,//f7
|
||
|
|
0x81,0x30,//fe
|
||
|
|
0x82,0xf0,//f0
|
||
|
|
0x83,0x01,//02
|
||
|
|
0x84,0x02,
|
||
|
|
0x89,0x22,
|
||
|
|
0x90,0x2c,
|
||
|
|
0x92,0x02,
|
||
|
|
0x94,0x02,
|
||
|
|
0x95,0x48,//边缘
|
||
|
|
#else
|
||
|
|
0x7e,0x0a,
|
||
|
|
0x7f,0x03,
|
||
|
|
0x80,0x27,//20140915
|
||
|
|
0x81,0x15,
|
||
|
|
0x82,0x90,
|
||
|
|
0x83,0x02,
|
||
|
|
0x84,0x23,//0xe5
|
||
|
|
0x90,0x2c,
|
||
|
|
0x92,0x02,
|
||
|
|
0x94,0x02,
|
||
|
|
0x95,0x35,
|
||
|
|
|
||
|
|
#endif
|
||
|
|
/////////////////////ASDE////////////////
|
||
|
|
0x9a,0x20,//YoffsetLimit
|
||
|
|
0x9c,0x86,
|
||
|
|
0xa4,0x50,
|
||
|
|
0xa7,0xf0,//40travis20160127
|
||
|
|
0xaa,0x60,
|
||
|
|
0xa2,0x45,
|
||
|
|
|
||
|
|
////////////////Ygamma////////////////
|
||
|
|
//////////////////////////////////////////
|
||
|
|
#if 0
|
||
|
|
0xfe,0x00,
|
||
|
|
0x63,0x00,
|
||
|
|
0x64,0x04,
|
||
|
|
0x65,0x09,
|
||
|
|
0x66,0x17,
|
||
|
|
0x67,0x2b,
|
||
|
|
0x68,0x3d,
|
||
|
|
0x69,0x4f,
|
||
|
|
0x6a,0x5f,
|
||
|
|
0x6b,0x82,
|
||
|
|
0x6c,0xa2,
|
||
|
|
0x6d,0xc5,
|
||
|
|
0x6e,0xe5,
|
||
|
|
0x6f,0xff,
|
||
|
|
#else
|
||
|
|
0xfe,0x00,
|
||
|
|
0x63,0x00,
|
||
|
|
0x64,0x05,
|
||
|
|
0x65,0x0b,
|
||
|
|
0x66,0x19,
|
||
|
|
0x67,0x2e,
|
||
|
|
0x68,0x40,
|
||
|
|
0x69,0x54,
|
||
|
|
0x6a,0x66,
|
||
|
|
0x6b,0x86,
|
||
|
|
0x6c,0xa7,
|
||
|
|
0x6d,0xc6,
|
||
|
|
0x6e,0xe4,
|
||
|
|
0x6f,0xff,
|
||
|
|
#endif
|
||
|
|
0xfe,0x00,
|
||
|
|
|
||
|
|
////////////////RGBgamma//////////////
|
||
|
|
///////////////////////////////////////
|
||
|
|
/*
|
||
|
|
0xfe,0x00,
|
||
|
|
0xbf,0x0b,
|
||
|
|
0xc0,0x17,
|
||
|
|
0xc1,0x2a,
|
||
|
|
0xc2,0x41,
|
||
|
|
0xc3,0x54,
|
||
|
|
0xc4,0x66,
|
||
|
|
0xc5,0x74,
|
||
|
|
0xc6,0x8c,
|
||
|
|
0xc7,0xa3,
|
||
|
|
0xc8,0xb5,
|
||
|
|
0xc9,0xc4,
|
||
|
|
0xca,0xd0,
|
||
|
|
0xcb,0xdb,
|
||
|
|
0xcc,0xe5,
|
||
|
|
0xcd,0xf0,
|
||
|
|
0xce,0xf7,
|
||
|
|
0xcf,0xff,*/
|
||
|
|
0xfe,0x00,
|
||
|
|
0xbf,0x0b,
|
||
|
|
0xc0,0x16,
|
||
|
|
0xc1,0x29,
|
||
|
|
0xc2,0x3c,
|
||
|
|
0xc3,0x4f,
|
||
|
|
0xc4,0x5f,
|
||
|
|
0xc5,0x6f,
|
||
|
|
0xc6,0x8a,
|
||
|
|
0xc7,0x9f,
|
||
|
|
0xc8,0xb4,
|
||
|
|
0xc9,0xc6,
|
||
|
|
0xca,0xd3,
|
||
|
|
0xcb,0xdd,
|
||
|
|
0xcc,0xe5,
|
||
|
|
0xcd,0xf1,
|
||
|
|
0xce,0xfa,
|
||
|
|
0xcf,0xff,
|
||
|
|
|
||
|
|
///YUVmaxtrix////
|
||
|
|
0xb0,0x13,
|
||
|
|
0xb1,0x1f,//1f
|
||
|
|
0xb2,0x0e,
|
||
|
|
0xb3,0xf5,
|
||
|
|
0xb4,0xe5,
|
||
|
|
0xb5,0x26,
|
||
|
|
0xb6,0x20,
|
||
|
|
0xb7,0xde,
|
||
|
|
0xb8,0x02,
|
||
|
|
/////////////YCP//////////////
|
||
|
|
////////////////////////////
|
||
|
|
0xd1,0x2c,
|
||
|
|
0xd2,0x2c,
|
||
|
|
0xd3,0x3c,//对比度
|
||
|
|
0xdd,0x38,
|
||
|
|
0xed,0x00,
|
||
|
|
|
||
|
|
0xde,0x34,//autogray_mode
|
||
|
|
0xe4,0x00,
|
||
|
|
0xe5,0x40,
|
||
|
|
|
||
|
|
//luma_div
|
||
|
|
0xfe,0x01,
|
||
|
|
0x18,0x21,
|
||
|
|
|
||
|
|
///////////MEANSUREWINDOW////////
|
||
|
|
0x08,0xa4,
|
||
|
|
0x09,0xf0,
|
||
|
|
|
||
|
|
//////////////////AEC///////////////////////
|
||
|
|
0xfe,0x01,
|
||
|
|
0x10,0x08,//08//18//[7]low_light_mode,[6]measure_point
|
||
|
|
0x11,0x11,//[6:4]veryN
|
||
|
|
0x12,0x00,//90beforeGamma,shouldsetbit[7]as0
|
||
|
|
0x13,0x41,//Ytarget
|
||
|
|
0x15,0xfe,//fc//highrange
|
||
|
|
0x16,0xd8,//AECignore
|
||
|
|
0x17,0x98,//AECignoreen
|
||
|
|
0x1a,0x61,//SLOWmargin
|
||
|
|
0x18,0x21,//LUMA
|
||
|
|
0x21,0xc0,//auto_post_gain
|
||
|
|
0x22,0x60,//autopregain
|
||
|
|
|
||
|
|
|
||
|
|
//////////////////AWB////////////////////
|
||
|
|
|
||
|
|
0x06,0x10,
|
||
|
|
0x08,0xa0,
|
||
|
|
|
||
|
|
0x50,0xfe,
|
||
|
|
0x51,0x05,
|
||
|
|
0x52,0x28,
|
||
|
|
0x53,0x05,
|
||
|
|
0x54,0x10,
|
||
|
|
0x55,0x20,
|
||
|
|
0x56,0x16,//AWBCmax
|
||
|
|
0x57,0x10,
|
||
|
|
0x58,0xf2,
|
||
|
|
0x59,0x10,
|
||
|
|
0x5a,0x10,
|
||
|
|
0x5b,0xf0,
|
||
|
|
0x5e,0xe8,
|
||
|
|
0x5f,0x20,
|
||
|
|
0x60,0x20,
|
||
|
|
0x61,0xe0,
|
||
|
|
|
||
|
|
0x62,0x03,
|
||
|
|
0x63,0x30,
|
||
|
|
0x64,0xc0,
|
||
|
|
0x65,0xd0,
|
||
|
|
0x66,0x20,
|
||
|
|
0x67,0x00,//80//AWB_outdoor_mode
|
||
|
|
|
||
|
|
0x6d,0x90,
|
||
|
|
0x6e,0x40,
|
||
|
|
0x6f,0x08,
|
||
|
|
0x70,0x10,
|
||
|
|
0x71,0x62,
|
||
|
|
0x72,0x24,
|
||
|
|
0x73,0x71,
|
||
|
|
0x74,0x10,
|
||
|
|
|
||
|
|
0x75,0x40,
|
||
|
|
0x76,0x40,
|
||
|
|
0x77,0xc9,
|
||
|
|
0x78,0x9c,
|
||
|
|
|
||
|
|
0x79,0x18,
|
||
|
|
0x7a,0x40,
|
||
|
|
0x7b,0xb0,
|
||
|
|
0x7c,0xf5,
|
||
|
|
|
||
|
|
0x81,0x70,
|
||
|
|
0x82,0x58,
|
||
|
|
0x83,0x78,
|
||
|
|
|
||
|
|
0x8a,0xf8,
|
||
|
|
0x8b,0xf4,
|
||
|
|
0x8c,0x0a,
|
||
|
|
0x8d,0x00,
|
||
|
|
0x8e,0x00,
|
||
|
|
0x8f,0x00,
|
||
|
|
0x90,0x12,
|
||
|
|
0xfe,0x00,
|
||
|
|
|
||
|
|
////////////////SPIreciver////////////////
|
||
|
|
0xad,0x00,
|
||
|
|
//////////////////LSC///////////////////////
|
||
|
|
0xfe,0x01,
|
||
|
|
0xc0,0x1e,
|
||
|
|
0xc1,0x18,
|
||
|
|
0xc2,0x17,
|
||
|
|
0xc6,0x1e,
|
||
|
|
0xc7,0x18,
|
||
|
|
0xc8,0x17,
|
||
|
|
0xba,0x30,
|
||
|
|
0xbb,0x25,
|
||
|
|
0xbc,0x20,
|
||
|
|
0xb4,0x30,
|
||
|
|
0xb5,0x25,
|
||
|
|
0xb6,0x20,
|
||
|
|
0xc3,0x00,
|
||
|
|
0xc4,0x00,
|
||
|
|
0xc5,0x00,
|
||
|
|
0xc9,0x00,
|
||
|
|
0xca,0x00,
|
||
|
|
0xcb,0x00,
|
||
|
|
0xbd,0x00,
|
||
|
|
0xbe,0x00,
|
||
|
|
0xbf,0x00,
|
||
|
|
0xb7,0x00,
|
||
|
|
0xb8,0x00,
|
||
|
|
0xb9,0x00,
|
||
|
|
0xa8,0x0f,
|
||
|
|
0xa9,0x05,
|
||
|
|
0xaa,0x00,
|
||
|
|
0xab,0x0f,
|
||
|
|
0xac,0x05,
|
||
|
|
0xad,0x00,
|
||
|
|
0xae,0x0f,
|
||
|
|
0xaf,0x05,
|
||
|
|
0xb0,0x00,
|
||
|
|
0xb1,0x0f,
|
||
|
|
0xb2,0x05,
|
||
|
|
0xb3,0x00,
|
||
|
|
0xa4,0x00,
|
||
|
|
0xa5,0x00,
|
||
|
|
0xa6,0x00,
|
||
|
|
0xa7,0x00,
|
||
|
|
0xa1,0x3c,
|
||
|
|
0xa2,0x50,
|
||
|
|
0xfe,0x00,
|
||
|
|
|
||
|
|
0x50,0x01,//crop
|
||
|
|
0xfe,0x01,
|
||
|
|
0x9c,0x00,
|
||
|
|
0x9e,0xc0,
|
||
|
|
0x9f,0x40,
|
||
|
|
|
||
|
|
0xfe,0x00,
|
||
|
|
0x42,0xfb,
|
||
|
|
|
||
|
|
0xf1,0x07,//outputenable
|
||
|
|
0xf2,0x01,//outputenableDVPorSPI
|
||
|
|
|
||
|
|
-1,-1};
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
SENSOR_OP_SECTION const _Sensor_Adpt_ gc0311_cmd=
|
||
|
|
{
|
||
|
|
.typ = 1, //YUV
|
||
|
|
.pixelw = 640,
|
||
|
|
.pixelh= 480,
|
||
|
|
.hsyn = 1,
|
||
|
|
.vsyn = 1,
|
||
|
|
.rduline = 0,//
|
||
|
|
.rawwide = 1,//10bits
|
||
|
|
.colrarray = 2,//0:_RGRG_ 1:_GRGR_,2:_BGBG_,3:_GBGB_
|
||
|
|
.init = (uint8 *)GC0311InitTable,
|
||
|
|
.rotate_adapt = {0},
|
||
|
|
//.hvb_adapt = {0x6a,0x12,0x6a,0x12},
|
||
|
|
. mclk = 24000000,
|
||
|
|
.p_fun_adapt = {NULL,NULL,NULL},
|
||
|
|
.p_xc7016_adapt = {NULL},
|
||
|
|
};
|
||
|
|
|
||
|
|
const _Sensor_Ident_ gc0311_init=
|
||
|
|
{
|
||
|
|
0xBB,0x66,0x67,0x01,0x01,0xf0
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#endif
|