389 lines
7.4 KiB
C
389 lines
7.4 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_SP0A19
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
SENSOR_INIT_SECTION static const unsigned char SP0A19InitTable[CMOS_INIT_LEN]=
|
||
|
|
{
|
||
|
|
|
||
|
|
//SP0A19 ini
|
||
|
|
0xfd,0x00,
|
||
|
|
|
||
|
|
0x32,0x00,
|
||
|
|
0x0f,0x2f,
|
||
|
|
0x10,0x2e,
|
||
|
|
0x11,0x00,
|
||
|
|
0x12,0x18,
|
||
|
|
0x13,0x2f,
|
||
|
|
0x14,0x00,
|
||
|
|
0x15,0x3f,
|
||
|
|
0x16,0x00,
|
||
|
|
0x17,0x18,
|
||
|
|
0x25,0x40,
|
||
|
|
0x1a,0x0b,
|
||
|
|
|
||
|
|
0x1e,0xb ,
|
||
|
|
0x20,0x3f, // add
|
||
|
|
0x21,0x13, // 0x0c 24
|
||
|
|
0x22,0x19,
|
||
|
|
0x26,0x1a,
|
||
|
|
0x27,0xab,
|
||
|
|
0x28,0xfd,
|
||
|
|
0x30,0x00,
|
||
|
|
0x31,0x00,//0x10
|
||
|
|
0xfb,0x33, // 0x33
|
||
|
|
0x1f,0x08,
|
||
|
|
|
||
|
|
//Blacklevel
|
||
|
|
0xfd,0x00,
|
||
|
|
0x65,0x00,//blue_suboffset
|
||
|
|
0x66,0x00,//red_suboffset
|
||
|
|
0x67,0x00,//gr_suboffset
|
||
|
|
0x68,0x00,//gb_suboffset
|
||
|
|
0x45,0x00,
|
||
|
|
0x46,0x0f,
|
||
|
|
//ae setting 24M 22+50
|
||
|
|
0xfd , 0x00,
|
||
|
|
0x03 , 0x01,
|
||
|
|
0x04 , 0x74,
|
||
|
|
0x06 , 0x32,
|
||
|
|
0x09 , 0x00,
|
||
|
|
0x0a , 0x76,
|
||
|
|
0xf0 , 0x7c,
|
||
|
|
0xf1 , 0x00,
|
||
|
|
0xfd , 0x01,
|
||
|
|
0x90 , 0x04,
|
||
|
|
0x92 , 0x01,
|
||
|
|
0x98 , 0x7c,
|
||
|
|
0x99 , 0x00,
|
||
|
|
0x9a , 0x01,
|
||
|
|
0x9b , 0x00,
|
||
|
|
|
||
|
|
//Status
|
||
|
|
0xfd,0x01,
|
||
|
|
0xce,0xc8,
|
||
|
|
0xcf,0x04,
|
||
|
|
0xd0,0xc8,
|
||
|
|
0xd1,0x04,
|
||
|
|
|
||
|
|
0xfd,0x01,
|
||
|
|
0xc4,0x56,//70
|
||
|
|
0xc5,0x8f,//74
|
||
|
|
0xca,0x30,
|
||
|
|
0xcb,0x45,
|
||
|
|
0xcc,0x70,//rpc_heq_low
|
||
|
|
0xcd,0x48,//rpc_heq_dummy
|
||
|
|
0xfd,0x00,
|
||
|
|
|
||
|
|
//lsc for st
|
||
|
|
0xfd,0x01,
|
||
|
|
0x35,0x15,
|
||
|
|
0x36,0x15, //20
|
||
|
|
0x37,0x15,
|
||
|
|
0x38,0x15,
|
||
|
|
0x39,0x15,
|
||
|
|
0x3a,0x15, //15
|
||
|
|
0x3b,0x13,
|
||
|
|
0x3c,0x15,
|
||
|
|
0x3d,0x15,
|
||
|
|
0x3e,0x15, //12
|
||
|
|
0x3f,0x15,
|
||
|
|
0x40,0x18,
|
||
|
|
0x41,0x00,
|
||
|
|
0x42,0x04,
|
||
|
|
0x43,0x04,
|
||
|
|
0x44,0x00,
|
||
|
|
0x45,0x00,
|
||
|
|
0x46,0x00,
|
||
|
|
0x47,0x00,
|
||
|
|
0x48,0x00,
|
||
|
|
0x49,0xfd,
|
||
|
|
0x4a,0x00,
|
||
|
|
0x4b,0x00,
|
||
|
|
0x4c,0xfd,
|
||
|
|
0xfd,0x00,
|
||
|
|
|
||
|
|
//awb 1
|
||
|
|
0xfd,0x01,
|
||
|
|
0x28,0xc5,
|
||
|
|
0x29,0x9b,
|
||
|
|
//0x10,0x08,
|
||
|
|
//0x11,0x14,
|
||
|
|
//0x12,0x14,
|
||
|
|
0x2e,0x02,
|
||
|
|
0x2f,0x16,
|
||
|
|
0x17,0x17,
|
||
|
|
0x18,0x19, //0x29 0813
|
||
|
|
0x19,0x45,
|
||
|
|
|
||
|
|
//0x1a,0x9e,//a1,a5
|
||
|
|
//0x1b,0xae,//b0,9a
|
||
|
|
//0x33,0xef,
|
||
|
|
0x2a,0xef,
|
||
|
|
0x2b,0x15,
|
||
|
|
|
||
|
|
//awb2
|
||
|
|
0xfd,0x01,
|
||
|
|
0x73,0x80,
|
||
|
|
0x1a,0x80,
|
||
|
|
0x1b,0x80,
|
||
|
|
//d65
|
||
|
|
0x65,0xd5, //d6
|
||
|
|
0x66,0xfa, //f0
|
||
|
|
0x67,0x72, //7a
|
||
|
|
0x68,0x8a, //9a
|
||
|
|
//indoor
|
||
|
|
0x69,0xc6, //ab
|
||
|
|
0x6a,0xee, //ca
|
||
|
|
0x6b,0x94, //a3
|
||
|
|
0x6c,0xab, //c1
|
||
|
|
//f
|
||
|
|
0x61,0x7a, //82
|
||
|
|
0x62,0x98, //a5
|
||
|
|
0x63,0xc5, //d6
|
||
|
|
0x64,0xe6, //ec
|
||
|
|
//cwf
|
||
|
|
0x6d,0xb9, //a5
|
||
|
|
0x6e,0xde, //c2
|
||
|
|
0x6f,0xb2, //a7
|
||
|
|
0x70,0xd5, //c5
|
||
|
|
|
||
|
|
//skin detect
|
||
|
|
0xfd,0x01,
|
||
|
|
0x08,0x15,
|
||
|
|
0x09,0x04,
|
||
|
|
0x0a,0x20,
|
||
|
|
0x0b,0x12,
|
||
|
|
0x0c,0x27,
|
||
|
|
0x0d,0x06,
|
||
|
|
0x0f,0x63,//0x5f 0813
|
||
|
|
|
||
|
|
//BPC_grad
|
||
|
|
0xfd,0x00,
|
||
|
|
0x79,0xf0,
|
||
|
|
0x7a,0x80, //f0
|
||
|
|
0x7b,0x80, //f0
|
||
|
|
0x7c,0x20,//f0
|
||
|
|
|
||
|
|
//smooth
|
||
|
|
0xfd,0x00,
|
||
|
|
|
||
|
|
//
|
||
|
|
0x57,0x08, //raw_dif_thr_outdoor
|
||
|
|
0x58,0x0c, //raw_dif_thr_normal
|
||
|
|
0x56,0x0e, //raw_dif_thr_dummy
|
||
|
|
0x59,0x12, //raw_dif_thr_lowlight
|
||
|
|
//GrGb
|
||
|
|
0x89,0x08, //raw_grgb_thr_outdoor
|
||
|
|
0x8a,0x0c, //raw_grgb_thr_normal
|
||
|
|
0x9c,0x0e, //raw_grgb_thr_dummy
|
||
|
|
0x9d,0x12, //raw_grgb_thr_lowlight
|
||
|
|
//Gr\Gb
|
||
|
|
0x81,0xe0, //raw_gflt_fac_outdoor
|
||
|
|
0x82,0x80, //raw_gflt_fac_normal
|
||
|
|
0x83,0x40, //raw_gflt_fac_dummy
|
||
|
|
0x84,0x20, //raw_gflt_fac_lowlight
|
||
|
|
//GrGb
|
||
|
|
0x85,0xe0, //raw_gf_fac_outdoor
|
||
|
|
0x86,0x80, //raw_gf_fac_normal
|
||
|
|
0x87,0x40, //raw_gf_fac_dummy
|
||
|
|
0x88,0x20, //raw_gf_fac_lowlight
|
||
|
|
//
|
||
|
|
0x5a,0xff, //raw_rb_fac_outdoor
|
||
|
|
0x5b,0xe0, //raw_rb_fac_normal
|
||
|
|
0x5c,0x80, //raw_rb_fac_dummy
|
||
|
|
0x5d,0x20, //raw_rb_fac_lowlight
|
||
|
|
|
||
|
|
//sharpen
|
||
|
|
0xfd,0x01,
|
||
|
|
0xe2,0x50, //sharpen_y_base
|
||
|
|
0xe4,0xa0, //sharpen_y_max
|
||
|
|
|
||
|
|
0xe5,0x08, //rangek_neg_outdoor //0x08
|
||
|
|
0xd3,0x08, //rangek_pos_outdoor //0x08
|
||
|
|
0xd7,0x08, //range_base_outdoor //0x08
|
||
|
|
|
||
|
|
0xe6,0x0a, //rangek_neg_normal // 0x08
|
||
|
|
0xd4,0x0a, //rangek_pos_normal // 0x08
|
||
|
|
0xd8,0x0a, //range_base_normal // 0x08
|
||
|
|
|
||
|
|
0xe7,0x12, //rangek_neg_dummy // 0x10
|
||
|
|
0xd5,0x12, //rangek_pos_dummy // 0x10
|
||
|
|
0xd9,0x12, //range_base_dummy // 0x10
|
||
|
|
|
||
|
|
0xd2,0x15, //rangek_neg_lowlight
|
||
|
|
0xd6,0x15, //rangek_pos_lowlight
|
||
|
|
0xda,0x15, //range_base_lowlight
|
||
|
|
|
||
|
|
0xe8,0x20, //sharp_fac_pos_outdoor // 0x35
|
||
|
|
0xec,0x2c, //sharp_fac_neg_outdoor
|
||
|
|
0xe9,0x20, //sharp_fac_pos_nr // 0x35
|
||
|
|
0xed,0x2c, //sharp_fac_neg_nr
|
||
|
|
0xea,0x18, //sharp_fac_pos_dummy // 0x30
|
||
|
|
0xef,0x1c, //sharp_fac_neg_dummy // 0x20
|
||
|
|
0xeb,0x15, //sharp_fac_pos_low
|
||
|
|
0xf0,0x18, //sharp_fac_neg_low
|
||
|
|
|
||
|
|
//CCM
|
||
|
|
0xfd,0x01,
|
||
|
|
0xa0,0x66,
|
||
|
|
0xa1,0x00,
|
||
|
|
0xa2,0x19,
|
||
|
|
0xa3,0xf3, // 0xf6
|
||
|
|
0xa4,0x8e, // 0x99
|
||
|
|
0xa5,0x00, // 0xf2
|
||
|
|
0xa6,0x00, // 0x0d
|
||
|
|
0xa7,0xe6, // 0xda
|
||
|
|
0xa8,0x9a,//0xa0 0813 // 0x98
|
||
|
|
0xa9,0x00,
|
||
|
|
0xaa,0x03, // 0x33
|
||
|
|
0xab,0x0c,
|
||
|
|
0xfd,0x00,
|
||
|
|
|
||
|
|
//gamma
|
||
|
|
0xfd,0x00,
|
||
|
|
0x8b,0x0 , // 00,0 ,0
|
||
|
|
0x8c,0xC , // 0f,C ,11
|
||
|
|
0x8d,0x19, // 1e,19,19
|
||
|
|
0x8e,0x2C, // 3d,2C,28
|
||
|
|
0x8f,0x49, // 6c,49,46
|
||
|
|
0x90,0x61, // 92,61,61
|
||
|
|
0x91,0x77, // aa,77,78
|
||
|
|
0x92,0x8A, // b9,8A,8A
|
||
|
|
0x93,0x9B, // c4,9B,9B
|
||
|
|
0x94,0xA9, // cf,A9,A9
|
||
|
|
0x95,0xB5, // d4,B5,B5
|
||
|
|
0x96,0xC0, // da,C0,C0
|
||
|
|
0x97,0xCA, // e0,CA,CA
|
||
|
|
0x98,0xD4, // e4,D4,D4
|
||
|
|
0x99,0xDD, // e8,DD,DD
|
||
|
|
0x9a,0xE6, // ec,E6,E6
|
||
|
|
0x9b,0xEF, // f1,EF,EF
|
||
|
|
0xfd,0x01, // 01,01,01
|
||
|
|
0x8d,0xF7, // f7,F7,F7
|
||
|
|
0x8e,0xFF, // ff,FF,FF
|
||
|
|
0xfd,0x00, //
|
||
|
|
|
||
|
|
//rpc
|
||
|
|
0xfd,0x00,
|
||
|
|
0xe0,0x4c, // 4c,44,4c,3e,3c,3a,38,rpc_1base_max
|
||
|
|
0xe1,0x3c, // 3c,36,3c,30,2e,2c,2a,rpc_2base_max
|
||
|
|
0xe2,0x34, // 34,2e,34,2a,28,26,26,rpc_3base_max
|
||
|
|
0xe3,0x2e, // 2e,2a,2e,26,24,22,rpc_4base_max
|
||
|
|
0xe4,0x2e, // 2e,2a,2e,26,24,22,rpc_5base_max
|
||
|
|
0xe5,0x2c, // 2c,28,2c,24,22,20,rpc_6base_max
|
||
|
|
0xe6,0x2c, // 2c,28,2c,24,22,20,rpc_7base_max
|
||
|
|
0xe8,0x2a, // 2a,26,2a,22,20,20,1e,rpc_8base_max
|
||
|
|
0xe9,0x2a, // 2a,26,2a,22,20,20,1e,rpc_9base_max
|
||
|
|
0xea,0x2a, // 2a,26,2a,22,20,20,1e,rpc_10base_max
|
||
|
|
0xeb,0x28, // 28,24,28,20,1f,1e,1d,rpc_11base_max
|
||
|
|
0xf5,0x28, // 28,24,28,20,1f,1e,1d,rpc_12base_max
|
||
|
|
0xf6,0x28, // 28,24,28,20,1f,1e,1d,rpc_13base_max
|
||
|
|
|
||
|
|
//ae min gain
|
||
|
|
0xfd,0x01,
|
||
|
|
0x94,0xa0, //rpc_max_indr
|
||
|
|
0x95,0x28, // 1e rpc_min_indr
|
||
|
|
0x9c,0xa0, //rpc_max_outdr
|
||
|
|
0x9d,0x28, //rpc_min_outdr
|
||
|
|
//ae target
|
||
|
|
0xfd,0x00,
|
||
|
|
0xed,0x84, //80
|
||
|
|
0xf7,0x80, //7c
|
||
|
|
0xf8,0x78, //70
|
||
|
|
0xec,0x74, //6c
|
||
|
|
|
||
|
|
0xef,0x7c, //99
|
||
|
|
0xf9,0x78, //90
|
||
|
|
0xfa,0x70, //80
|
||
|
|
0xee,0x6c, //78
|
||
|
|
|
||
|
|
|
||
|
|
//gray detect
|
||
|
|
0xfd,0x01,
|
||
|
|
0x30,0x40,
|
||
|
|
//add 0813
|
||
|
|
0x31,0x70,
|
||
|
|
0x32,0x40,
|
||
|
|
0x33,0xef,
|
||
|
|
0x34,0x05,
|
||
|
|
0x4d,0x2f,
|
||
|
|
0x4e,0x20,
|
||
|
|
0x4f,0x16,
|
||
|
|
|
||
|
|
//lowlight lum
|
||
|
|
0xfd,0x00, //
|
||
|
|
0xb2,0x10, //lum_limit // 0x10
|
||
|
|
0xb3,0x1f, //lum_set
|
||
|
|
0xb4,0x30, //black_vt // 0x20
|
||
|
|
0xb5,0x45, //white_vt
|
||
|
|
|
||
|
|
//saturation
|
||
|
|
0xfd,0x00,
|
||
|
|
0xbe,0xff,
|
||
|
|
0xbf,0x01,
|
||
|
|
0xc0,0xff,
|
||
|
|
0xc1,0xd8,
|
||
|
|
0xd3,0x80, //0x78
|
||
|
|
0xd4,0x80, //0x78
|
||
|
|
0xd6,0x70, //0x78 0xd7,0x60, //0x78
|
||
|
|
0xd7,0x60,
|
||
|
|
|
||
|
|
//HEQ
|
||
|
|
0xfd,0x00,
|
||
|
|
0xdc,0x00,
|
||
|
|
0xdd,0x80, //0x80 0813 // 0x78
|
||
|
|
0xde,0xb8, //80 0x88 0813
|
||
|
|
0xdf,0x80,
|
||
|
|
|
||
|
|
//func enable
|
||
|
|
0xfd,0x00,
|
||
|
|
0x32,0x15, //0x0d
|
||
|
|
0x34,0x76, //16
|
||
|
|
0x35,0x40, //yuv 00
|
||
|
|
0x33,0xef,
|
||
|
|
0x5f,0x51,
|
||
|
|
0x1b,0xc ,
|
||
|
|
0x1C,0x28,
|
||
|
|
|
||
|
|
|
||
|
|
-1,-1};
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
SENSOR_OP_SECTION const _Sensor_Adpt_ sp0a19_cmd=
|
||
|
|
{
|
||
|
|
.typ = 1, //YUV
|
||
|
|
.pixelw = 640,
|
||
|
|
.pixelh= 480,
|
||
|
|
.hsyn = 1,
|
||
|
|
.vsyn = 1,
|
||
|
|
.rduline = 0,//
|
||
|
|
.rawwide = 1,//10bit
|
||
|
|
.colrarray = 2,//0:_RGRG_ 1:_GRGR_,2:_BGBG_,3:_GBGB_
|
||
|
|
.init = (uint8 *)SP0A19InitTable,
|
||
|
|
.rotate_adapt = {0},
|
||
|
|
.hvb_adapt = {0x80,0x0a,0x80,0x0a},
|
||
|
|
. mclk = 24000000,
|
||
|
|
.p_fun_adapt = {NULL,NULL,NULL},
|
||
|
|
.p_xc7016_adapt = {NULL},
|
||
|
|
};
|
||
|
|
|
||
|
|
const _Sensor_Ident_ sp0a19_init=
|
||
|
|
{
|
||
|
|
0xA6,0x42,0x43,0x01,0x01,0x02
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
#endif
|
||
|
|
|
||
|
|
|