www.pudn.com > Camera.rar > camdata.h


/***************************************** 
  NAME: camdata.h 
  DESC: data for initializing camera module 
  HISTORY:  2004.01.16:draft ver 0.0 
 *****************************************/ 
 
#ifndef __CAMDATA_H__ 
#define __CAMDATA_H__ 
 
#ifdef __cplusplus 
extern "C"{ 
#endif 
 
#include "Camdef.h" 
 
#define	CAM_ACT_HSIZE	(640)	// Max 640 
#define	CAM_ACT_VSIZE	(480)	// Max 480 
#define	CAM_STX		(0x2f)	//47 
#define	CAM_STY		(6)		//6 
#define	CAM_ENDX		(((CAM_ACT_HSIZE)/4) + CAM_STX) 
#define	CAM_ENDY		((CAM_ACT_VSIZE/2) + CAM_STY-1) 
 
 
const unsigned char Ov7620_Yuv16bit[][2] = { 
 
	{0x12, 0x80},			// Camera Soft reset. Self cleared after reset. 
	{0x17, CAM_STX},		// 
	{0x18, CAM_ENDX},	// (207-47)*4 = 640 
	{0x19, CAM_STY},		// 
	{0x1a, CAM_ENDY},	// ((244-5)+1)*2=480 
 
	{0x01, 0x80},		// set blue gain 
	{0x02, 0x80},		// set red gain 
	{0x03, 0xb0}, 
	{0x06, 0x70},		// set brightness 
	{0x07, 0x00}, 
	{0x0c, 0x24},		// set blue background 
	{0x0d, 0x24},		// set red background 
	{0x10, 0xff},		// set exposure time, brightness control 
	{0x11, 0x40},		// set frame rate 27Mhz/[(0+1)*2]=13.5MHz 
	{0x12, 0x24},		// set YUV mode, enable AGC/AWB, mirror image. 
	{0x15, 0x01},		// Use PCLK rising edge to latch data 
	{0x16, 0x03},		// 
	{0x12, 0x64},		// set YUV mode, enable AGC/AWB, mirror image. 
	{0x13, 0x01},		// YUV 16-bit format, Disable AEC/AGC/AWB 
	{0x14, 0x84},		// turn off GAMMA 
	{0x24, 0x3a},		// 
	{0x25, 0x60},		// 
	{0x28, 0x20},		// Progressive mode. 
	{0x2d, 0x95},		// 
	{0x67, 0x92},		// 
	{0x74, 0x00}		// 
}; 
 
 
const unsigned char Ov7620_YCbCr8bit[][2] = { 
 
	{0x12, 0x80},		// Camera Soft reset. Self cleared after reset. 
	{0x00, 0x00}, 
	{0x01, 0x80},		// set blue gain 
	{0x02, 0x80},		// set red gain 
	{0x03, 0xb0}, 
	{0x06, 0x60},		// set brightness 
	{0x0c, 0x24},		// set blue background 
	{0x0d, 0x24},		// set red background 
	{0x10, 0xff},		// set exposure time, brightness control 
	{0x11, 0x80},		// set frame rate CLK_input = PCLK 
	{0x13, 0x21},		// set 8 Bit YUV mode	 
	{0x14, 0x94},  
	{0x16, 0x03},		// 
	{0x17, 0x2f},		// 
	{0x18, 0xcf},	        // (207-47)*4 = 640 
	{0x19, 0x06},		// 
	{0x1a, 0xf5},	        // ((244-5)+1)*2=480 
	{0x1b, 0x00}, 
	{0x20, 0x00}, 
	{0x21, 0x80}, 
	{0x22, 0x80}, 
	{0x23, 0x00}, 
	{0x26, 0xa2}, 
	{0x27, 0xea}, 
	{0x29, 0x00}, 
	{0x2a, 0x00}, 
	{0x2b, 0x00}, 
	{0x2c, 0x88}, 
	{0x2e, 0x80}, 
	{0x2f, 0x44}, 
	{0x60, 0x27}, 
	{0x61, 0x82}, 
	{0x62, 0x5f}, 
	{0x63, 0xd5}, 
	{0x64, 0x57}, 
	{0x65, 0x83}, 
	{0x66, 0x55}, 
	{0x68, 0xcf}, 
	{0x69, 0x76}, 
	{0x6a, 0x22}, 
	{0x6b, 0x00}, 
	{0x6c, 0x08}, 
	{0x6d, 0x48},	 
	{0x6e, 0x80}, 
	{0x6f, 0x0c}, 
	{0x70, 0x89}, 
	{0x71, 0x00}, 
	{0x72, 0x14}, 
	{0x73, 0x54},	 
	{0x75, 0x0e}, 
	{0x76, 0x00}, 
	{0x77, 0xff}, 
	{0x78, 0x80}, 
	{0x79, 0x80}, 
	{0x7a, 0x80}, 
	{0x7b, 0xe6}, 
	{0x7c, 0x00},	 
	{0x24, 0x10}, 
	{0x25, 0x8a}, 
	{0x28, 0x20},		 
	{0x2d, 0x95}, 
	{0x67, 0x92}, 
	{0x74, 0x00}, 
 
	{0x15, 0x41},		// inversed PCLK : falling edge to get data, 8 Bit -U-V- sequence.... 
	{0x12, 0x34}, 	// enable AGC/AWB, mirror image. YUYV-must set at last.. 
}; 
 
const unsigned char Au70h[][2] = { 
 
    {0x01,0x0b}, /*0x04*/ //5x5 interpolation VGA mode 
#if AU70H_VIDEO_SIZE==640 
	{0x08,0x00}, 
	{0x09,0xc0}, 
	{0x0a,0x01}, 
	{0x0b,0x00}, 
	{0x0c,0x01}, 
	{0x0d,0xe0}, 
	{0x0e,0x02}, 
	{0x0f,0x80}, 
#elif AU70H_VIDEO_SIZE==1152 
	{0x08,0x00}, 
	{0x09,0x02}, 
	{0x0a,0x00}, 
	{0x0b,0x02}, 
	{0x0c,0x03}, 
	{0x0d,0x60}, 
	{0x0e,0x04}, 
	{0x0f,0x80}, 
#endif 
	{0x18,0x01}, 
	{0x19,0x3f}, 
	{0x1a,0x13}, 
	{0x1b,0x7f}, 
	{0x1c,0x08}, 
	{0x20,0x13}, 
	{0x21,0x01}, 
	{0x22,0x01}, 
	{0x23,0x01}, 
	{0x27,0xf0}, 
	{0x30,0xfe}, 
	{0x31,0x31}, //YCbCr 8bit 0x31,0x11 
	{0x32,0x00}, 
	{0x33,0x03}, 
	{0x67,0xa5},  //??? 
	{0x68,0x2c}, 
	{0x69,0x2a}, 
	{0x73,0x79}, 
	{0x75,0x03}, 
	{0x76,0x08}, 
	{0x77,0x35}, 
	{0x81,0x19}, 
	{0x90,0x01}, 
	{0x91,0x06}, 
	{0x92,0x1a}, 
	{0x93,0x80}, 
 
	{0x6a,0x01}, 
	{0x6b,0x38}, 
	{0x6c,0x80}, 
	 
	{0x6d,0x09}, 
	{0x6e,0xc4}, 
	{0x6f,0x00}, 
	 
	{0x60,0x99}, 
	 
	{0x63,0x03}, 
	{0x64,0xa9}, 
	{0x65,0x80}, 
	 
	{0x66,0x30}, 
	{0x70,0x44}, 
	{0x71,0x00}, 
	 
	//{0x14,0x8}, 
	//{0x16,0x8}, 
	 
	{0x70,0x45}, 
	{0x71,0x02}, 
	{0x66,0x70} 
}; 
 
const unsigned char S5X532_YCbCr8bit[][2] =  
{ 
#if 0  
	// page 5 
	{0xec,0x05}, 
	{0x08,0x55}, 
	{0x0a,0x75}, 
	{0x0c,0x90}, 
	{0x0e,0x18}, 
	{0x12,0x09}, 
	{0x14,0x9d}, 
	{0x16,0x90}, 
	{0x1a,0x18}, 
	{0x1c,0x0c}, 
	{0x1e,0x09}, 
	{0x20,0x06}, 
	{0x22,0x20}, 
	{0x2a,0x00}, 
	{0x2d,0x04}, 
	{0x12,0x24}, 
	// page 3 
	{0xec,0x03}, 
	{0x0c,0x09}, 
	{0x6c,0x09}, 
	{0x2b,0x10}, // momo clock inversion 
	// page 2 
	{0xec,0x02}, 
	{0x03,0x09}, 
	{0x05,0x08}, 
	{0x06,0x01}, 
	{0x07,0xf8}, 
	{0x15,0x25}, 
	{0x30,0x29}, 
	{0x36,0x12}, 
	{0x38,0x04}, 
	{0x1b,0x77}, // 24MHz : 0x77, 12MHz : 0x22 
	{0x1c,0x77}, // 24MHz : 0x77, 12MHz : 0x22 
	// page 1 
	{0xec,0x01}, 
	{0x00,0x03}, //  
	{0x0a,0x08}, // 0x0-QQVGA, 0x06-CIF, 0x02-QCIF, 0x08-VGA, 0x04-QVGA, 0x0a-SXGA 
	{0x0c,0x00}, // Pattern selectio. 0-CIS, 1-Color bar, 2-Ramp, 3-Blue screen 
	{0x10,0x27}, // 0x21-ITU-R656(CbYCrY), 0x25-ITU-R601(CbYCrY), 0x26-ITU-R601(YCrYCb) 
	{0x50,0x21},		// Hblank 
	{0x51,0x00},		// Hblank 
	{0x52,0xA1},		// Hblank 
	{0x53,0x02},		// Hblank 
	{0x54,0x01},		// Vblank 
	{0x55,0x00},		// Vblank 
	{0x56,0xE1},		// Vblank 		 
	{0x57,0x01},		// Vblank 
	{0x58,0x21},		// Hsync 
	{0x59,0x00},		// Hsync 
	{0x5a,0xA1},		// Hsync 
	{0x5b,0x02},		// Hsync 
	{0x5c,0x03},		// Vref 
	{0x5d,0x00},		// Vref 
	{0x5e,0x05},		// Vref 
	{0x5f,0x00},		// Vref	 
	{0x70,0x0E}, 
	{0x71,0xD6}, 
	{0x72,0x30}, 
	{0x73,0xDB}, 
	{0x74,0x0E}, 
	{0x75,0xD6}, 
	{0x76,0x18}, 
	{0x77,0xF5}, 
	{0x78,0x0E}, 
	{0x79,0xD6}, 
	{0x7a,0x28}, 
	{0x7b,0xE6}, 
	{0x50,0x00}, 
	{0x5c,0x00}, 
 
	// page 0 
	{0xec,0x00}, 
	{0x79,0x01}, 
	{0x58,0x90}, 
	{0x59,0xA0}, 
	{0x5a,0x50}, 
	{0x5b,0x70}, 
	{0x5c,0xD0}, 
	{0x5d,0xC0}, 
	{0x5e,0x28}, 
	{0x5f,0x08}, 
	{0x50,0x90}, 
	{0x51,0xA0}, 
	{0x52,0x50}, 
	{0x53,0x70}, 
	{0x54,0xD0}, 
	{0x55,0xC0}, 
	{0x56,0x28}, 
	{0x57,0x00}, 
	{0x48,0x90}, 
	{0x49,0xA0}, 
	{0x4a,0x50}, 
	{0x4b,0x70}, 
	{0x4c,0xD0}, 
	{0x4d,0xC0}, 
	{0x4e,0x28}, 
	{0x4f,0x08}, 
	{0x72,0x82}, // main clock = 24MHz:0xd2, 16M:0x82, 12M:0x54 
	{0x75,0x05} // absolute vertical mirror.  junon 
#else 
///3aa//////////////////////////////////////////////////////////////////// 
// page 1 
 
{0xec,0x01}, 
{0x28,0x10},	//Edge Enhancement Noise Slice 
 
////////////////// 
//Computer Encoding 
//s8b21	//V Output Sync inversion, Full_YC On,SCK656_INV_R 
//s1941	//Y Coef 
 
//1b19 
//s48ee	//Cb Coef   
//s4a38 
//s4738	//Cr Coef                                                     
//s49f7  
/////////////////// 
//SDTV Encoding 
{0x8b,0x23},	//V Output Sync inversion, Full_YC On,SCK656_INV_R 
{0x19,0x4d},	//Y Coef 
{0x1a,0x96}, 
{0x1b,0x1d}, 
{0x48,0xea},	//Cb Coef   
{0x4a,0x41}, 
{0x47,0x41},	//Cr Coef                                                     
{0x49,0xf5}, 
 
{0x2d,0x15},	//Adjust YGRPDLY 3clk->0clk 
 
///// Color Matrix 
////s107e 
////s12fe 
////s187e	//a0  
 
//s1cd0   //Highlight Suppress Reference 
 
{0xaa,0xe0},   //For AWB, High Threshold Value of Y signal 
{0xab,0x10},	//30	//For AWB, Low Threshold Value of Y signal 
 
// Pixel Filter 
{0xac,0x80},   //AWB B-G Low Threshold 
{0xad,0x80},	//AWB B-G High Threshold 
{0xae,0x80},	//AWB R-G Low Threshold 
{0xaf,0x80},	//AWB R-G Low Threshold 
{0xb0,0x60},	//AWB R-G,B-G High Threshold 
{0xb1,0x80},	//AWB R-G,B-G Low Threshold 
 
//*************************************************** 
// page 2 
{0xec,0x02}, 
{0x05,0x0b}, 
{0x07,0x0b}, 
{0x26,0x86},   //ADLC Set 
{0x2d,0x00},	//APS Bias Current   6uA  ---> 1uA	for SHBN & HN reduce  
{0x2e,0x50},	//Ramp Gain 
{0x2f,0x30},	//Ramp Bias Current	for SHBN reduce  
{0x30,0x05},	//for reducing noise... switch cap 
 
//*************************************************** 
// page 3,4 
//Y,Cr first ITU R-601 format 
//sec01 
//s6a07	 
{0xec,0x03}, 
{0x06,0x07},	 
{0xec,0x04}, 
{0x06,0x07},	 
 
// VCK inversion(data rising) 
//sec01 
//s690f	 
{0xec,0x03}, 
{0x05,0x0f},	 
{0xec,0x04}, 
{0x05,0x0f},	 
 
////////////////////////////// 
// control start position(hsync hblank ) 
// to remove broken pixel width on left side  
//sec01 
//s783d	//HBLK START 
//s823d	//HS656 START 
{0xec,0x04}, 
{0x0e,0x3d}, 
{0x18,0x3d}, 
 
//*************************************************** 
// page 5 
// Shading 
{0xec,0x05}, 
{0x00,0x0d},	//Shading Old(Y shading) ON & Shading New(RGB Shading) OFF 
//s000f	//Shading Old(Y shading)  & Shading New(RGB Shading) 
 
//RGB Shading 
{0x05,0x05},   //R Shading of RGB Shading 
{0x06,0x05}, 
{0x07,0x05}, 
{0x08,0x05}, 
{0x09,0x00},   //GR Shading of RGB Shading 
{0x0a,0x00}, 
{0x0b,0x00}, 
{0x0c,0x00}, 
{0x0d,0x00},   //GB Shading of RGB Shading 
{0x0e,0x00}, 
{0x0f,0x00}, 
{0x10,0x00}, 
{0x11,0x00},   //B Shading of RGB Shading 
{0x12,0x00}, 
{0x13,0x00}, 
{0x14,0x00}, 
 
// Y Shading 
{0x2d,0xd0},	 
{0x2e,0xb0},	 
{0x2f,0xa0},	 
{0x30,0x88},	 
{0x31,0x88},	 
{0x32,0xa0},	 
{0x33,0xb0},	 
{0x34,0xd0},	 
 
{0x35,0xd0},	 
{0x36,0xb0},	 
{0x37,0x98},	 
{0x38,0x88},	 
{0x39,0x88},	 
{0x3a,0x98},	 
{0x3b,0xb0},	 
{0x3c,0xd0},	 
//*************************************************** 
// page 6 
//adjust AE window 
//sec01 
////s9718 
////s9ae0 
////s9c20 
////s9ee8 
{0xec,0x06}, 
{0x00,0x18}, 
{0x02,0xe0}, 
{0x04,0x20}, 
{0x06,0xe8}, 
/// 
////adjust AWB window 
////sec01 
////sa05a 
////sa2d8 
////sa433 
////sa6ba 
{0xec,0x06}, 
{0x08,0x5a}, 
{0x0a,0xd8}, 
{0x0c,0x33}, 
{0x0e,0xba}, 
 
{0x8c,0x0b},	//in case of wrp wcp control for mirror 
{0x8d,0x0c}, 
{0x8e,0x0b}, 
{0x8f,0x0c}, 
 
//*************************************************** 
// page 7 
{0xec,0x07}, 
{0x3c,0x00},	//adjust AWB internal window boundary to decrease skin color tracking 
 
//to dectect 50Hz flicker in 25Mhz 7.5fps 
{0x60,0x10},	//adjust flicker thres 
{0x62,0x11},	//adjust edge detection boundary 
{0x63,0x07},	//04	//duration of flicker 
      
{0x69,0x10},	//for mirror 
{0x70,0x00},   //BLC Off 
 
//*************************************************** 
// page 0 
{0xec,0x00}, 
// Mirror 
{0x23,0x52},	//RV/H Control 
 
//////////////////////////// 
//Adjust AWB boundary 
{0xec,0x00}, 
{0x34,0x08},	//0e	//Rgain Max 
{0x37,0x0b},	//05	//Blimit High 
{0x39,0x06},	//06	//Blimit Low 
{0x3a,0x05},	//08	//Slope Bottom 
{0x3b,0x10},	//13	//08	//Slope Top 
 
{0x83,0xa0},	//c0	//Color suppress 
//s8a04	//unstable diff 
 
{0xbb,0x01},	//AWB AE Diff 
{0xbc,0x00}, 
//////////////////////////// 
// improve AE speed 
{0xec,0x00}, 
{0x92,0x80},	//AE ratio high 
{0xec,0x07}, 
{0x10,0x30},	//AGC predict ON 
 
///////////////////////////// 
// Color Tunning 
 
////1st. White Point  
{0xec,0x07}, 
{0x17,0x44},	//Increase Ggain 
 
//White Point                                
{0xec,0x00},   
{0x40,0x1a},	 
{0x41,0x4f},	 
{0x42,0x21},	 
{0x43,0x40},	 
{0x44,0x2e},	 
{0x45,0x30},	 
//Change start point of RBgain 
{0xa4,0x2e}, 
{0xa5,0x30}, 
{0x7f,0x30}, 
 
///2nd Veiwing 5100 DNP, Adjust RGBgain of AWB 
{0x79,0xff},	//Rgain 
{0x7a,0x03},	//Bgain 
{0xec,0x07},	 
{0x11,0xff},	//Ggain 
 
////3rd AE target, Gamma 
{0xec,0x00}, 
{0x6c,0x08},   //AE Target 
 
//Y Gamma 
{0xec,0x01}, 
{0x2e,0x08}, 
{0x2f,0x10}, 
{0x30,0x20}, 
{0x31,0x58},		 
{0x32,0xfe},		 
{0x33,0xa8},		 
{0x34,0x6c},		 
{0x35,0xff},		 
{0x36,0x00},	 
{0x37,0x1b},	 
 
//C Gamma   
{0x55,0x08},		    	 
{0x56,0x10},		    	 
{0x57,0x20},		    	 
{0x58,0x58},		 
{0x59,0xfe},		 
{0x5a,0xa8},		   
{0x5b,0x8c},		 
{0x5c,0xcf},		 
{0x5d,0x00},		 
{0x5e,0x1b},		 
 
///4th Hue, Color Level 
{0xec,0x00}, 
{0x77,0xa9},  //da //Color Level 
{0x76,0x75},  
 
//Hue, Gain control                            
{0x48,0xd0},			                   
{0x49,0xf0},//fe		      
{0x4a,0x48},			                   
{0x4b,0x28},//38		       
{0x4c,0xfe},		       
{0x4d,0xfe},		       
{0x4e,0x58},			   
{0x4f,0x10},			    
 
{0x50,0xc0},			                        
{0x51,0xf0},//fe		           
{0x52,0x4a},			                
{0x53,0x28},//38			 
{0x54,0xfe},		    
{0x55,0xfe},		         
{0x56,0x60},		         
{0x57,0x10},			 
 
{0x58,0xb0},			 
{0x59,0xf0},//fe		    
{0x5a,0x50},			 
{0x5b,0x38},//48			 
{0x5c,0xf0},		    
{0x5d,0xfe},		    
{0x5e,0x60},		    
{0x5f,0x10},		 
 
////5th Adjust AE weight 
{0xec,0x07}, 
{0x80,0x10},	//10	 
{0x81,0x01},	//00	 
{0x82,0x01},	//01	 
{0x83,0x01},	//02	 
{0x84,0x04},	//02	 
 
//////////////////////////// 
// Control Gain 
{0xec,0x00}, 
{0x78,0x60},	//Total gain x4 (Only Analog x4) 
{0x2d,0x5a},	//Frame AE start 
{0x82,0x5A},	//Color Suppress AGC Min 
 
/////////////////////////// 
// Control BPRM 
// CIS BPR always off 
{0xec,0x00}, 
{0x7e,0x87},	//Color Suppress On, Y gain On, Digital clamp On, DBPRM On 
{0x86,0x01},	//DBPR AGC MIN 
{0x87,0x00},	//DBPRM THRES. MIN 
//s8710	//DBPRM THRES. MIN.. optimize between BPR and Pseudo color 
{0xec,0x07}, 
{0x21,0x90},	//50	//DBPRM THRES. MAX 
{0x22,0x20},	//DBPR AGC MAX 
 
//********************************************************* 
// If you change MCLK or Frame rate, you change below register 
//********************************************************* 
///////////////////////////// 
///Adjust Global Gain  
{0xec,0x02}, 
{0x1f,0x0f},	// if MCLK is 25Mhz 
 
//////////////////////////// 
//Flicker setting 
{0xec,0x00}, 
{0x72,0x7a},	// if MCLK is 25Mhz 
 
//////////////////////////// 
// Adjust Vblank depth 
 
/// Make 25Mhz 7.5fps  
{0xec,0x02}, 
{0x17,0x00}, 
{0x18,0x8c}, 
 
{0xec,0x04}, 
{0x01,0x00}, 
{0x02,0x8c}, 
//********************************************************* 
 
//////////////////////////// 
//Flicker setting 
{0xec,0x00}, 
{0x74,0x14},  // Auto Flicker start 60hz for 7.5fps 
 
//////////////////////////// 
// Frame AE  
{0xec,0x00}, 
{0x73,0x11},	// frame 1/2 
#endif 
}; 
 
const unsigned char S5X3A1_YCbCr8bit[][2] =  
{  
	// page 0 
	{0xec,0x00}, 
//	{0x72,0xd2}, //main clock = 27MHz:0x00, 24MHz:0xd2, ... 
	{0x01,0x00}, //SXGA 
	// page 1 
	{0xec,0x01}, 
	{0x0b,0x10}, // href type 
	{0x5c,0x01}, // href type 
	{0x5d,0x00}, // href type 
	{0x5e,0x01}, // href type 
	{0x5f,0x04}, // href type 
	 
	// page 0 
	{0xec,0x00} 
}; 
 
#ifdef __cplusplus 
} 
#endif 
 
#endif /*__CAMDATA_H__*/