00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include "board.h"
00039
00040
00041
00042
00043 #define MANUFACTURER_ID 0x7FA2
00044
00045 #define OV2643_SLAVE_ADDRESS 0x30
00046 #define OV2643_PIDH_ADDRESS 0x0A
00047 #define OV2643_PIDL_ADDRESS 0x0B
00048 #define OV2643_PIDH 0x26
00049 #define OV2643_PIDL 0x43
00050 #define OV2643_PID_VER_MASK 0xFFF0
00051
00052
00053
00054
00055 const sensorReg_t ov2643_yuv_uvga[] = {
00056 {0x12, 0x80},
00057 {0xc3, 0x1f},
00058 {0xc4, 0xff},
00059 {0x3d, 0x48},
00060 {0xdd, 0xa5},
00061 {0x0e, 0xb7},
00062 {0x10, 0x0a},
00063 {0x11, 0x00},
00064 {0x0f, 0x14},
00065 {0x21, 0x25},
00066 {0x23, 0x0c},
00067 {0x12, 0x08},
00068 {0x39, 0x10},
00069 {0xcd, 0x12},
00070 {0x13, 0xff},
00071 {0x14, 0xa7},
00072 {0x15, 0x42},
00073 {0x3c, 0xa4},
00074 {0x18, 0x60},
00075 {0x19, 0x50},
00076 {0x1a, 0xe2},
00077 {0x37, 0xe8},
00078 {0x16, 0x90},
00079 {0x43, 0x00},
00080 {0x40, 0xfb},
00081 {0xa9, 0x44},
00082 {0x2f, 0xec},
00083 {0x35, 0x10},
00084 {0x36, 0x10},
00085 {0x0c, 0x00},
00086 {0x0d, 0x00},
00087 {0xd0, 0x93},
00088 {0xdc, 0x2b},
00089 {0xd9, 0x41},
00090 {0xd3, 0x02},
00091 {0x3d, 0x08},
00092 {0x0c, 0x00},
00093 {0x18, 0x2c},
00094 {0x19, 0x24},
00095 {0x1a, 0x71},
00096 {0x9b, 0x69},
00097 {0x9c, 0x7d},
00098 {0x9d, 0x7d},
00099 {0x9e, 0x69},
00100 {0x35, 0x04},
00101 {0x36, 0x04},
00102 {0x65, 0x12},
00103 {0x66, 0x20},
00104 {0x67, 0x39},
00105 {0x68, 0x4e},
00106 {0x69, 0x62},
00107 {0x6a, 0x74},
00108 {0x6b, 0x85},
00109 {0x6c, 0x92},
00110 {0x6d, 0x9e},
00111 {0x6e, 0xb2},
00112 {0x6f, 0xc0},
00113 {0x70, 0xcc},
00114 {0x71, 0xe0},
00115 {0x72, 0xee},
00116 {0x73, 0xf6},
00117 {0x74, 0x11},
00118 {0xab, 0x20},
00119 {0xac, 0x5b},
00120 {0xad, 0x05},
00121 {0xae, 0x1b},
00122 {0xaf, 0x76},
00123 {0xb0, 0x90},
00124 {0xb1, 0x90},
00125 {0xb2, 0x8c},
00126 {0xb3, 0x04},
00127 {0xb4, 0x98},
00128 {0x4c, 0x03},
00129 {0x4d, 0x30},
00130 {0x4e, 0x02},
00131 {0x4f, 0x5c},
00132 {0x50, 0x56},
00133 {0x51, 0x00},
00134 {0x52, 0x66},
00135 {0x53, 0x03},
00136 {0x54, 0x30},
00137 {0x55, 0x02},
00138 {0x56, 0x5c},
00139 {0x57, 0x40},
00140 {0x58, 0x00},
00141 {0x59, 0x66},
00142 {0x5a, 0x03},
00143 {0x5b, 0x20},
00144 {0x5c, 0x02},
00145 {0x5d, 0x5c},
00146 {0x5e, 0x3a},
00147 {0x5f, 0x00},
00148 {0x60, 0x66},
00149 {0x41, 0x1f},
00150 {0xb5, 0x01},
00151 {0xb6, 0x02},
00152 {0xb9, 0x40},
00153 {0xba, 0x28},
00154 {0xbf, 0x0c},
00155 {0xc0, 0x3e},
00156 {0xa3, 0x0a},
00157 {0xa4, 0x0f},
00158 {0xa5, 0x09},
00159 {0xa6, 0x16},
00160 {0x9f, 0x0a},
00161 {0xa0, 0x0f},
00162 {0xa7, 0x0a},
00163 {0xa8, 0x0f},
00164 {0xa1, 0x10},
00165 {0xa2, 0x04},
00166 {0xa9, 0x04},
00167 {0xaa, 0xa6},
00168 {0x75, 0x6a},
00169 {0x76, 0x11},
00170 {0x77, 0x92},
00171 {0x78, 0x21},
00172 {0x79, 0xe1},
00173 {0x7a, 0x02},
00174 {0x7c, 0x05},
00175 {0x7d, 0x08},
00176 {0x7e, 0x08},
00177 {0x7f, 0x7c},
00178 {0x80, 0x58},
00179 {0x81, 0x2a},
00180 {0x82, 0xc5},
00181 {0x83, 0x46},
00182 {0x84, 0x3a},
00183 {0x85, 0x54},
00184 {0x86, 0x44},
00185 {0x87, 0xf8},
00186 {0x88, 0x08},
00187 {0x89, 0x70},
00188 {0x8a, 0xf0},
00189 {0x8b, 0xf0},
00190 {0x90, 0xe3},
00191 {0x93, 0x10},
00192 {0x94, 0x20},
00193 {0x95, 0x10},
00194 {0x96, 0x18},
00195 {0x0f, 0x34},
00196
00197 {0x12, 0x80},
00198 {0xc3, 0x1f},
00199 {0xc4, 0xff},
00200 {0x3d, 0x48},
00201 {0xdd, 0xa5},
00202 {0x0e, 0xb4},
00203 {0x10, 0x0a},
00204 {0x11, 0x00},
00205 {0x0f, 0x14},
00206 {0x21, 0x25},
00207 {0x23, 0x0c},
00208 {0x12, 0x08},
00209 {0x39, 0x10},
00210 {0xcd, 0x12},
00211 {0x13, 0xff},
00212 {0x14, 0xa7},
00213 {0x15, 0x42},
00214 {0x3c, 0xa4},
00215 {0x18, 0x60},
00216 {0x19, 0x50},
00217 {0x1a, 0xe2},
00218 {0x37, 0xe8},
00219 {0x16, 0x90},
00220 {0x43, 0x00},
00221 {0x40, 0xfb},
00222 {0xa9, 0x44},
00223 {0x2f, 0xec},
00224 {0x35, 0x10},
00225 {0x36, 0x10},
00226 {0x0c, 0x00},
00227 {0x0d, 0x00},
00228 {0xd0, 0x93},
00229 {0xdc, 0x2b},
00230 {0xd9, 0x41},
00231 {0xd3, 0x02},
00232 {0x3d, 0x08},
00233 {0x0c, 0x00},
00234 {0x18, 0x2c},
00235 {0x19, 0x24},
00236 {0x1a, 0x71},
00237 {0x9b, 0x69},
00238 {0x9c, 0x7d},
00239 {0x9d, 0x7d},
00240 {0x9e, 0x69},
00241 {0x35, 0x04},
00242 {0x36, 0x04},
00243 {0x65, 0x12},
00244 {0x66, 0x20},
00245 {0x67, 0x39},
00246 {0x68, 0x4e},
00247 {0x69, 0x62},
00248 {0x6a, 0x74},
00249 {0x6b, 0x85},
00250 {0x6c, 0x92},
00251 {0x6d, 0x9e},
00252 {0x6e, 0xb2},
00253 {0x6f, 0xc0},
00254 {0x70, 0xcc},
00255 {0x71, 0xe0},
00256 {0x72, 0xee},
00257 {0x73, 0xf6},
00258 {0x74, 0x11},
00259 {0xab, 0x20},
00260 {0xac, 0x5b},
00261 {0xad, 0x05},
00262 {0xae, 0x1b},
00263 {0xaf, 0x76},
00264 {0xb0, 0x90},
00265 {0xb1, 0x90},
00266 {0xb2, 0x8c},
00267 {0xb3, 0x04},
00268 {0xb4, 0x98},
00269 {0x4c, 0x03},
00270 {0x4d, 0x30},
00271 {0x4e, 0x02},
00272 {0x4f, 0x5c},
00273 {0x50, 0x56},
00274 {0x51, 0x00},
00275 {0x52, 0x66},
00276 {0x53, 0x03},
00277 {0x54, 0x30},
00278 {0x55, 0x02},
00279 {0x56, 0x5c},
00280 {0x57, 0x40},
00281 {0x58, 0x00},
00282 {0x59, 0x66},
00283 {0x5a, 0x03},
00284 {0x5b, 0x20},
00285 {0x5c, 0x02},
00286 {0x5d, 0x5c},
00287 {0x5e, 0x3a},
00288 {0x5f, 0x00},
00289 {0x60, 0x66},
00290 {0x41, 0x1f},
00291 {0xb5, 0x01},
00292 {0xb6, 0x02},
00293 {0xb9, 0x40},
00294 {0xba, 0x28},
00295 {0xbf, 0x0c},
00296 {0xc0, 0x3e},
00297 {0xa3, 0x0a},
00298 {0xa4, 0x0f},
00299 {0xa5, 0x09},
00300 {0xa6, 0x16},
00301 {0x9f, 0x0a},
00302 {0xa0, 0x0f},
00303 {0xa7, 0x0a},
00304 {0xa8, 0x0f},
00305 {0xa1, 0x10},
00306 {0xa2, 0x04},
00307 {0xa9, 0x04},
00308 {0xaa, 0xa6},
00309 {0x75, 0x6a},
00310 {0x76, 0x11},
00311 {0x77, 0x92},
00312 {0x78, 0x21},
00313 {0x79, 0xe1},
00314 {0x7a, 0x02},
00315 {0x7c, 0x05},
00316 {0x7d, 0x08},
00317 {0x7e, 0x08},
00318 {0x7f, 0x7c},
00319 {0x80, 0x58},
00320 {0x81, 0x2a},
00321 {0x82, 0xc5},
00322 {0x83, 0x46},
00323 {0x84, 0x3a},
00324 {0x85, 0x54},
00325 {0x86, 0x44},
00326 {0x87, 0xf8},
00327 {0x88, 0x08},
00328 {0x89, 0x70},
00329 {0x8a, 0xf0},
00330 {0x8b, 0xf0},
00331 {0x90, 0xe3},
00332 {0x93, 0x10},
00333 {0x94, 0x20},
00334 {0x95, 0x10},
00335 {0x96, 0x18},
00336 {0x0f, 0x34},
00337 {0xFF, 0xFF}
00338 };
00339
00340 const sensorReg_t ov2643_yuv_svga[] = {
00341 {0x12, 0x80},
00342 {0xc3, 0x1f},
00343 {0xc4, 0xff},
00344 {0x3d, 0x48},
00345 {0xdd, 0xa5},
00346 {0x0e, 0xb4},
00347 {0x10, 0x0a},
00348 {0x11, 0x00},
00349 {0x0f, 0x14},
00350 {0x21, 0x25},
00351 {0x23, 0x0c},
00352 {0x12, 0x08},
00353 {0x39, 0x10},
00354 {0xcd, 0x12},
00355 {0x13, 0xff},
00356 {0x14, 0xa7},
00357 {0x15, 0x42},
00358 {0x3c, 0xa4},
00359 {0x18, 0x60},
00360 {0x19, 0x50},
00361 {0x1a, 0xe2},
00362 {0x37, 0xe8},
00363 {0x16, 0x90},
00364 {0x43, 0x00},
00365 {0x40, 0xfb},
00366 {0xa9, 0x44},
00367 {0x2f, 0xec},
00368 {0x35, 0x10},
00369 {0x36, 0x10},
00370 {0x0c, 0x00},
00371 {0x0d, 0x00},
00372 {0xd0, 0x93},
00373 {0xdc, 0x2b},
00374 {0xd9, 0x41},
00375 {0xd3, 0x02},
00376 {0x3d, 0x08},
00377 {0x0c, 0x00},
00378 {0x18, 0x2c},
00379 {0x19, 0x24},
00380 {0x1a, 0x71},
00381 {0x9b, 0x69},
00382 {0x9c, 0x7d},
00383 {0x9d, 0x7d},
00384 {0x9e, 0x69},
00385 {0x35, 0x04},
00386 {0x36, 0x04},
00387 {0x65, 0x12},
00388 {0x66, 0x20},
00389 {0x67, 0x39},
00390 {0x68, 0x4e},
00391 {0x69, 0x62},
00392 {0x6a, 0x74},
00393 {0x6b, 0x85},
00394 {0x6c, 0x92},
00395 {0x6d, 0x9e},
00396 {0x6e, 0xb2},
00397 {0x6f, 0xc0},
00398 {0x70, 0xcc},
00399 {0x71, 0xe0},
00400 {0x72, 0xee},
00401 {0x73, 0xf6},
00402 {0x74, 0x11},
00403 {0xab, 0x20},
00404 {0xac, 0x5b},
00405 {0xad, 0x05},
00406 {0xae, 0x1b},
00407 {0xaf, 0x76},
00408 {0xb0, 0x90},
00409 {0xb1, 0x90},
00410 {0xb2, 0x8c},
00411 {0xb3, 0x04},
00412 {0xb4, 0x98},
00413 {0x4c, 0x03},
00414 {0x4d, 0x30},
00415 {0x4e, 0x02},
00416 {0x4f, 0x5c},
00417 {0x50, 0x56},
00418 {0x51, 0x00},
00419 {0x52, 0x66},
00420 {0x53, 0x03},
00421 {0x54, 0x30},
00422 {0x55, 0x02},
00423 {0x56, 0x5c},
00424 {0x57, 0x40},
00425 {0x58, 0x00},
00426 {0x59, 0x66},
00427 {0x5a, 0x03},
00428 {0x5b, 0x20},
00429 {0x5c, 0x02},
00430 {0x5d, 0x5c},
00431 {0x5e, 0x3a},
00432 {0x5f, 0x00},
00433 {0x60, 0x66},
00434 {0x41, 0x1f},
00435 {0xb5, 0x01},
00436 {0xb6, 0x02},
00437 {0xb9, 0x40},
00438 {0xba, 0x28},
00439 {0xbf, 0x0c},
00440 {0xc0, 0x3e},
00441 {0xa3, 0x0a},
00442 {0xa4, 0x0f},
00443 {0xa5, 0x09},
00444 {0xa6, 0x16},
00445 {0x9f, 0x0a},
00446 {0xa0, 0x0f},
00447 {0xa7, 0x0a},
00448 {0xa8, 0x0f},
00449 {0xa1, 0x10},
00450 {0xa2, 0x04},
00451 {0xa9, 0x04},
00452 {0xaa, 0xa6},
00453 {0x75, 0x6a},
00454 {0x76, 0x11},
00455 {0x77, 0x92},
00456 {0x78, 0x21},
00457 {0x79, 0xe1},
00458 {0x7a, 0x02},
00459 {0x7c, 0x05},
00460 {0x7d, 0x08},
00461 {0x7e, 0x08},
00462 {0x7f, 0x7c},
00463 {0x80, 0x58},
00464 {0x81, 0x2a},
00465 {0x82, 0xc5},
00466 {0x83, 0x46},
00467 {0x84, 0x3a},
00468 {0x85, 0x54},
00469 {0x86, 0x44},
00470 {0x87, 0xf8},
00471 {0x88, 0x08},
00472 {0x89, 0x70},
00473 {0x8a, 0xf0},
00474 {0x8b, 0xf0},
00475 {0x90, 0xe3},
00476 {0x93, 0x10},
00477 {0x94, 0x20},
00478 {0x95, 0x10},
00479 {0x96, 0x18},
00480 {0x0f, 0x34},
00481
00482 {0x3d, 0x48},
00483 {0x0e, 0xb8},
00484 {0x20, 0x01},
00485 {0x20, 0x01},
00486 {0x20, 0x01},
00487 {0x20, 0x01},
00488 {0x20, 0x01},
00489 {0x20, 0x01},
00490 {0x20, 0x01},
00491 {0x20, 0x01},
00492 {0x21, 0x98},
00493 {0x22, 0x00},
00494 {0x23, 0x06},
00495 {0x24, 0x32},
00496 {0x25, 0x04},
00497 {0x26, 0x25},
00498 {0x27, 0x84},
00499 {0x28, 0x40},
00500 {0x29, 0x04},
00501 {0x2a, 0xce},
00502 {0x2b, 0x02},
00503 {0x2c, 0x8a},
00504 {0x12, 0x09},
00505 {0x39, 0xd0},
00506 {0xcd, 0x13},
00507 {0xde, 0x7c},
00508 {0x3d, 0x08},
00509 {0x15, 0x42},
00510 {0xde, 0x7c},
00511 {0x0f, 0x24},
00512 {0xFF, 0xFF}
00513 };
00514
00515 const sensorReg_t ov2643_yuv_vga[] = {
00516 {0x12, 0x80},
00517 {0xc3, 0x1f},
00518 {0xc4, 0xff},
00519 {0x3d, 0x48},
00520 {0xdd, 0xa5},
00521 {0x0e, 0xb7},
00522 {0x10, 0x0a},
00523 {0x11, 0x00},
00524 {0x0f, 0x14},
00525 {0x21, 0x25},
00526 {0x23, 0x0c},
00527 {0x12, 0x08},
00528 {0x39, 0x10},
00529 {0xcd, 0x12},
00530 {0x13, 0xff},
00531 {0x14, 0xa7},
00532 {0x15, 0x42},
00533 {0x3c, 0xa4},
00534 {0x18, 0x60},
00535 {0x19, 0x50},
00536 {0x1a, 0xe2},
00537 {0x37, 0xe8},
00538 {0x16, 0x90},
00539
00540 {0x43, 0x00},
00541 {0x40, 0xfb},
00542 {0xa9, 0x44},
00543 {0x2f, 0xec},
00544 {0x35, 0x10},
00545 {0x36, 0x10},
00546 {0x0c, 0x00},
00547 {0x0d, 0x00},
00548 {0xd0, 0x93},
00549 {0xdc, 0x2b},
00550 {0xd9, 0x41},
00551 {0xd3, 0x02},
00552 {0x3d, 0x08},
00553 {0x0c, 0x00},
00554 {0x18, 0x2c},
00555 {0x19, 0x24},
00556 {0x1a, 0x71},
00557 {0x9b, 0x69},
00558 {0x9c, 0x7d},
00559 {0x9d, 0x7d},
00560 {0x9e, 0x69},
00561 {0x35, 0x04},
00562 {0x36, 0x04},
00563 {0x65, 0x12},
00564 {0x66, 0x20},
00565 {0x67, 0x39},
00566 {0x68, 0x4e},
00567 {0x69, 0x62},
00568 {0x6a, 0x74},
00569 {0x6b, 0x85},
00570 {0x6c, 0x92},
00571 {0x6d, 0x9e},
00572 {0x6e, 0xb2},
00573 {0x6f, 0xc0},
00574 {0x70, 0xcc},
00575 {0x71, 0xe0},
00576 {0x72, 0xee},
00577 {0x73, 0xf6},
00578 {0x74, 0x11},
00579 {0xab, 0x20},
00580 {0xac, 0x5b},
00581 {0xad, 0x05},
00582 {0xae, 0x1b},
00583 {0xaf, 0x76},
00584 {0xb0, 0x90},
00585 {0xb1, 0x90},
00586 {0xb2, 0x8c},
00587 {0xb3, 0x04},
00588 {0xb4, 0x98},
00589 {0x4c, 0x03},
00590 {0x4d, 0x30},
00591 {0x4e, 0x02},
00592 {0x4f, 0x5c},
00593 {0x50, 0x56},
00594 {0x51, 0x00},
00595 {0x52, 0x66},
00596 {0x53, 0x03},
00597 {0x54, 0x30},
00598 {0x55, 0x02},
00599 {0x56, 0x5c},
00600 {0x57, 0x40},
00601 {0x58, 0x00},
00602 {0x59, 0x66},
00603 {0x5a, 0x03},
00604 {0x5b, 0x20},
00605 {0x5c, 0x02},
00606 {0x5d, 0x5c},
00607 {0x5e, 0x3a},
00608 {0x5f, 0x00},
00609 {0x60, 0x66},
00610 {0x41, 0x1f},
00611 {0xb5, 0x01},
00612 {0xb6, 0x02},
00613 {0xb9, 0x40},
00614 {0xba, 0x28},
00615 {0xbf, 0x0c},
00616 {0xc0, 0x3e},
00617 {0xa3, 0x0a},
00618 {0xa4, 0x0f},
00619 {0xa5, 0x09},
00620 {0xa6, 0x16},
00621 {0x9f, 0x0a},
00622 {0xa0, 0x0f},
00623 {0xa7, 0x0a},
00624 {0xa8, 0x0f},
00625 {0xa1, 0x10},
00626 {0xa2, 0x04},
00627 {0xa9, 0x04},
00628 {0xaa, 0xa6},
00629 {0x75, 0x6a},
00630 {0x76, 0x11},
00631 {0x77, 0x92},
00632 {0x78, 0x21},
00633 {0x79, 0xe1},
00634 {0x7a, 0x02},
00635 {0x7c, 0x05},
00636 {0x7d, 0x08},
00637 {0x7e, 0x08},
00638 {0x7f, 0x7c},
00639 {0x80, 0x58},
00640 {0x81, 0x2a},
00641 {0x82, 0xc5},
00642 {0x83, 0x46},
00643 {0x84, 0x3a},
00644 {0x85, 0x54},
00645 {0x86, 0x44},
00646 {0x87, 0xf8},
00647 {0x88, 0x08},
00648 {0x89, 0x70},
00649 {0x8a, 0xf0},
00650 {0x8b, 0xf0},
00651 {0x90, 0xe3},
00652 {0x93, 0x10},
00653 {0x94, 0x20},
00654 {0x95, 0x10},
00655 {0x96, 0x18},
00656 {0x0f, 0x34},
00657
00658 {0x13, 0x00},
00659 {0x3d, 0x48},
00660 {0x0e, 0xb8},
00661 {0x20, 0x02},
00662 {0x21, 0x18},
00663 {0x22, 0x00},
00664 {0x23, 0x42},
00665 {0x24, 0x28},
00666 {0x25, 0x04},
00667 {0x26, 0x1e},
00668 {0x27, 0x04},
00669 {0x28, 0x40},
00670 {0x29, 0x04},
00671 {0x2a, 0xce},
00672 {0x2b, 0x02},
00673 {0x2c, 0x8a},
00674
00675 {0x12, 0x09},
00676
00677
00678
00679 {0x39, 0xd0},
00680 {0xcd, 0x13},
00681 {0xde, 0x7c},
00682 {0x3d, 0x08},
00683 {0x13, 0xff},
00684 {0x15, 0x42},
00685 {0xFF, 0xFF}
00686 };
00687
00688 const sensorOutput_t ov2643_output_vga =
00689 {0 , VGA, YUV_422_8_BIT, 1, 640, 480, ov2643_yuv_vga };
00690
00691 const sensorOutput_t ov2643_output_svga =
00692 {0, SVGA, YUV_422_8_BIT, 1, 800, 600, ov2643_yuv_svga };
00693
00694 const sensorOutput_t ov2643_output_uvga =
00695 {0, UVGA, YUV_422_8_BIT, 1, 1600, 1200, ov2643_yuv_uvga };
00696
00697 const sensorProfile_t ov2643Profile =
00698 {
00699 SENSOR_COMS,
00700 SENSOR_TWI_REG_BYTE_DATA_BYTE,
00701 OV2643_SLAVE_ADDRESS,
00702 OV2643_PIDH_ADDRESS,
00703 OV2643_PIDL_ADDRESS,
00704 OV2643_PIDH,
00705 OV2643_PIDL,
00706 OV2643_PID_VER_MASK,
00707 &ov2643_output_vga,
00708 &ov2643_output_svga,
00709 &ov2643_output_uvga,
00710 0,
00711 0,
00712 0,
00713 0
00714 };