SAMV71 Xplained Ultra Software Package 1.3

ov2640_config.c

Go to the documentation of this file.
00001 /* ----------------------------------------------------------------------------
00002  *         SAM Software Package License 
00003  * ----------------------------------------------------------------------------
00004  * Copyright (c) 2013, Atmel Corporation
00005  *
00006  * All rights reserved.
00007  *
00008  * Redistribution and use in source and binary forms, with or without
00009  * modification, are permitted provided that the following conditions are met:
00010  *
00011  * - Redistributions of source code must retain the above copyright notice,
00012  * this list of conditions and the disclaimer below.
00013  *
00014  * Atmel's name may not be used to endorse or promote products derived from
00015  * this software without specific prior written permission.
00016  *
00017  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
00018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00019  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
00020  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
00021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00022  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
00023  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00024  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00025  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00026  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027  * ----------------------------------------------------------------------------
00028  */
00029 
00030 /**
00031  * \file
00032  */
00033 
00034 /*------------------------------------------------------------------------------
00035  *         Headers
00036  *----------------------------------------------------------------------------*/
00037 
00038 #include "board.h"
00039 
00040 /*
00041  * ID
00042  */
00043 
00044 
00045 
00046 /*------------------------------------------------------------------------------
00047  *         Local Variables
00048  *----------------------------------------------------------------------------*/
00049 
00050 /* 320*240 */
00051 const struct ov_reg ov2640_yuv_qvga[]= {
00052 {0xff, 0x01},{0x12, 0x80},{0xff, 0x00},{0x2c, 0xff},{0x2e, 0xdf},
00053 {0xff, 0x01},{0x3c, 0x32},{0x11, 0x00},{0x09, 0x02},{0x04, 0x28},
00054 {0x13, 0xe5},{0x14, 0x48},{0x2c, 0x0c},{0x33, 0x78},{0x3a, 0x33},
00055 {0x3b, 0xfb},{0x3e, 0x00},{0x43, 0x11},{0x16, 0x10},{0x39, 0x02},
00056 {0x35, 0x88},{0x22, 0x0a},{0x37, 0x40},{0x23, 0x00},{0x34, 0xa0},
00057 {0x36, 0x1a},{0x06, 0x02},{0x07, 0xc0},{0x0d, 0xb7},{0x0e, 0x01},
00058 {0x4c, 0x00},{0x4a, 0x81},{0x21, 0x99},{0x24, 0x3a},{0x25, 0x32},
00059 {0x26, 0x82},{0x5c, 0x00},{0x63, 0x00},{0x5d, 0x55},{0x5e, 0x7d},
00060 {0x5f, 0x7d},{0x60, 0x55},{0x61, 0x70},{0x62, 0x80},{0x7c, 0x05},
00061 {0x20, 0x80},{0x28, 0x30},{0x6c, 0x00},{0x6d, 0x80},{0x6e, 0x00},
00062 {0x70, 0x02},{0x71, 0x94},{0x73, 0xc1},{0x3d, 0x34},{0x5a, 0x57},
00063 {0x4f, 0xbb},{0x50, 0x9c},{0xff, 0x00},{0xe5, 0x7f},{0xf9, 0xc0},
00064 {0x41, 0x24},{0xe0, 0x14},{0x76, 0xff},{0x33, 0xa0},{0x42, 0x20},
00065 {0x43, 0x18},{0x4c, 0x00},{0x87, 0xd0},{0x88, 0x3f},{0xd7, 0x03},
00066 {0xd9, 0x10},{0xd3, 0x82},{0xc8, 0x08},{0xc9, 0x80},{0x7c, 0x00},
00067 {0x7d, 0x02},{0x7c, 0x03},{0x7d, 0x48},{0x7d, 0x48},{0x7c, 0x08},
00068 {0x7d, 0x20},{0x7d, 0x10},{0x7d, 0x0e},{0x90, 0x00},{0x91, 0x0e},
00069 {0x91, 0x1a},{0x91, 0x31},{0x91, 0x5a},{0x91, 0x69},{0x91, 0x75},
00070 {0x91, 0x7e},{0x91, 0x88},{0x91, 0x8f},{0x91, 0x96},{0x91, 0xa3},
00071 {0x91, 0xaf},{0x91, 0xc4},{0x91, 0xd7},{0x91, 0xe8},{0x91, 0x20},
00072 {0x92, 0x00},{0x93, 0x06},{0x93, 0xe3},{0x93, 0x05},{0x93, 0x05},
00073 {0x93, 0x00},{0x93, 0x02},{0x93, 0x00},{0x93, 0x00},{0x93, 0x00},
00074 {0x93, 0x00},{0x93, 0x00},{0x93, 0x00},{0x93, 0x00},{0x96, 0x00},
00075 {0x97, 0x08},{0x97, 0x19},{0x97, 0x02},{0x97, 0x0c},{0x97, 0x24},
00076 {0x97, 0x30},{0x97, 0x28},{0x97, 0x26},{0x97, 0x02},{0x97, 0x98},
00077 {0x97, 0x80},{0x97, 0x00},{0x97, 0x00},{0xc3, 0xed},{0xa4, 0x00},
00078 {0xa8, 0x00},{0xc5, 0x11},{0xc6, 0x51},{0xbf, 0x80},{0xc7, 0x10},
00079 {0xb6, 0x66},{0xb8, 0xa5},{0xb7, 0x64},{0xb9, 0x7c},{0xb3, 0xaf},
00080 {0xb4, 0x97},{0xb5, 0xff},{0xb0, 0xc5},{0xb1, 0x94},{0xb2, 0x0f},
00081 {0xc4, 0x5c},{0xc0, 0xc8},{0xc1, 0x96},{0x86, 0x1d},{0x50, 0x00},
00082 {0x51, 0x90},{0x52, 0x18},{0x53, 0x00},{0x54, 0x00},{0x55, 0x88},
00083 {0x57, 0x00},{0x5a, 0x90},{0x5b, 0x18},{0x5c, 0x05},{0xc3, 0xed},
00084 {0x7f, 0x00},{0xda, 0x04},{0xe5, 0x1f},{0xe1, 0x67},{0xe0, 0x00},
00085 {0xdd, 0xff},{0x05, 0x00},{0xff, 0x01},{0x11, 0x01},{0xff, 0x01},
00086 {0x12, 0x40},{0x17, 0x11},{0x18, 0x43},{0x19, 0x00},{0x1a, 0x4b},
00087 {0x32, 0x09},{0x4f, 0xca},{0x50, 0xa8},{0x5a, 0x23},{0x6d, 0x00},
00088 {0x3d, 0x38},{0x39, 0x12},{0x35, 0xda},{0x22, 0x1a},{0x37, 0xc3},
00089 {0x23, 0x00},{0x34, 0xc0},{0x36, 0x1a},{0x06, 0x88},{0x07, 0xc0},
00090 {0x0d, 0x87},{0x0e, 0x41},{0x4c, 0x00},{0x48, 0x00},{0x5B, 0x00},
00091 {0x42, 0x03},{0xff, 0x00},{0xe0, 0x04},{0xc0, 0x64},{0xc1, 0x4B},
00092 {0x8c, 0x00},{0x86, 0x1D},{0xd3, 0x82},{0xe0, 0x00},{0xff, 0x00},
00093 {0xc0, 0x64},{0xc1, 0x4B},{0x8c, 0x00}, //HSIZE 0x64*8 = 800, VSIZE 0x4b*8 = 600
00094 {0x86, 0x3D},{0x50, 0x89}, //LP_DP, V_DIV 1, H_DIV 1
00095 {0x51, 0xC8},{0x52, 0x96},{0x53, 0x00},{0x54, 0x00},{0x55, 0x00},
00096     //HSIZE 0xC8(200)*4 = 800, VSIZE 0x96(150)*4 = 600
00097 {0x5a, 0x50},{0x5b, 0x3C},{0x5c, 0x00}, //ZMOW 0x50(80)*4 = 320, ZMOH 0x3C(60)*4 = 240
00098 {0xd3, 0x04},{0xFF, 0x00},{0xE0, 0x04},{0xE1, 0x67},{0xD7, 0x01},
00099 {0xDA, 0x00},{0xD3, 0x82},{0xE0, 0x00},{0xFF, 0xFF}
00100 };
00101 
00102 const struct ov_reg ov2640_yuv_vga[]= {
00103     {0xff, 0x01}, //dsp
00104     {0x12, 0x80}, //reset
00105     {0xff, 0x00}, //sensor
00106     {0x2c, 0xff}, //?
00107     {0x2e, 0xdf}, //ADDVSH, VSYNC msb=223
00108     {0xff, 0x01}, //dsp
00109     {0x3c, 0x32}, //?
00110     {0x11, 0x00}, //clock rate off
00111     {0x09, 0x02}, //2 capablity + standby mode 
00112     {0x04, 0x28}, //? ??????????????????????????????????
00113     {0x13, 0xe5}, //
00114     {0x14, 0x48}, //Auto agc
00115     {0x2c, 0x0c}, //?
00116     {0x33, 0x78}, //? 
00117     {0x3a, 0x33}, //?
00118     {0x3b, 0xfb}, //?
00119     {0x3e, 0x00}, //? 
00120     {0x43, 0x11}, //?
00121     {0x16, 0x10}, //?
00122     {0x39, 0x02}, //?
00123     {0x35, 0x88}, //?
00124     {0x22, 0x0a}, //?
00125     {0x37, 0x40}, //?
00126     {0x23, 0x00}, //?
00127     {0x34, 0xa0}, //startpoint 0
00128     {0x36, 0x1a}, //? XXXXXXXXXXXXXXXX
00129     {0x06, 0x02}, //?
00130     {0x07, 0xc0}, //?
00131     {0x0d, 0xb7}, //?
00132     {0x0e, 0x01}, //?
00133     {0x4c, 0x00}, //?
00134     {0x4a, 0x81}, //?
00135     {0x21, 0x99}, //?
00136     {0x24, 0x3a}, // Luminance high
00137     {0x25, 0x32}, // Luminance low
00138     //{0x24, 0x10}, // Luminance high
00139     //{0x25, 0x03}, // Luminance low
00140 
00141     {0x26, 0xF3}, // Fast mode large Step Range Threshold 
00142     {0x5c, 0x00}, //?
00143     {0x63, 0x00}, //?
00144     {0x5d, 0x55}, //zone
00145     {0x5e, 0x7d}, //zone
00146     {0x5f, 0x7d}, //zone
00147     {0x60, 0x55}, //zone
00148     {0x61, 0x70}, //Histogram low
00149     {0x62, 0x80}, //Histogram high
00150     {0x7c, 0x05}, //?
00151     {0x20, 0x80}, //?
00152     {0x28, 0x30}, //?
00153     {0x6c, 0x00}, //?
00154     {0x6d, 0x80}, //?
00155     {0x6e, 0x00}, //?
00156     {0x70, 0x02}, //?
00157     {0x71, 0x94}, //?
00158     {0x73, 0xc1}, //?
00159     {0x3d, 0x34}, //?
00160     {0x5a, 0x57}, //?
00161     {0x4f, 0xbb}, //50Hz
00162     {0x50, 0x9c}, //60Hz
00163 
00164     {0xff, 0x00}, //dsp
00165     {0xe5, 0x7f}, //?
00166     {0xf9, 0xc0}, //MicroC reset,Boot
00167     {0x41, 0x24}, //?
00168     {0xe0, 0x14}, //JPEG,DVP reset
00169     {0x76, 0xff}, //?
00170     {0x33, 0xa0}, //?
00171     {0x42, 0x20}, //?
00172     {0x43, 0x18}, //?
00173     {0x4c, 0x00}, //?
00174     {0x87, 0xd0}, //Module Enable BPC+WPC 11010000
00175     {0x88, 0x3f}, //?
00176     {0xd7, 0x03}, //?
00177     {0xd9, 0x10}, //?
00178     {0xd3, 0x82}, //Auto mode 
00179     {0xc8, 0x08}, //?
00180     {0xc9, 0x80}, //?
00181     {0x7c, 0x00}, //SDE indirect register access: address 
00182     {0x7d, 0x02}, //SDE indirect register data 
00183     {0x7c, 0x03}, //
00184     {0x7d, 0x48}, //
00185     {0x7d, 0x48}, //
00186     {0x7c, 0x08}, //
00187     {0x7d, 0x20}, //
00188     {0x7d, 0x10}, // 
00189     {0x7d, 0x0e}, //
00190     {0x90, 0x00}, //?
00191     {0x91, 0x0e}, //?
00192     {0x91, 0x1a}, //?
00193     {0x91, 0x31}, //?
00194     {0x91, 0x5a}, //?
00195     {0x91, 0x69}, //?
00196     {0x91, 0x75}, //?
00197     {0x91, 0x7e}, //?
00198     {0x91, 0x88}, //?
00199     {0x91, 0x8f}, //?
00200     {0x91, 0x96}, //?
00201     {0x91, 0xa3}, //?
00202     {0x91, 0xaf}, //?
00203     {0x91, 0xc4}, //?
00204     {0x91, 0xd7}, //?
00205     {0x91, 0xe8}, //?
00206     {0x91, 0x20}, //?
00207     {0x92, 0x00}, //?
00208     {0x93, 0x06}, //?
00209     {0x93, 0xe3}, //?
00210     {0x93, 0x05}, //?
00211     {0x93, 0x05}, //?
00212     {0x93, 0x00}, //?
00213     {0x93, 0x02}, //?
00214     {0x93, 0x00}, //? 
00215     {0x93, 0x00}, //? 
00216     {0x93, 0x00}, //?
00217     {0x93, 0x00}, //?
00218     {0x93, 0x00}, //?
00219     {0x93, 0x00}, //?
00220     {0x93, 0x00}, //?
00221     {0x96, 0x00}, //?
00222     {0x97, 0x08}, //?
00223     {0x97, 0x19}, //?
00224     {0x97, 0x02}, //?
00225     {0x97, 0x0c}, //?
00226     {0x97, 0x24}, //?
00227     {0x97, 0x30}, //?
00228     {0x97, 0x28}, //?
00229     {0x97, 0x26}, //?
00230     {0x97, 0x02}, //?
00231     {0x97, 0x98}, //?
00232     {0x97, 0x80}, //?
00233     {0x97, 0x00}, //?
00234     {0x97, 0x00}, //?
00235     {0xc3, 0xed}, //Module enable 
00236     {0xa4, 0x00}, //?
00237     {0xa8, 0x00}, //?
00238     {0xc5, 0x11}, //?
00239     {0xc6, 0x51}, //?
00240     {0xbf, 0x80}, //?
00241     {0xc7, 0x10}, //?
00242     {0xb6, 0x66}, //?
00243     {0xb8, 0xa5}, //?
00244     {0xb7, 0x64}, //?
00245     {0xb9, 0x7c}, //?
00246     {0xb3, 0xaf}, //?
00247     {0xb4, 0x97}, //?
00248     {0xb5, 0xff}, //?
00249     {0xb0, 0xc5}, //?
00250     {0xb1, 0x94}, //?
00251     {0xb2, 0x0f}, //?
00252     {0xc4, 0x5c}, //?
00253     {0xc0, 0xc8}, // HSIZE8[7:0] 1600
00254     {0xc1, 0x96}, // VSIZE8[7:0] 1200
00255     {0x86, 0x1d}, //Module enable 
00256     {0x50, 0x00}, //?
00257     {0x51, 0x90}, //H_SIZE[7:0] (real/4) 1600
00258     {0x52, 0x18}, //V_SIZE[7:0] (real/4) 1120
00259     {0x53, 0x00}, //OFFSET_X[7:0]
00260     {0x54, 0x00}, //OFFSET_Y[7:0]
00261     {0x55, 0x88}, //V_SIZE[8]=1 H_SIZE[8]
00262     {0x57, 0x00}, //?
00263     {0x5a, 0x90}, //OUTW
00264     {0x5b, 0x18}, //OUTH
00265     {0x5c, 0x05}, //OUTW8 ,OUTH8
00266     {0xc3, 0xed}, //
00267     {0x7f, 0x00}, //?
00268     {0xda, 0x04}, //Image output format select ------ RAW 
00269     {0xe5, 0x1f}, //? 
00270     {0xe1, 0x67}, //?
00271     {0xe0, 0x00}, //Reset
00272     {0xdd, 0xff}, //?
00273     {0x05, 0x00}, //Bypass DSP no
00274     {0xC2, 0x08 | 0x04 | 0x02 },
00275 
00276     {0xff, 0x01}, //Sensor
00277     {0x11, 0x01}, //?
00278     {0xff, 0x01}, //Sensor
00279     {0x12, 0x40}, //Preview mode 
00280     {0x17, 0x11}, //?
00281     {0x18, 0x43}, //?
00282     {0x19, 0x00}, //?
00283     {0x1a, 0x4b}, //?
00284     {0x32, 0x09}, //?
00285     {0x4f, 0xca}, //?
00286     {0x50, 0xa8}, //10 101 000 V_DIVDER = 5
00287     {0x5a, 0x23}, // OUTW 23
00288     {0x6d, 0x00}, //?
00289     {0x3d, 0x38}, //?
00290     {0x39, 0x12}, //?
00291     {0x35, 0xda}, //?
00292     {0x22, 0x1a}, //?
00293     {0x37, 0xc3}, //?
00294     {0x23, 0x00}, //?
00295     {0x34, 0xc0}, //?
00296     {0x36, 0x1a}, //?
00297     {0x06, 0x88}, //?
00298     {0x07, 0xc0}, //?
00299     {0x0d, 0x87}, //?
00300     {0x0e, 0x41}, //?
00301     {0x4c, 0x00}, //?
00302     {0x48, 0x00}, //?
00303     {0x5B, 0x00}, //OUTH
00304     {0x42, 0x03}, //?
00305     {0xff, 0x00}, //DSP
00306 
00307     {0xe0, 0x04}, //Reset DVP
00308     {0xc0, 0x64}, // HSIZE8[7:0] 400
00309     {0xc1, 0x4B}, // VSIZE8[7:0] 300
00310     {0x8c, 0x00}, //?
00311     {0x86, 0x1D}, //Modle enable
00312     {0xd3, 0x82}, //Auto mode DVP PCLK=2
00313     {0xe0, 0x00}, //Reset
00314 
00315     {0xff, 0x00}, //DSP
00316     {0xc0, 0x64}, // HSIZE8[7:0] 400
00317     {0xc1, 0x4B}, // VSIZE8[7:0] 300
00318     {0x8c, 0x00}, //?
00319     {0x86, 0x3D}, //?
00320     {0x50, 0x00}, //?
00321     {0x51, 0xC8}, //H_SIZE[7:0] (real/4) 800
00322     {0x52, 0x96}, //V_SIZE[7:0] (real/4) 600
00323     {0x53, 0x00}, //OFFSET
00324     {0x54, 0x00}, //OFFSET
00325     {0x55, 0x00}, //H_SIZE[8],V_SIZE[8]
00326     {0x5a, 0xA0}, //OUTW[0-7] 160?
00327     {0x5b, 0x78}, //OUTH[0-7] 120?
00328     {0x5c, 0x00}, //OUTW8,OUTH8
00329     {0xd3, 0x04}, //?
00330     {0xFF, 0x00},
00331     {0xE0, 0x04},
00332     {0xE1, 0x67},
00333     {0xD7, 0x01},
00334     {0xDA, 0x00}, //Image output format select ------ YUV422
00335     {0xD3, 0x82},
00336     {0xE0, 0x00},
00337     {0xFF, 0xFF}
00338     };
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines