📄 cameram.c
字号:
CAMERA_SetReg(0x3b, 0x2a);
CAMERA_SetReg(0x31, 0x00); // skin tone[6], CW delete[5]
// CAMERA_SetReg(0xfc, 0x03);
// CAMERA_SetReg(0x2d, 0x01);
CAMERA_SetSizeInS5K3BAF(eSub);
// CAMERA_SetReg(0xfc, 0x00);
// CAMERA_SetReg(0x02, 0x09);
// CAMERA_SetReg(0xfc, 0x04);
// CAMERA_SetReg(0x2d, 0x01);
//sfc07
//s521f //R center(CW)
//s539f //B center (5 bit,signed)
//s540f //0c //radius
//
//s551b //08 // R center(skin tone)
//s569f //86 // B center
//s574f //ff // width and depth
//////////////////////////////////////
//new
CAMERA_IICClose();
}
//////////
// Function Name : CAMERA_SetSizeInS5K3BAF
// Function Description : camera module(S5K3BA) Size calucate
// Input : IMG_SIZE eSrcSize(Source size)
// Output : None
void CAMERA_SetSizeInS5K3BAF(SUB_SAMPLING eSub)
{
u8 ucSub;
oCamera.m_ucSlaveAddr = 0x5a;
/// Size subsampling setting
ucSub = (eSub == SUB_SAMPLING0) ? 0 :
(eSub == SUB_SAMPLING2) ? 9 :
(eSub == SUB_SAMPLING4) ? 11 :
0xff;
Assert(ucSub < 0xff);
CAMERA_SetReg(0xfc, 0x00);
CAMERA_SetReg(0x02, ucSub);
}
void CAMERA_InitA3AFX_QVGA_20FR(void)
{
//u32 uHCLKx2;
SYSC_GetClkInform(); // Get HCLKx2 Frequency
//uHCLKx2 = g_HCLKx2/1000000;
oCamera.m_ucSlaveAddr = 0xc4;
// CAMERA_IICOpen(100000);
CAMERA_IICOpen(16000000);
//3.13 Pearl setting栏肺 矫累.
//------------------------------------------------------------------
// Set File
// - S5KA3AFX_xshade_061018.xls generates
// - date : 2007-03-12坷饶 3:20:55
//------------------------------------------------------------------
CAMERA_SetReg(0xef,0x01);
CAMERA_SetReg(0x70,0x00); //AE,AWB OFF
//QVGA
CAMERA_SetReg(0xef,0x00);
CAMERA_SetReg(0x7c,0xe0);
CAMERA_SetReg(0x81,0x01);
CAMERA_SetReg(0x82,0x50);
CAMERA_SetReg(0x7f,0x00);
CAMERA_SetReg(0x80,0xf0);
CAMERA_SetReg(0xc2,0x09);
CAMERA_SetReg(0xc6,0x01);
CAMERA_SetReg(0xc7,0x40);
CAMERA_SetReg(0xc4,0x00);
CAMERA_SetReg(0xc5,0xF0);
//// Page : 00
//CAMERA_SetReg(0xef,0x00);
//CAMERA_SetReg(0x0d,0x03);
//CAMERA_SetReg(0x0e,0x00);
//CAMERA_SetReg(0x0f,0x1F);
//CAMERA_SetReg(0x10,0x00);
//CAMERA_SetReg(0x11,0x37);
//CAMERA_SetReg(0x12,0x08);
//CAMERA_SetReg(0x13,0x42);
//CAMERA_SetReg(0x14,0x00);
//CAMERA_SetReg(0x15,0x12);
//CAMERA_SetReg(0x16,0x9E);
//CAMERA_SetReg(0x19,0x00);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xE0);
//CAMERA_SetReg(0x19,0x01);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xE3);
//CAMERA_SetReg(0x19,0x02);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xED);
//CAMERA_SetReg(0x19,0x03);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xCA);
//CAMERA_SetReg(0x19,0x04);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xD2);
//CAMERA_SetReg(0x19,0x05);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xEC);
//CAMERA_SetReg(0x19,0x06);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xE5);
//CAMERA_SetReg(0x19,0x07);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x12);
//CAMERA_SetReg(0x19,0x08);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xE6);
//CAMERA_SetReg(0x19,0x09);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x08);
//CAMERA_SetReg(0x19,0x0A);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xEA);
//CAMERA_SetReg(0x19,0x0B);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xDA);
//CAMERA_SetReg(0x19,0x0C);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xE3);
//CAMERA_SetReg(0x19,0x0D);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xF9);
//CAMERA_SetReg(0x19,0x0E);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x1C);
//CAMERA_SetReg(0x19,0x0F);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x12);
//CAMERA_SetReg(0x19,0x10);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x18);
//CAMERA_SetReg(0x19,0x11);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x08);
//CAMERA_SetReg(0x19,0x12);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xEB);
//CAMERA_SetReg(0x19,0x13);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xF9);
//CAMERA_SetReg(0x19,0x14);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xF4);
//CAMERA_SetReg(0x19,0x15);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x1F);
//CAMERA_SetReg(0x19,0x16);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x15);
//CAMERA_SetReg(0x19,0x17);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x11);
//CAMERA_SetReg(0x19,0x18);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x0E);
//CAMERA_SetReg(0x19,0x19);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x08);
//CAMERA_SetReg(0x19,0x1A);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xFE);
//CAMERA_SetReg(0x19,0x1B);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xF4);
//CAMERA_SetReg(0x19,0x1C);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x24);
//CAMERA_SetReg(0x19,0x1D);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x03);
//CAMERA_SetReg(0x19,0x1E);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x02);
//CAMERA_SetReg(0x19,0x1F);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xFF);
//CAMERA_SetReg(0x19,0x20);
//CAMERA_SetReg(0x17,0x00);
//CAMERA_SetReg(0x18,0x12);
//CAMERA_SetReg(0x19,0x21);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xE5);
//CAMERA_SetReg(0x19,0x22);
//CAMERA_SetReg(0x17,0x07);
//CAMERA_SetReg(0x18,0xD1);
//CAMERA_SetReg(0x19,0x40);
//
//CAMERA_SetReg(0xef,0x02);
//CAMERA_SetReg(0x59,0x50); //P, S
//CAMERA_SetReg(0x5a,0x32); //M
//CAMERA_SetReg(0x58,0x21); //PLL
//////////////////////////////////////////////////////////
CAMERA_SetReg(0xef,0x02); // CIS page
//CAMERA_SetReg(0x4b,0x5E); // PCLK driving current max
//CAMERA_SetReg(0x23,0xd8); // Tx width
CAMERA_SetReg(0x3a,0x20); // double shutter off
CAMERA_SetReg(0x65,0x08); // CIS mode
CAMERA_SetReg(0x0a,0x90); // Display WCW
CAMERA_SetReg(0x01,0x26); // E-shutter enable
CAMERA_SetReg(0x03,0x78); // S1R END **** Revised at EVT1
CAMERA_SetReg(0x05,0x00); // S1S end value control
CAMERA_SetReg(0x07,0xE5); // s2 END
CAMERA_SetReg(0x09,0x0E); // S4 END
CAMERA_SetReg(0x0b,0x84); //85 //81 // Analog offset
CAMERA_SetReg(0x13,0xa0); //20 // R_REF
//CAMERA_SetReg(0x15,0x80); // EC COMP 100'b
CAMERA_SetReg(0x1c,0x58); //20070304AM //57 // global gain **** Revised at EVT1
CAMERA_SetReg(0x24,0x3d); // i_cds **** Revised at EVT1
CAMERA_SetReg(0x26,0x25); // clamp level control **** Revised at EVT1
CAMERA_SetReg(0x29,0x8f); // CFPN start frame (16);
CAMERA_SetReg(0x4b,0x5b); // IO driving current
CAMERA_SetReg(0x56,0x05); // Line ADLC
//CAMERA_SetReg(0x58,0x61); // amp bias current source select (71h : self bias);
CAMERA_SetReg(0x5f,0x06); // aps bias current
CAMERA_SetReg(0x67,0x3c); // EC_COMP & SAVG_END
CAMERA_SetReg(0x68,0x10); // i_rmp control
CAMERA_SetReg(0x69,0x13); // i_mid
//CAMERA_SetReg(0x58,0x21); // PLL on
//CAMERA_SetReg(0x59,0x1A); // pll_s=0, pll_p=26,
//CAMERA_SetReg(0x5A,0x1A); // pll_m=26
CAMERA_SetReg(0x28,0x9B); // CFPN on **** Revised at EVT1
//061011
CAMERA_SetReg(0xef,0x01);
CAMERA_SetReg(0xd1,0xaa); //89:16.7MHz, d2:24MHz 64:13MHz dc:25MHz 13MHz //d2 //d2(24MHz); Mclk Value (Mclk - 30d);/100,000
//CAMERA_SetReg(0xd1,0x64); //64(13MHz); Mclk Value (Mclk - 30d);/100,000
//CAMERA_SetReg(0xd9,0x15); //AE saturation CHIP_DEBUG
//////////
//page 0
//////////
CAMERA_SetReg(0xef,0x00);
//CAMERA_SetReg(0x09,0x3e); //gr gain
CAMERA_SetReg(0xef,0x00);
CAMERA_SetReg(0x27,0x40); //08 //GR/GB Correction Limitation Value
CAMERA_SetReg(0x29,0x60); //GrGb Edge Threshold Value
// AE Window
CAMERA_SetReg(0xef,0x00);
CAMERA_SetReg(0x55,0x00); //Window diplay off
CAMERA_SetReg(0x58,0x00);
CAMERA_SetReg(0x59,0x00);
CAMERA_SetReg(0x5a,0x02);
CAMERA_SetReg(0x5b,0x80);
CAMERA_SetReg(0x5c,0x00);
CAMERA_SetReg(0x5d,0x00);
CAMERA_SetReg(0x5e,0x01);
CAMERA_SetReg(0x5f,0xe0);
CAMERA_SetReg(0x60,0x00);
CAMERA_SetReg(0x61,0x00);
CAMERA_SetReg(0x62,0x02);
CAMERA_SetReg(0x63,0x80);
CAMERA_SetReg(0x64,0x00);
CAMERA_SetReg(0x65,0x00);
CAMERA_SetReg(0x66,0x01);
CAMERA_SetReg(0x67,0xe0);
CAMERA_SetReg(0xef,0x01); // AE weight
CAMERA_SetReg(0x77,0x01);
CAMERA_SetReg(0x78,0x01);
//CAMERA_SetReg(0x79,0x03);
//CAMERA_SetReg(0x7a,0x03);
//CAMERA_SetReg(0x7b,0x04);
//CAMERA_SetReg(0x7c,0x04);
CAMERA_SetReg(0xef,0x00);
//CAMERA_SetReg(0x57,0x18); // AE Lux min threshold
CAMERA_SetReg(0xd9,0xc0); // color edge threshold
////AWB Luminance check
////20070212 Added for low light starting env.
CAMERA_SetReg(0xef,0x00);
CAMERA_SetReg(0xad,0x03); //Luminance upper_level[9:8]
CAMERA_SetReg(0xae,0x20); //Luminance upper_level[7:0]
CAMERA_SetReg(0xaf,0x00); //Luminance lower_level[9:8]
CAMERA_SetReg(0xb0,0x90); //Luminance lower_level[7:0]
/////////////////////////////////////////////////////
//page 1/////////////////////////////////////////////
/////////////////////////////////////////////////////
CAMERA_SetReg(0xef,0x01);
////20070212 Modified for low light starting env.
CAMERA_SetReg(0x83,0x72); //7d //AWB R/B Max Gain : <0.44>'s max
CAMERA_SetReg(0x84,0x38); //30 //AWB R/B Min Gain : <0.42>'s max
CAMERA_SetReg(0xa8,0x41); //20070222 //shutter Control
CAMERA_SetReg(0xa9,0xd4); //20070222 //Shutter Threshold
CAMERA_SetReg(0xaf,0x04); //20070213PM //00 //L.L Brightness
CAMERA_SetReg(0xb4,0x88); //20070213 //b0 //a0 // N.L contrast
CAMERA_SetReg(0xb5,0x88); //20070213 //b0 //a0 // L.L contrast
CAMERA_SetReg(0xbc,0x66); //20070305PM //26 //20070213 //AWB skip point (default:16);
CAMERA_SetReg(0xb7,0x46); //58 //68 // N.L color saturation
CAMERA_SetReg(0xb8,0x46); //20070305PM //30 //52 // L.L color saturation
//CAMERA_SetReg(0x70,0x97); //17 // fix PAL(50Hz);
CAMERA_SetReg(0x71,0x7a); //6a); //20070213PM //55 //5a //68 //70 //6f //4d //60 //78 //AE target
CAMERA_SetReg(0x72,0x09); //20070214PM //07 //0c //12 //0a //05 //12 // AE threshold
//CAMERA_SetReg(0x73,0x34); //20070214PM //AE Step Guard Value
CAMERA_SetReg(0x74,0x6b); //60 //70 //74 //70 // low agc max
CAMERA_SetReg(0x75,0x40); // normal agc max
CAMERA_SetReg(0xa6,0x40); //80 //N.L sharpness H/V Gain
CAMERA_SetReg(0xab,0x40); //38 //18 //60 //N.L NR Edge
CAMERA_SetReg(0xad,0x80); //40 //20 //L.L NR Edge
//CAMERA_SetReg(0xa3,0x30); //AWB speed //EVT0篮 绊沥登绢 乐澜.(0x03); //EVT1篮 函版 啊瓷.
CAMERA_SetReg(0xcc,0x09); //08 //Flicker threshold 12
CAMERA_SetReg(0xd5,0x22); //23 //32 //Chip_Debug2
CAMERA_SetReg(0xe0,0x06); // NT Max
CAMERA_SetReg(0xe2,0x06); //07 //18 // Low NT max
CAMERA_SetReg(0xe1,0x05); // PAL Max
CAMERA_SetReg(0xe3,0x05); //07 //18 // Low PAL max
CAMERA_SetReg(0xe4,0x00); // 24MHz VblankH (H.L); //FPS (24MHz, 15fps);
CAMERA_SetReg(0xe5,0x77); //ea // 24MHz NT VblankL (H.L);
//CAMERA_SetReg(0xe4,0x00); // 13MHz VblankH (H.L); //FPS (24MHz, 15fps);
//CAMERA_SetReg(0xe5,0x2a); // 13MHz VblankL (H.L);
CAMERA_SetReg(0xe6,0x00); //20070215AM // 24MHz VblankH (H.L); //FPS (24MHz, 15fps);
CAMERA_SetReg(0xe7,0x2a); //20070215AM //ea // 24MHz NT VblankL (H.L);
CAMERA_SetReg(0xe8,0x68); //44 //84 //97 // ae speed
CAMERA_SetReg(0xe9,0x84); //Double shutter ON
//CAMERA_SetReg(0xe9,0x87);
CAMERA_SetReg(0xef,0x00);
//CAMERA_SetReg(0x8c,0x0e); //skin color detection
CAMERA_SetReg(0xc8,0x09); //0a //YC delay
////////////////////////////////////////
// Color Correction -> Shading -> Gamma -> AWB -> Hue
////////////////////////////////////////
// Color Correction
//CAMERA_SetReg(0xef,0x00); // //D65-1 //D65 //CW //U30-6 //U30 //Old
//CAMERA_SetReg(0x4c,0x40); //95 //95 //81 //8a //50 //62 //56
//CAMERA_SetReg(0x4d,0x92); //c2 //c2 //ba //d2 //af //a9 //8d
//CAMERA_SetReg(0x4e,0x0f); //92 //92 //87 //07 //1f //07 //89
//CAMERA_SetReg(0x4f,0x9a); //9b //9b //98 //9e //9e //a2 //94
//CAMERA_SetReg(0x50,0x3b); //73 //73 //64 //4c //2e //47 //5c
//CAMERA_SetReg(0x51,0x1e); //98 //98 //8c //12 //30 //1b //8b
//CAMERA_SetReg(0x52,0x82); //80 //80 //80 //80 //86 //85 //80
//CAMERA_SetReg(0x53,0xbf); //b3 //b3 //ad //cd //eb //f2 //91
//CAMERA_SetReg(0x54,0x7f); //73 //73 //6d //8e //b2 //b8 //51
////CW
CAMERA_SetReg(0xef,0x00);
CAMERA_SetReg(0x4c,0x92);
CAMERA_SetReg(0x4d,0xcf);
CAMERA_SetReg(0x4e,0x82);
CAMERA_SetReg(0x4f,0xad);
CAMERA_SetReg(0x50,0x6e);
CAMERA_SetReg(0x51,0x80);
CAMERA_SetReg(0x52,0x87);
CAMERA_SetReg(0x53,0xeb);
CAMERA_SetReg(0x54,0xb2);
//
////D65
//CAMERA_SetReg(0xef,0x00);
//CAMERA_SetReg(0x4c,0x8a);
//CAMERA_SetReg(0x4d,0xc2);
//CAMERA_SetReg(0x4e,0x88);
//CAMERA_SetReg(0x4f,0x9f);
//CAMERA_SetReg(0x50,0x72);
//CAMERA_SetReg(0x51,0x93);
//CAMERA_SetReg(0x52,0x81);
//CAMERA_SetReg(0x53,0xca);
//CAMERA_SetReg(0x54,0x8c);
//Default
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -