#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