779 lines
15 KiB
C
779 lines
15 KiB
C
|
/*
|
|||
|
* Copyright (c) 2006-2022, RT-Thread Development Team
|
|||
|
*
|
|||
|
* SPDX-License-Identifier: Apache-2.0
|
|||
|
*
|
|||
|
* Change Logs:
|
|||
|
* Date Author Notes
|
|||
|
* 2020-07-27 thread-liu first version
|
|||
|
*/
|
|||
|
|
|||
|
#ifndef __DRV_OV2640_H__
|
|||
|
#define __DRV_OV2640_H__
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C" {
|
|||
|
#endif
|
|||
|
|
|||
|
#include <board.h>
|
|||
|
|
|||
|
#define OV2640_MID 0X7FA2
|
|||
|
#define OV2640_PID 0X2642
|
|||
|
|
|||
|
|
|||
|
//褰撻<E8A4B0>夋嫨DSP鍦板潃(0XFF=0X00)鏃<>,OV2640鐨凞SP瀵勫瓨鍣ㄥ湴鍧<E6B9B4>鏄犲皠琛<E79AA0>
|
|||
|
#define OV2640_DSP_R_BYPASS 0x05
|
|||
|
#define OV2640_DSP_Qs 0x44
|
|||
|
#define OV2640_DSP_CTRL 0x50
|
|||
|
#define OV2640_DSP_HSIZE1 0x51
|
|||
|
#define OV2640_DSP_VSIZE1 0x52
|
|||
|
#define OV2640_DSP_XOFFL 0x53
|
|||
|
#define OV2640_DSP_YOFFL 0x54
|
|||
|
#define OV2640_DSP_VHYX 0x55
|
|||
|
#define OV2640_DSP_DPRP 0x56
|
|||
|
#define OV2640_DSP_TEST 0x57
|
|||
|
#define OV2640_DSP_ZMOW 0x5A
|
|||
|
#define OV2640_DSP_ZMOH 0x5B
|
|||
|
#define OV2640_DSP_ZMHH 0x5C
|
|||
|
#define OV2640_DSP_BPADDR 0x7C
|
|||
|
#define OV2640_DSP_BPDATA 0x7D
|
|||
|
#define OV2640_DSP_CTRL2 0x86
|
|||
|
#define OV2640_DSP_CTRL3 0x87
|
|||
|
#define OV2640_DSP_SIZEL 0x8C
|
|||
|
#define OV2640_DSP_HSIZE2 0xC0
|
|||
|
#define OV2640_DSP_VSIZE2 0xC1
|
|||
|
#define OV2640_DSP_CTRL0 0xC2
|
|||
|
#define OV2640_DSP_CTRL1 0xC3
|
|||
|
#define OV2640_DSP_R_DVP_SP 0xD3
|
|||
|
#define OV2640_DSP_IMAGE_MODE 0xDA
|
|||
|
#define OV2640_DSP_RESET 0xE0
|
|||
|
#define OV2640_DSP_MS_SP 0xF0
|
|||
|
#define OV2640_DSP_SS_ID 0x7F
|
|||
|
#define OV2640_DSP_SS_CTRL 0xF8
|
|||
|
#define OV2640_DSP_MC_BIST 0xF9
|
|||
|
#define OV2640_DSP_MC_AL 0xFA
|
|||
|
#define OV2640_DSP_MC_AH 0xFB
|
|||
|
#define OV2640_DSP_MC_D 0xFC
|
|||
|
#define OV2640_DSP_P_STATUS 0xFE
|
|||
|
#define OV2640_DSP_RA_DLMT 0xFF
|
|||
|
|
|||
|
//褰撻<E8A4B0>夋嫨浼犳劅鍣ㄥ湴鍧<E6B9B4>(0XFF=0X01)鏃<>,OV2640鐨凞SP瀵勫瓨鍣ㄥ湴鍧<E6B9B4>鏄犲皠琛<E79AA0>
|
|||
|
#define OV2640_SENSOR_GAIN 0x00
|
|||
|
#define OV2640_SENSOR_COM1 0x03
|
|||
|
#define OV2640_SENSOR_REG04 0x04
|
|||
|
#define OV2640_SENSOR_REG08 0x08
|
|||
|
#define OV2640_SENSOR_COM2 0x09
|
|||
|
#define OV2640_SENSOR_PIDH 0x0A
|
|||
|
#define OV2640_SENSOR_PIDL 0x0B
|
|||
|
#define OV2640_SENSOR_COM3 0x0C
|
|||
|
#define OV2640_SENSOR_COM4 0x0D
|
|||
|
#define OV2640_SENSOR_AEC 0x10
|
|||
|
#define OV2640_SENSOR_CLKRC 0x11
|
|||
|
#define OV2640_SENSOR_COM7 0x12
|
|||
|
#define OV2640_SENSOR_COM8 0x13
|
|||
|
#define OV2640_SENSOR_COM9 0x14
|
|||
|
#define OV2640_SENSOR_COM10 0x15
|
|||
|
#define OV2640_SENSOR_HREFST 0x17
|
|||
|
#define OV2640_SENSOR_HREFEND 0x18
|
|||
|
#define OV2640_SENSOR_VSTART 0x19
|
|||
|
#define OV2640_SENSOR_VEND 0x1A
|
|||
|
#define OV2640_SENSOR_MIDH 0x1C
|
|||
|
#define OV2640_SENSOR_MIDL 0x1D
|
|||
|
#define OV2640_SENSOR_AEW 0x24
|
|||
|
#define OV2640_SENSOR_AEB 0x25
|
|||
|
#define OV2640_SENSOR_W 0x26
|
|||
|
#define OV2640_SENSOR_REG2A 0x2A
|
|||
|
#define OV2640_SENSOR_FRARL 0x2B
|
|||
|
#define OV2640_SENSOR_ADDVSL 0x2D
|
|||
|
#define OV2640_SENSOR_ADDVHS 0x2E
|
|||
|
#define OV2640_SENSOR_YAVG 0x2F
|
|||
|
#define OV2640_SENSOR_REG32 0x32
|
|||
|
#define OV2640_SENSOR_ARCOM2 0x34
|
|||
|
#define OV2640_SENSOR_REG45 0x45
|
|||
|
#define OV2640_SENSOR_FLL 0x46
|
|||
|
#define OV2640_SENSOR_FLH 0x47
|
|||
|
#define OV2640_SENSOR_COM19 0x48
|
|||
|
#define OV2640_SENSOR_ZOOMS 0x49
|
|||
|
#define OV2640_SENSOR_COM22 0x4B
|
|||
|
#define OV2640_SENSOR_COM25 0x4E
|
|||
|
#define OV2640_SENSOR_BD50 0x4F
|
|||
|
#define OV2640_SENSOR_BD60 0x50
|
|||
|
#define OV2640_SENSOR_REG5D 0x5D
|
|||
|
#define OV2640_SENSOR_REG5E 0x5E
|
|||
|
#define OV2640_SENSOR_REG5F 0x5F
|
|||
|
#define OV2640_SENSOR_REG60 0x60
|
|||
|
#define OV2640_SENSOR_HISTO_LOW 0x61
|
|||
|
#define OV2640_SENSOR_HISTO_HIGH 0x62
|
|||
|
|
|||
|
/* Automatic exposure setting parameters table, support 5 levels */
|
|||
|
const rt_uint8_t OV2640_AUTOEXPOSURE_LEVEL[5][8]=
|
|||
|
{
|
|||
|
{
|
|||
|
0xFF,0x01,
|
|||
|
0x24,0x20,
|
|||
|
0x25,0x18,
|
|||
|
0x26,0x60,
|
|||
|
},
|
|||
|
{
|
|||
|
0xFF,0x01,
|
|||
|
0x24,0x34,
|
|||
|
0x25,0x1c,
|
|||
|
0x26,0x00,
|
|||
|
},
|
|||
|
{
|
|||
|
0xFF,0x01,
|
|||
|
0x24,0x3e,
|
|||
|
0x25,0x38,
|
|||
|
0x26,0x81,
|
|||
|
},
|
|||
|
{
|
|||
|
0xFF,0x01,
|
|||
|
0x24,0x48,
|
|||
|
0x25,0x40,
|
|||
|
0x26,0x81,
|
|||
|
},
|
|||
|
{
|
|||
|
0xFF,0x01,
|
|||
|
0x24,0x58,
|
|||
|
0x25,0x50,
|
|||
|
0x26,0x92,
|
|||
|
},
|
|||
|
};
|
|||
|
|
|||
|
const rt_uint8_t ov2640_sxga_init_reg_tbl[][2]=
|
|||
|
{
|
|||
|
{0xff, 0x00},
|
|||
|
{0x2c, 0xff},
|
|||
|
{0x2e, 0xdf},
|
|||
|
{0xff, 0x01},
|
|||
|
{0x3c, 0x32},
|
|||
|
{0x11, 0x00},
|
|||
|
{0x09, 0x02},
|
|||
|
{0x04, 0xD8},
|
|||
|
{0x13, 0xe5},
|
|||
|
{0x14, 0x48},
|
|||
|
{0x2c, 0x0c},
|
|||
|
{0x33, 0x78},
|
|||
|
{0x3a, 0x33},
|
|||
|
{0x3b, 0xfB},
|
|||
|
{0x3e, 0x00},
|
|||
|
{0x43, 0x11},
|
|||
|
{0x16, 0x10},
|
|||
|
{0x39, 0x92},
|
|||
|
{0x35, 0xda},
|
|||
|
{0x22, 0x1a},
|
|||
|
{0x37, 0xc3},
|
|||
|
{0x23, 0x00},
|
|||
|
{0x34, 0xc0},
|
|||
|
{0x36, 0x1a},
|
|||
|
{0x06, 0x88},
|
|||
|
{0x07, 0xc0},
|
|||
|
{0x0d, 0x87},
|
|||
|
{0x0e, 0x41},
|
|||
|
{0x4c, 0x00},
|
|||
|
{0x48, 0x00},
|
|||
|
{0x5B, 0x00},
|
|||
|
{0x42, 0x03},
|
|||
|
{0x4a, 0x81},
|
|||
|
{0x21, 0x99},
|
|||
|
{0x24, 0x40},
|
|||
|
{0x25, 0x38},
|
|||
|
{0x26, 0x82},
|
|||
|
{0x5c, 0x00},
|
|||
|
{0x63, 0x00},
|
|||
|
{0x46, 0x00},
|
|||
|
{0x0c, 0x3c},
|
|||
|
{0x61, 0x70},
|
|||
|
{0x62, 0x80},
|
|||
|
{0x7c, 0x05},
|
|||
|
{0x20, 0x80},
|
|||
|
{0x28, 0x30},
|
|||
|
{0x6c, 0x00},
|
|||
|
{0x6d, 0x80},
|
|||
|
{0x6e, 0x00},
|
|||
|
{0x70, 0x02},
|
|||
|
{0x71, 0x94},
|
|||
|
{0x73, 0xc1},
|
|||
|
{0x3d, 0x34},
|
|||
|
{0x5a, 0x57},
|
|||
|
{0x12, 0x00},
|
|||
|
{0x17, 0x11},
|
|||
|
{0x18, 0x75},
|
|||
|
{0x19, 0x01},
|
|||
|
{0x1a, 0x97},
|
|||
|
{0x32, 0x36},
|
|||
|
{0x03, 0x0f},
|
|||
|
{0x37, 0x40},
|
|||
|
{0x4f, 0xca},
|
|||
|
{0x50, 0xa8},
|
|||
|
{0x5a, 0x23},
|
|||
|
{0x6d, 0x00},
|
|||
|
{0x6d, 0x38},
|
|||
|
{0xff, 0x00},
|
|||
|
{0xe5, 0x7f},
|
|||
|
{0xf9, 0xc0},
|
|||
|
{0x41, 0x24},
|
|||
|
{0xe0, 0x14},
|
|||
|
{0x76, 0xff},
|
|||
|
{0x33, 0xa0},
|
|||
|
{0x42, 0x20},
|
|||
|
{0x43, 0x18},
|
|||
|
{0x4c, 0x00},
|
|||
|
{0x87, 0xd5},
|
|||
|
{0x88, 0x3f},
|
|||
|
{0xd7, 0x03},
|
|||
|
{0xd9, 0x10},
|
|||
|
{0xd3, 0x82},
|
|||
|
{0xc8, 0x08},
|
|||
|
{0xc9, 0x80},
|
|||
|
{0x7c, 0x00},
|
|||
|
{0x7d, 0x00},
|
|||
|
{0x7c, 0x03},
|
|||
|
{0x7d, 0x48},
|
|||
|
{0x7d, 0x48},
|
|||
|
{0x7c, 0x08},
|
|||
|
{0x7d, 0x20},
|
|||
|
{0x7d, 0x10},
|
|||
|
{0x7d, 0x0e},
|
|||
|
{0x90, 0x00},
|
|||
|
{0x91, 0x0e},
|
|||
|
{0x91, 0x1a},
|
|||
|
{0x91, 0x31},
|
|||
|
{0x91, 0x5a},
|
|||
|
{0x91, 0x69},
|
|||
|
{0x91, 0x75},
|
|||
|
{0x91, 0x7e},
|
|||
|
{0x91, 0x88},
|
|||
|
{0x91, 0x8f},
|
|||
|
{0x91, 0x96},
|
|||
|
{0x91, 0xa3},
|
|||
|
{0x91, 0xaf},
|
|||
|
{0x91, 0xc4},
|
|||
|
{0x91, 0xd7},
|
|||
|
{0x91, 0xe8},
|
|||
|
{0x91, 0x20},
|
|||
|
{0x92, 0x00},
|
|||
|
{0x93, 0x06},
|
|||
|
{0x93, 0xe3},
|
|||
|
{0x93, 0x05},
|
|||
|
{0x93, 0x05},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x04},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x96, 0x00},
|
|||
|
{0x97, 0x08},
|
|||
|
{0x97, 0x19},
|
|||
|
{0x97, 0x02},
|
|||
|
{0x97, 0x0c},
|
|||
|
{0x97, 0x24},
|
|||
|
{0x97, 0x30},
|
|||
|
{0x97, 0x28},
|
|||
|
{0x97, 0x26},
|
|||
|
{0x97, 0x02},
|
|||
|
{0x97, 0x98},
|
|||
|
{0x97, 0x80},
|
|||
|
{0x97, 0x00},
|
|||
|
{0x97, 0x00},
|
|||
|
{0xc3, 0xef},
|
|||
|
{0xa4, 0x00},
|
|||
|
{0xa8, 0x00},
|
|||
|
{0xc5, 0x11},
|
|||
|
{0xc6, 0x51},
|
|||
|
{0xbf, 0x80},
|
|||
|
{0xc7, 0x10},
|
|||
|
{0xb6, 0x66},
|
|||
|
{0xb8, 0xA5},
|
|||
|
{0xb7, 0x64},
|
|||
|
{0xb9, 0x7C},
|
|||
|
{0xb3, 0xaf},
|
|||
|
{0xb4, 0x97},
|
|||
|
{0xb5, 0xFF},
|
|||
|
{0xb0, 0xC5},
|
|||
|
{0xb1, 0x94},
|
|||
|
{0xb2, 0x0f},
|
|||
|
{0xc4, 0x5c},
|
|||
|
{0xc0, 0xc8},
|
|||
|
{0xc1, 0x96},
|
|||
|
{0x8c, 0x00},
|
|||
|
{0x86, 0x3d},
|
|||
|
{0x50, 0x00},
|
|||
|
{0x51, 0x90},
|
|||
|
{0x52, 0x2c},
|
|||
|
{0x53, 0x00},
|
|||
|
{0x54, 0x00},
|
|||
|
{0x55, 0x88},
|
|||
|
{0x5a, 0x90},
|
|||
|
{0x5b, 0x2C},
|
|||
|
{0x5c, 0x05},
|
|||
|
{0xd3, 0x02},
|
|||
|
{0xc3, 0xed},
|
|||
|
{0x7f, 0x00},
|
|||
|
{0xda, 0x09},
|
|||
|
{0xe5, 0x1f},
|
|||
|
{0xe1, 0x67},
|
|||
|
{0xe0, 0x00},
|
|||
|
{0xdd, 0x7f},
|
|||
|
{0x05, 0x00},
|
|||
|
};
|
|||
|
|
|||
|
/* SVGA 800*600 */
|
|||
|
const rt_uint8_t ov2640_svga_init_reg_tbl[][2]=
|
|||
|
{
|
|||
|
{0xff, 0x00},
|
|||
|
{0x2c, 0xff},
|
|||
|
{0x2e, 0xdf},
|
|||
|
{0xff, 0x01},
|
|||
|
{0x3c, 0x32},
|
|||
|
{0x11, 0x00},
|
|||
|
{0x09, 0x02},
|
|||
|
{0x04, 0xD8},
|
|||
|
{0x13, 0xe5},
|
|||
|
{0x14, 0x48},
|
|||
|
{0x2c, 0x0c},
|
|||
|
{0x33, 0x78},
|
|||
|
{0x3a, 0x33},
|
|||
|
{0x3b, 0xfB},
|
|||
|
{0x3e, 0x00},
|
|||
|
{0x43, 0x11},
|
|||
|
{0x16, 0x10},
|
|||
|
{0x39, 0x92},
|
|||
|
{0x35, 0xda},
|
|||
|
{0x22, 0x1a},
|
|||
|
{0x37, 0xc3},
|
|||
|
{0x23, 0x00},
|
|||
|
{0x34, 0xc0},
|
|||
|
{0x36, 0x1a},
|
|||
|
{0x06, 0x88},
|
|||
|
{0x07, 0xc0},
|
|||
|
{0x0d, 0x87},
|
|||
|
{0x0e, 0x41},
|
|||
|
{0x4c, 0x00},
|
|||
|
{0x48, 0x00},
|
|||
|
{0x5B, 0x00},
|
|||
|
{0x42, 0x03},
|
|||
|
{0x4a, 0x81},
|
|||
|
{0x21, 0x99},
|
|||
|
{0x24, 0x40},
|
|||
|
{0x25, 0x38},
|
|||
|
{0x26, 0x82},
|
|||
|
{0x5c, 0x00},
|
|||
|
{0x63, 0x00},
|
|||
|
{0x46, 0x22},
|
|||
|
{0x0c, 0x3c},
|
|||
|
{0x61, 0x70},
|
|||
|
{0x62, 0x80},
|
|||
|
{0x7c, 0x05},
|
|||
|
{0x20, 0x80},
|
|||
|
{0x28, 0x30},
|
|||
|
{0x6c, 0x00},
|
|||
|
{0x6d, 0x80},
|
|||
|
{0x6e, 0x00},
|
|||
|
{0x70, 0x02},
|
|||
|
{0x71, 0x94},
|
|||
|
{0x73, 0xc1},
|
|||
|
{0x3d, 0x34},
|
|||
|
{0x5a, 0x57},
|
|||
|
{0x12, 0x40},
|
|||
|
{0x17, 0x11},
|
|||
|
{0x18, 0x43},
|
|||
|
{0x19, 0x00},
|
|||
|
{0x1a, 0x4b},
|
|||
|
{0x32, 0x09},
|
|||
|
{0x37, 0xc0},
|
|||
|
{0x4f, 0xca},
|
|||
|
{0x50, 0xa8},
|
|||
|
{0x5a, 0x23},
|
|||
|
{0x6d, 0x00},
|
|||
|
{0x3d, 0x38},
|
|||
|
{0xff, 0x00},
|
|||
|
{0xe5, 0x7f},
|
|||
|
{0xf9, 0xc0},
|
|||
|
{0x41, 0x24},
|
|||
|
{0xe0, 0x14},
|
|||
|
{0x76, 0xff},
|
|||
|
{0x33, 0xa0},
|
|||
|
{0x42, 0x20},
|
|||
|
{0x43, 0x18},
|
|||
|
{0x4c, 0x00},
|
|||
|
{0x87, 0xd5},
|
|||
|
{0x88, 0x3f},
|
|||
|
{0xd7, 0x03},
|
|||
|
{0xd9, 0x10},
|
|||
|
{0xd3, 0x82},
|
|||
|
{0xc8, 0x08},
|
|||
|
{0xc9, 0x80},
|
|||
|
{0x7c, 0x00},
|
|||
|
{0x7d, 0x00},
|
|||
|
{0x7c, 0x03},
|
|||
|
{0x7d, 0x48},
|
|||
|
{0x7d, 0x48},
|
|||
|
{0x7c, 0x08},
|
|||
|
{0x7d, 0x20},
|
|||
|
{0x7d, 0x10},
|
|||
|
{0x7d, 0x0e},
|
|||
|
{0x90, 0x00},
|
|||
|
{0x91, 0x0e},
|
|||
|
{0x91, 0x1a},
|
|||
|
{0x91, 0x31},
|
|||
|
{0x91, 0x5a},
|
|||
|
{0x91, 0x69},
|
|||
|
{0x91, 0x75},
|
|||
|
{0x91, 0x7e},
|
|||
|
{0x91, 0x88},
|
|||
|
{0x91, 0x8f},
|
|||
|
{0x91, 0x96},
|
|||
|
{0x91, 0xa3},
|
|||
|
{0x91, 0xaf},
|
|||
|
{0x91, 0xc4},
|
|||
|
{0x91, 0xd7},
|
|||
|
{0x91, 0xe8},
|
|||
|
{0x91, 0x20},
|
|||
|
{0x92, 0x00},
|
|||
|
{0x93, 0x06},
|
|||
|
{0x93, 0xe3},
|
|||
|
{0x93, 0x05},
|
|||
|
{0x93, 0x05},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x04},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x96, 0x00},
|
|||
|
{0x97, 0x08},
|
|||
|
{0x97, 0x19},
|
|||
|
{0x97, 0x02},
|
|||
|
{0x97, 0x0c},
|
|||
|
{0x97, 0x24},
|
|||
|
{0x97, 0x30},
|
|||
|
{0x97, 0x28},
|
|||
|
{0x97, 0x26},
|
|||
|
{0x97, 0x02},
|
|||
|
{0x97, 0x98},
|
|||
|
{0x97, 0x80},
|
|||
|
{0x97, 0x00},
|
|||
|
{0x97, 0x00},
|
|||
|
{0xc3, 0xed},
|
|||
|
{0xa4, 0x00},
|
|||
|
{0xa8, 0x00},
|
|||
|
{0xc5, 0x11},
|
|||
|
{0xc6, 0x51},
|
|||
|
{0xbf, 0x80},
|
|||
|
{0xc7, 0x10},
|
|||
|
{0xb6, 0x66},
|
|||
|
{0xb8, 0xA5},
|
|||
|
{0xb7, 0x64},
|
|||
|
{0xb9, 0x7C},
|
|||
|
{0xb3, 0xaf},
|
|||
|
{0xb4, 0x97},
|
|||
|
{0xb5, 0xFF},
|
|||
|
{0xb0, 0xC5},
|
|||
|
{0xb1, 0x94},
|
|||
|
{0xb2, 0x0f},
|
|||
|
{0xc4, 0x5c},
|
|||
|
{0xc0, 0x64},
|
|||
|
{0xc1, 0x4B},
|
|||
|
{0x8c, 0x00},
|
|||
|
{0x86, 0x3D},
|
|||
|
{0x50, 0x00},
|
|||
|
{0x51, 0xC8},
|
|||
|
{0x52, 0x96},
|
|||
|
{0x53, 0x00},
|
|||
|
{0x54, 0x00},
|
|||
|
{0x55, 0x00},
|
|||
|
{0x5a, 0xC8},
|
|||
|
{0x5b, 0x96},
|
|||
|
{0x5c, 0x00},
|
|||
|
{0xd3, 0x02},
|
|||
|
{0xc3, 0xed},
|
|||
|
{0x7f, 0x00},
|
|||
|
{0xda, 0x09},
|
|||
|
{0xe5, 0x1f},
|
|||
|
{0xe1, 0x67},
|
|||
|
{0xe0, 0x00},
|
|||
|
{0xdd, 0x7f},
|
|||
|
{0x05, 0x00},
|
|||
|
};
|
|||
|
|
|||
|
/* Initialization sequence for QVGA resolution (320x240) */
|
|||
|
const unsigned char OV2640_QVGA[][2]=
|
|||
|
{
|
|||
|
{0xff, 0x00},
|
|||
|
{0x2c, 0xff},
|
|||
|
{0x2e, 0xdf},
|
|||
|
{0xff, 0x01},
|
|||
|
{0x3c, 0x32},
|
|||
|
{0x11, 0x00},
|
|||
|
{0x09, 0x02},
|
|||
|
{0x04, 0xA8},
|
|||
|
{0x13, 0xe5},
|
|||
|
{0x14, 0x48},
|
|||
|
{0x2c, 0x0c},
|
|||
|
{0x33, 0x78},
|
|||
|
{0x3a, 0x33},
|
|||
|
{0x3b, 0xfB},
|
|||
|
{0x3e, 0x00},
|
|||
|
{0x43, 0x11},
|
|||
|
{0x16, 0x10},
|
|||
|
{0x4a, 0x81},
|
|||
|
{0x21, 0x99},
|
|||
|
{0x24, 0x40},
|
|||
|
{0x25, 0x38},
|
|||
|
{0x26, 0x82},
|
|||
|
{0x5c, 0x00},
|
|||
|
{0x63, 0x00},
|
|||
|
{0x46, 0x3f},
|
|||
|
{0x0c, 0x3c},
|
|||
|
{0x61, 0x70},
|
|||
|
{0x62, 0x80},
|
|||
|
{0x7c, 0x05},
|
|||
|
{0x20, 0x80},
|
|||
|
{0x28, 0x30},
|
|||
|
{0x6c, 0x00},
|
|||
|
{0x6d, 0x80},
|
|||
|
{0x6e, 0x00},
|
|||
|
{0x70, 0x02},
|
|||
|
{0x71, 0x94},
|
|||
|
{0x73, 0xc1},
|
|||
|
{0x3d, 0x34},
|
|||
|
{0x5a, 0x57},
|
|||
|
{0x12, 0x00},
|
|||
|
{0x11, 0x00},
|
|||
|
{0x17, 0x11},
|
|||
|
{0x18, 0x75},
|
|||
|
{0x19, 0x01},
|
|||
|
{0x1a, 0x97},
|
|||
|
{0x32, 0x36},
|
|||
|
{0x03, 0x0f},
|
|||
|
{0x37, 0x40},
|
|||
|
{0x4f, 0xbb},
|
|||
|
{0x50, 0x9c},
|
|||
|
{0x5a, 0x57},
|
|||
|
{0x6d, 0x80},
|
|||
|
{0x6d, 0x38},
|
|||
|
{0x39, 0x02},
|
|||
|
{0x35, 0x88},
|
|||
|
{0x22, 0x0a},
|
|||
|
{0x37, 0x40},
|
|||
|
{0x23, 0x00},
|
|||
|
{0x34, 0xa0},
|
|||
|
{0x36, 0x1a},
|
|||
|
{0x06, 0x02},
|
|||
|
{0x07, 0xc0},
|
|||
|
{0x0d, 0xb7},
|
|||
|
{0x0e, 0x01},
|
|||
|
{0x4c, 0x00},
|
|||
|
{0xff, 0x00},
|
|||
|
{0xe5, 0x7f},
|
|||
|
{0xf9, 0xc0},
|
|||
|
{0x41, 0x24},
|
|||
|
{0xe0, 0x14},
|
|||
|
{0x76, 0xff},
|
|||
|
{0x33, 0xa0},
|
|||
|
{0x42, 0x20},
|
|||
|
{0x43, 0x18},
|
|||
|
{0x4c, 0x00},
|
|||
|
{0x87, 0xd0},
|
|||
|
{0x88, 0x3f},
|
|||
|
{0xd7, 0x03},
|
|||
|
{0xd9, 0x10},
|
|||
|
{0xd3, 0x82},
|
|||
|
{0xc8, 0x08},
|
|||
|
{0xc9, 0x80},
|
|||
|
{0x7d, 0x00},
|
|||
|
{0x7c, 0x03},
|
|||
|
{0x7d, 0x48},
|
|||
|
{0x7c, 0x08},
|
|||
|
{0x7d, 0x20},
|
|||
|
{0x7d, 0x10},
|
|||
|
{0x7d, 0x0e},
|
|||
|
{0x90, 0x00},
|
|||
|
{0x91, 0x0e},
|
|||
|
{0x91, 0x1a},
|
|||
|
{0x91, 0x31},
|
|||
|
{0x91, 0x5a},
|
|||
|
{0x91, 0x69},
|
|||
|
{0x91, 0x75},
|
|||
|
{0x91, 0x7e},
|
|||
|
{0x91, 0x88},
|
|||
|
{0x91, 0x8f},
|
|||
|
{0x91, 0x96},
|
|||
|
{0x91, 0xa3},
|
|||
|
{0x91, 0xaf},
|
|||
|
{0x91, 0xc4},
|
|||
|
{0x91, 0xd7},
|
|||
|
{0x91, 0xe8},
|
|||
|
{0x91, 0x20},
|
|||
|
{0x92, 0x00},
|
|||
|
{0x93, 0x06},
|
|||
|
{0x93, 0xe3},
|
|||
|
{0x93, 0x02},
|
|||
|
{0x93, 0x02},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x04},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x03},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x93, 0x00},
|
|||
|
{0x96, 0x00},
|
|||
|
{0x97, 0x08},
|
|||
|
{0x97, 0x19},
|
|||
|
{0x97, 0x02},
|
|||
|
{0x97, 0x0c},
|
|||
|
{0x97, 0x24},
|
|||
|
{0x97, 0x30},
|
|||
|
{0x97, 0x28},
|
|||
|
{0x97, 0x26},
|
|||
|
{0x97, 0x02},
|
|||
|
{0x97, 0x98},
|
|||
|
{0x97, 0x80},
|
|||
|
{0x97, 0x00},
|
|||
|
{0x97, 0x00},
|
|||
|
{0xc3, 0xef},
|
|||
|
{0xff, 0x00},
|
|||
|
{0xba, 0xdc},
|
|||
|
{0xbb, 0x08},
|
|||
|
{0xb6, 0x24},
|
|||
|
{0xb8, 0x33},
|
|||
|
{0xb7, 0x20},
|
|||
|
{0xb9, 0x30},
|
|||
|
{0xb3, 0xb4},
|
|||
|
{0xb4, 0xca},
|
|||
|
{0xb5, 0x43},
|
|||
|
{0xb0, 0x5c},
|
|||
|
{0xb1, 0x4f},
|
|||
|
{0xb2, 0x06},
|
|||
|
{0xc7, 0x00},
|
|||
|
{0xc6, 0x51},
|
|||
|
{0xc5, 0x11},
|
|||
|
{0xc4, 0x9c},
|
|||
|
{0xbf, 0x00},
|
|||
|
{0xbc, 0x64},
|
|||
|
{0xa6, 0x00},
|
|||
|
{0xa7, 0x1e},
|
|||
|
{0xa7, 0x6b},
|
|||
|
{0xa7, 0x47},
|
|||
|
{0xa7, 0x33},
|
|||
|
{0xa7, 0x00},
|
|||
|
{0xa7, 0x23},
|
|||
|
{0xa7, 0x2e},
|
|||
|
{0xa7, 0x85},
|
|||
|
{0xa7, 0x42},
|
|||
|
{0xa7, 0x33},
|
|||
|
{0xa7, 0x00},
|
|||
|
{0xa7, 0x23},
|
|||
|
{0xa7, 0x1b},
|
|||
|
{0xa7, 0x74},
|
|||
|
{0xa7, 0x42},
|
|||
|
{0xa7, 0x33},
|
|||
|
{0xa7, 0x00},
|
|||
|
{0xa7, 0x23},
|
|||
|
{0xc0, 0xc8},
|
|||
|
{0xc1, 0x96},
|
|||
|
{0x8c, 0x00},
|
|||
|
{0x86, 0x3d},
|
|||
|
{0x50, 0x92},
|
|||
|
{0x51, 0x90},
|
|||
|
{0x52, 0x2c},
|
|||
|
{0x53, 0x00},
|
|||
|
{0x54, 0x00},
|
|||
|
{0x55, 0x88},
|
|||
|
{0x5a, 0x50},
|
|||
|
{0x5b, 0x3c},
|
|||
|
{0x5c, 0x00},
|
|||
|
{0xd3, 0x04},
|
|||
|
{0x7f, 0x00},
|
|||
|
{0xda, 0x00},
|
|||
|
{0xe5, 0x1f},
|
|||
|
{0xe1, 0x67},
|
|||
|
{0xe0, 0x00},
|
|||
|
{0xdd, 0x7f},
|
|||
|
{0x05, 0x00},
|
|||
|
{0xff, 0x00},
|
|||
|
{0xe0, 0x04},
|
|||
|
{0xc0, 0xc8},
|
|||
|
{0xc1, 0x96},
|
|||
|
{0x86, 0x3d},
|
|||
|
{0x50, 0x92},
|
|||
|
{0x51, 0x90},
|
|||
|
{0x52, 0x2c},
|
|||
|
{0x53, 0x00},
|
|||
|
{0x54, 0x00},
|
|||
|
{0x55, 0x88},
|
|||
|
{0x57, 0x00},
|
|||
|
{0x5a, 0x50},
|
|||
|
{0x5b, 0x3C},
|
|||
|
{0x5c, 0x00},
|
|||
|
{0xd3, 0x08},
|
|||
|
{0xe0, 0x00},
|
|||
|
{0xFF, 0x00},
|
|||
|
{0x05, 0x00},
|
|||
|
{0xDA, 0x08},
|
|||
|
{0xda, 0x09},
|
|||
|
{0x98, 0x00},
|
|||
|
{0x99, 0x00},
|
|||
|
{0x00, 0x00},
|
|||
|
};
|
|||
|
|
|||
|
const rt_uint8_t ov2640_jpeg_reg_tbl[][2]=
|
|||
|
{
|
|||
|
{0xff, 0x01},
|
|||
|
{0xe0, 0x14},
|
|||
|
{0xe1, 0x77},
|
|||
|
{0xe5, 0x1f},
|
|||
|
{0xd7, 0x03},
|
|||
|
{0xda, 0x10},
|
|||
|
{0xe0, 0x00},
|
|||
|
};
|
|||
|
|
|||
|
const rt_uint8_t ov2640_rgb565_reg_tbl[][2]=
|
|||
|
{
|
|||
|
{0xFF, 0x00},
|
|||
|
{0xDA, 0x09},
|
|||
|
{0xD7, 0x03},
|
|||
|
{0xDF, 0x02},
|
|||
|
{0x33, 0xa0},
|
|||
|
{0x3C, 0x00},
|
|||
|
{0xe1, 0x67},
|
|||
|
|
|||
|
{0xff, 0x01},
|
|||
|
{0xe0, 0x00},
|
|||
|
{0xe1, 0x00},
|
|||
|
{0xe5, 0x00},
|
|||
|
{0xd7, 0x00},
|
|||
|
{0xda, 0x00},
|
|||
|
{0xe0, 0x00},
|
|||
|
};
|
|||
|
const rt_uint8_t ov2640_yuv422_reg_tbl[][2] =
|
|||
|
{
|
|||
|
{0xFF, 0x00},
|
|||
|
{0xDA, 0x10},
|
|||
|
{0xD7, 0x03},
|
|||
|
{0xDF, 0x00},
|
|||
|
{0x33, 0x80},
|
|||
|
{0x3C, 0x40},
|
|||
|
{0xe1, 0x77},
|
|||
|
{0x00, 0x00},
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
#endif
|