Files
TAIXIN/sdk/lib/bus/iic/sensor/sensor_sp0a19.c

389 lines
7.4 KiB
C
Raw Permalink Normal View History

#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