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 #define OV9740_SLAVE_ADDRESS 0x10
00041 #define OV9740_PIDH_ADDRESS 0x300A
00042 #define OV9740_PIDL_ADDRESS 0x300B
00043 #define OV9740_PIDH 0x97
00044 #define OV9740_PIDL 0x40
00045 #define OV9740_PID_VER_MASK 0xFFF0
00046
00047
00048
00049
00050 const sensorReg_t ov9740_yuv_vga[] = {
00051
00052 {0x0103, 0x01},
00053 {0x3026, 0x00},
00054 {0x3027, 0x00},
00055 {0x3002, 0xe8},
00056 {0x3004, 0x03},
00057 {0x3005, 0xff},
00058 {0x3703, 0x42},
00059 {0x3704, 0x10},
00060 {0x3705, 0x45},
00061 {0x3603, 0xaa},
00062 {0x3632, 0x27},
00063 {0x3620, 0x66},
00064 {0x3621, 0xc0},
00065 {0x0202, 0x03},
00066 {0x0203, 0x43},
00067 {0x3833, 0x04},
00068 {0x3835, 0x02},
00069 {0x4702, 0x04},
00070 {0x4704, 0x00},
00071 {0x4706, 0x08},
00072 {0x3819, 0x6e},
00073 {0x3817, 0x94},
00074 {0x3a18, 0x00},
00075 {0x3a19, 0x7f},
00076 {0x5003, 0xa7},
00077 {0x3631, 0x5e},
00078 {0x3633, 0x50},
00079 {0x3630, 0xd2},
00080 {0x3604, 0x0c},
00081 {0x3601, 0x40},
00082 {0x3602, 0x16},
00083 {0x3610, 0xa1},
00084 {0x3612, 0x24},
00085 {0x034a, 0x02},
00086 {0x034b, 0xd3},
00087 {0x034c, 0x02},
00088 {0x034d, 0x80},
00089 {0x034e, 0x01},
00090 {0x034f, 0x68},
00091 {0x0202, 0x01},
00092 {0x0203, 0x9e},
00093 {0x381a, 0x44},
00094 {0x3707, 0x14},
00095 {0x3622, 0x9f},
00096 {0x5841, 0x04},
00097 {0x4002, 0x45},
00098 {0x5000, 0x01},
00099 {0x5001, 0x00},
00100 {0x3406, 0x00},
00101 {0x5000, 0xff},
00102 {0x5001, 0xef},
00103 {0x5003, 0xff},
00104 {0x4005, 0x18},
00105 {0x3503, 0x10},
00106 {0x3a11, 0xa0},
00107 {0x3a1b, 0x50},
00108 {0x3a0f, 0x50},
00109 {0x3a10, 0x4c},
00110 {0x3a1e, 0x4c},
00111 {0x3a1f, 0x26},
00112 {0x3104, 0x20},
00113 {0x0305, 0x03},
00114 {0x0307, 0x5f},
00115 {0x0303, 0x01},
00116 {0x0301, 0x0a},
00117 {0x3010, 0x01},
00118 {0x300c, 0x02},
00119 {0x0340, 0x02},
00120 {0x0341, 0x08},
00121 {0x0342, 0x04},
00122 {0x0343, 0xc0},
00123 {0x0101, 0x01},
00124 {0x3a08, 0x01},
00125 {0x3a09, 0x38},
00126 {0x3a0e, 0x01},
00127 {0x3a14, 0x09},
00128 {0x3a15, 0xc0},
00129 {0x3a0a, 0x01},
00130 {0x3a0b, 0x02},
00131 {0x3a0d, 0x02},
00132 {0x3a02, 0x10},
00133 {0x3a03, 0x30},
00134 {0x3c0a, 0x9c},
00135 {0x3c0b, 0x3f},
00136 {0x529a, 0x1},
00137 {0x529b, 0x2},
00138 {0x529c, 0x3},
00139 {0x529d, 0x5},
00140 {0x529e, 0x5},
00141 {0x529f, 0x28},
00142 {0x52a0, 0x32},
00143 {0x52a2, 0x0},
00144 {0x52a3, 0x2},
00145 {0x52a4, 0x0},
00146 {0x52a5, 0x4},
00147 {0x52a6, 0x0},
00148 {0x52a7, 0x8},
00149 {0x52a8, 0x0},
00150 {0x52a9, 0x10},
00151 {0x52aa, 0x0},
00152 {0x52ab, 0x38},
00153 {0x52ac, 0x0},
00154 {0x52ad, 0x3c},
00155 {0x52ae, 0x0},
00156 {0x52af, 0x4c},
00157 {0x5842, 0x02},
00158 {0x5843, 0x5e},
00159 {0x5844, 0x04},
00160 {0x5845, 0x32},
00161 {0x5846, 0x03},
00162 {0x5847, 0x29},
00163 {0x5848, 0x02},
00164 {0x5849, 0xcc},
00165 {0x5800, 0x22},
00166 {0x5801, 0x1e},
00167 {0x5802, 0x1a},
00168 {0x5803, 0x1a},
00169 {0x5804, 0x1f},
00170 {0x5805, 0x26},
00171 {0x5806, 0xe},
00172 {0x5807, 0x9},
00173 {0x5808, 0x7},
00174 {0x5809, 0x8},
00175 {0x580a, 0xb},
00176 {0x580b, 0x11},
00177 {0x580c, 0x5},
00178 {0x580d, 0x2},
00179 {0x580e, 0x0},
00180 {0x580f, 0x0},
00181 {0x5810, 0x3},
00182 {0x5811, 0x7},
00183 {0x5812, 0x4},
00184 {0x5813, 0x1},
00185 {0x5814, 0x0},
00186 {0x5815, 0x0},
00187 {0x5816, 0x3},
00188 {0x5817, 0x7},
00189 {0x5818, 0xc},
00190 {0x5819, 0x8},
00191 {0x581a, 0x6},
00192 {0x581b, 0x6},
00193 {0x581c, 0x9},
00194 {0x581d, 0x10},
00195 {0x581e, 0x20},
00196 {0x581f, 0x1b},
00197 {0x5820, 0x17},
00198 {0x5821, 0x18},
00199 {0x5822, 0x1d},
00200 {0x5823, 0x23},
00201 {0x5824, 0x5b},
00202 {0x5825, 0x6e},
00203 {0x5826, 0x6e},
00204 {0x5827, 0x7e},
00205 {0x5828, 0xab},
00206 {0x5829, 0x5e},
00207 {0x582a, 0x8a},
00208 {0x582b, 0x8a},
00209 {0x582c, 0x8a},
00210 {0x582d, 0x9d},
00211 {0x582e, 0x5b},
00212 {0x582f, 0x88},
00213 {0x5830, 0x88},
00214 {0x5831, 0x98},
00215 {0x5832, 0x9a},
00216 {0x5833, 0x4e},
00217 {0x5834, 0x8a},
00218 {0x5835, 0x79},
00219 {0x5836, 0x7a},
00220 {0x5837, 0xad},
00221 {0x5838, 0x9b},
00222 {0x5839, 0x9d},
00223 {0x583a, 0xad},
00224 {0x583b, 0x8e},
00225 {0x583c, 0x5c},
00226 {0x583e, 0x08},
00227 {0x583f, 0x04},
00228 {0x5840, 0x10},
00229 {0x5480, 0x07},
00230 {0x5481, 0x16},
00231 {0x5482, 0x2c},
00232 {0x5483, 0x4d},
00233 {0x5484, 0x59},
00234 {0x5485, 0x64},
00235 {0x5486, 0x6e},
00236 {0x5487, 0x76},
00237 {0x5488, 0x7f},
00238 {0x5489, 0x86},
00239 {0x548a, 0x94},
00240 {0x548b, 0xa3},
00241 {0x548c, 0xba},
00242 {0x548d, 0xd2},
00243 {0x548e, 0xe9},
00244 {0x548f, 0x1e},
00245 {0x5490, 0x0f},
00246 {0x5491, 0xff},
00247 {0x5492, 0x0e},
00248 {0x5493, 0x34},
00249 {0x5494, 0x07},
00250 {0x5495, 0x1a},
00251 {0x5496, 0x04},
00252 {0x5497, 0x0e},
00253 {0x5498, 0x03},
00254 {0x5499, 0x82},
00255 {0x549a, 0x03},
00256 {0x549b, 0x20},
00257 {0x549c, 0x02},
00258 {0x549d, 0xd7},
00259 {0x549e, 0x02},
00260 {0x549f, 0xa5},
00261 {0x54a0, 0x02},
00262 {0x54a1, 0x75},
00263 {0x54a2, 0x02},
00264 {0x54a3, 0x55},
00265 {0x54a4, 0x02},
00266 {0x54a5, 0x1c},
00267 {0x54a6, 0x01},
00268 {0x54a7, 0xea},
00269 {0x54a8, 0x01},
00270 {0x54a9, 0xae},
00271 {0x54aa, 0x01},
00272 {0x54ab, 0x7c},
00273 {0x54ac, 0x01},
00274 {0x54ad, 0x57},
00275 {0x5180, 0xf0},
00276 {0x5181, 0x00},
00277 {0x5182, 0x41},
00278 {0x5183, 0x42},
00279 {0x5184, 0x8f},
00280 {0x5185, 0x63},
00281 {0x5186, 0xce},
00282 {0x5187, 0xa8},
00283 {0x5188, 0x17},
00284 {0x5189, 0x1f},
00285 {0x518a, 0x27},
00286 {0x518b, 0x41},
00287 {0x518c, 0x34},
00288 {0x518d, 0xf0},
00289 {0x518e, 0x10},
00290 {0x518f, 0xff},
00291 {0x5190, 0x00},
00292 {0x5191, 0xff},
00293 {0x5192, 0x00},
00294 {0x5193, 0xff},
00295 {0x5194, 0x00},
00296 {0x5380, 0x1},
00297 {0x5381, 0x0},
00298 {0x5382, 0x0},
00299 {0x5383, 0x17},
00300 {0x5384, 0x0},
00301 {0x5385, 0x1},
00302 {0x5386, 0x0},
00303 {0x5387, 0x0},
00304 {0x5388, 0x0},
00305 {0x5389, 0xad},
00306 {0x538a, 0x0},
00307 {0x538b, 0x11},
00308 {0x538c, 0x0},
00309 {0x538d, 0x0},
00310 {0x538e, 0x0},
00311 {0x538f, 0x7},
00312 {0x5390, 0x0},
00313 {0x5391, 0x80},
00314 {0x5392, 0x0},
00315 {0x5393, 0xa0},
00316 {0x5394, 0x18},
00317 {0x3c0a, 0x9c},
00318 {0x3c0b, 0x3f},
00319 {0x5501, 0x14},
00320 {0x5502, 0x00},
00321 {0x5503, 0x40},
00322 {0x5504, 0x00},
00323 {0x5505, 0x80},
00324 {0x0100, 0x01},
00325 {0xFF, 0xFF}
00326 };
00327
00328 const sensorReg_t ov9740_yuv_wxga[] = {
00329
00330 {0x0103, 0x01},
00331 {0x3026, 0x00},
00332 {0x3027, 0x00},
00333 {0x3002, 0xe8},
00334 {0x3004, 0x03},
00335 {0x3005, 0xff},
00336 {0x3406, 0x00},
00337 {0x3603, 0xaa},
00338 {0x3632, 0x27},
00339 {0x3620, 0x66},
00340 {0x3621, 0xc0},
00341 {0x3631, 0x5e},
00342 {0x3633, 0x50},
00343 {0x3630, 0xd2},
00344 {0x3604, 0x0c},
00345 {0x3601, 0x40},
00346 {0x3602, 0x16},
00347 {0x3610, 0xa1},
00348 {0x3612, 0x24},
00349 {0x3622, 0x9f},
00350 {0x3703, 0x42},
00351 {0x3704, 0x10},
00352 {0x3705, 0x45},
00353 {0x3707, 0x14},
00354 {0x3833, 0x04},
00355 {0x3835, 0x03},
00356 {0x3819, 0x6e},
00357 {0x3817, 0x94},
00358 {0x3503, 0x10},
00359 {0x3a18, 0x00},
00360 {0x3a19, 0x7f},
00361 {0x3a11, 0xa0},
00362 {0x3a1a, 0x05},
00363 {0x3a1b, 0x50},
00364 {0x3a0f, 0x50},
00365 {0x3a10, 0x4c},
00366 {0x3a1e, 0x4c},
00367 {0x3a1f, 0x26},
00368 {0x4002, 0x45},
00369 {0x4005, 0x18},
00370 {0x4702, 0x04},
00371 {0x4704, 0x00},
00372 {0x4706, 0x08},
00373 {0x5000, 0xff},
00374 {0x5001, 0xef},
00375 {0x5003, 0xff},
00376
00377 {0x3104, 0x20},
00378 {0x0305, 0x03},
00379 {0x0307, 0x4c},
00380 {0x0303, 0x01},
00381 {0x0301, 0x08},
00382 {0x3010, 0x01},
00383 {0x300c, 0x03},
00384
00385 {0x0340, 0x03},
00386 {0x0341, 0x07},
00387 {0x0342, 0x06},
00388 {0x0343, 0x62},
00389 {0x034b, 0xd1},
00390 {0x034c, 0x05},
00391 {0x034d, 0x00},
00392 {0x034e, 0x02},
00393 {0x034f, 0xd0},
00394 {0x0101, 0x01},
00395 {0x3a08, 0x00},
00396 {0x3a09, 0xe8},
00397 {0x3a0e, 0x03},
00398 {0x3a14, 0x15},
00399 {0x3a15, 0xc6},
00400 {0x3a0a, 0x00},
00401 {0x3a0b, 0xc0},
00402 {0x3a0d, 0x04},
00403 {0x3a02, 0x18},
00404 {0x3a03, 0x20},
00405 {0x3c0a, 0x9c},
00406 {0x3c0b, 0x3f},
00407 {0x529a, 0x1},
00408 {0x529b, 0x2},
00409 {0x529c, 0x3},
00410 {0x529d, 0x5},
00411 {0x529e, 0x5},
00412 {0x529f, 0x28},
00413 {0x52a0, 0x32},
00414 {0x52a2, 0x0},
00415 {0x52a3, 0x2},
00416 {0x52a4, 0x0},
00417 {0x52a5, 0x4},
00418 {0x52a6, 0x0},
00419 {0x52a7, 0x8},
00420 {0x52a8, 0x0},
00421 {0x52a9, 0x10},
00422 {0x52aa, 0x0},
00423 {0x52ab, 0x38},
00424 {0x52ac, 0x0},
00425 {0x52ad, 0x3c},
00426 {0x52ae, 0x0},
00427 {0x52af, 0x4c},
00428 {0x5842, 0x02},
00429 {0x5843, 0x5e},
00430 {0x5844, 0x04},
00431 {0x5845, 0x32},
00432 {0x5846, 0x03},
00433 {0x5847, 0x29},
00434 {0x5848, 0x02},
00435 {0x5849, 0xcc},
00436 {0x5800, 0x22},
00437 {0x5801, 0x1e},
00438 {0x5802, 0x1a},
00439 {0x5803, 0x1a},
00440 {0x5804, 0x1f},
00441 {0x5805, 0x26},
00442 {0x5806, 0xe},
00443 {0x5807, 0x9},
00444 {0x5808, 0x7},
00445 {0x5809, 0x8},
00446 {0x580a, 0xb},
00447 {0x580b, 0x11},
00448 {0x580c, 0x5},
00449 {0x580d, 0x2},
00450 {0x580e, 0x0},
00451 {0x580f, 0x0},
00452 {0x5810, 0x3},
00453 {0x5811, 0x7},
00454 {0x5812, 0x4},
00455 {0x5813, 0x1},
00456 {0x5814, 0x0},
00457 {0x5815, 0x0},
00458 {0x5816, 0x3},
00459 {0x5817, 0x7},
00460 {0x5818, 0xc},
00461 {0x5819, 0x8},
00462 {0x581a, 0x6},
00463 {0x581b, 0x6},
00464 {0x581c, 0x9},
00465 {0x581d, 0x10},
00466 {0x581e, 0x20},
00467 {0x581f, 0x1b},
00468 {0x5820, 0x17},
00469 {0x5821, 0x18},
00470 {0x5822, 0x1d},
00471 {0x5823, 0x23},
00472 {0x5824, 0x5b},
00473 {0x5825, 0x6e},
00474 {0x5826, 0x6e},
00475 {0x5827, 0x7e},
00476 {0x5828, 0xab},
00477 {0x5829, 0x5e},
00478 {0x582a, 0x8a},
00479 {0x582b, 0x8a},
00480 {0x582c, 0x8a},
00481 {0x582d, 0x9d},
00482 {0x582e, 0x5b},
00483 {0x582f, 0x88},
00484 {0x5830, 0x88},
00485 {0x5831, 0x98},
00486 {0x5832, 0x9a},
00487 {0x5833, 0x4e},
00488 {0x5834, 0x8a},
00489 {0x5835, 0x79},
00490 {0x5836, 0x7a},
00491 {0x5837, 0xad},
00492 {0x5838, 0x9b},
00493 {0x5839, 0x9d},
00494 {0x583a, 0xad},
00495 {0x583b, 0x8e},
00496 {0x583c, 0x5c},
00497 {0x583e, 0x08},
00498 {0x583f, 0x04},
00499 {0x5840, 0x10},
00500 {0x5480, 0x07},
00501 {0x5481, 0x16},
00502 {0x5482, 0x2c},
00503 {0x5483, 0x4d},
00504 {0x5484, 0x59},
00505 {0x5485, 0x64},
00506 {0x5486, 0x6e},
00507 {0x5487, 0x76},
00508 {0x5488, 0x7f},
00509 {0x5489, 0x86},
00510 {0x548a, 0x94},
00511 {0x548b, 0xa3},
00512 {0x548c, 0xba},
00513 {0x548d, 0xd2},
00514 {0x548e, 0xe9},
00515 {0x548f, 0x1e},
00516 {0x5490, 0x0f},
00517 {0x5491, 0xff},
00518 {0x5492, 0x0e},
00519 {0x5493, 0x34},
00520 {0x5494, 0x07},
00521 {0x5495, 0x1a},
00522 {0x5496, 0x04},
00523 {0x5497, 0x0e},
00524 {0x5498, 0x03},
00525 {0x5499, 0x82},
00526 {0x549a, 0x03},
00527 {0x549b, 0x20},
00528 {0x549c, 0x02},
00529 {0x549d, 0xd7},
00530 {0x549e, 0x02},
00531 {0x549f, 0xa5},
00532 {0x54a0, 0x02},
00533 {0x54a1, 0x75},
00534 {0x54a2, 0x02},
00535 {0x54a3, 0x55},
00536 {0x54a4, 0x02},
00537 {0x54a5, 0x1c},
00538 {0x54a6, 0x01},
00539 {0x54a7, 0xea},
00540 {0x54a8, 0x01},
00541 {0x54a9, 0xae},
00542 {0x54aa, 0x01},
00543 {0x54ab, 0x7c},
00544 {0x54ac, 0x01},
00545 {0x54ad, 0x57},
00546 {0x5180, 0xf0},
00547 {0x5181, 0x00},
00548 {0x5182, 0x41},
00549 {0x5183, 0x42},
00550 {0x5184, 0x8f},
00551 {0x5185, 0x63},
00552 {0x5186, 0xce},
00553 {0x5187, 0xa8},
00554 {0x5188, 0x17},
00555 {0x5189, 0x1f},
00556 {0x518a, 0x27},
00557 {0x518b, 0x41},
00558 {0x518c, 0x34},
00559 {0x518d, 0xf0},
00560 {0x518e, 0x10},
00561 {0x518f, 0xff},
00562 {0x5190, 0x00},
00563 {0x5191, 0xff},
00564 {0x5192, 0x00},
00565 {0x5193, 0xff},
00566 {0x5194, 0x00},
00567 {0x5380, 0x1},
00568 {0x5381, 0x0},
00569 {0x5382, 0x0},
00570 {0x5383, 0x17},
00571 {0x5384, 0x0},
00572 {0x5385, 0x1},
00573 {0x5386, 0x0},
00574 {0x5387, 0x0},
00575 {0x5388, 0x0},
00576 {0x5389, 0xad},
00577 {0x538a, 0x0},
00578 {0x538b, 0x11},
00579 {0x538c, 0x0},
00580 {0x538d, 0x0},
00581 {0x538e, 0x0},
00582 {0x538f, 0x7},
00583 {0x5390, 0x0},
00584 {0x5391, 0x80},
00585 {0x5392, 0x0},
00586 {0x5393, 0xa0},
00587 {0x5394, 0x18},
00588 {0x3c0a, 0x9c},
00589 {0x3c0b, 0x3f},
00590 {0x5501, 0x14},
00591 {0x5502, 0x00},
00592 {0x5503, 0x40},
00593 {0x5504, 0x00},
00594 {0x5505, 0x80},
00595 {0x5308, 0x40},
00596 {0x5309, 0x60},
00597 {0x3a11, 0xd0},
00598 {0x3a1b, 0x78},
00599 {0x3a0f, 0x78},
00600 {0x3a10, 0x68},
00601 {0x3a1e, 0x68},
00602 {0x3a1f, 0x40},
00603 {0x0100, 0x01},
00604 {0xFF, 0xFF}
00605 };
00606
00607
00608 const sensorOutput_t ov9740_output_vga =
00609 {0, VGA, YUV_422_8_BIT, 1, 640, 360, ov9740_yuv_vga};
00610
00611 const sensorOutput_t ov9740_output_wxga =
00612 {0, WXGA, YUV_422_8_BIT, 1, 1280, 720, ov9740_yuv_wxga};
00613
00614 const sensorProfile_t ov9740Profile =
00615 {
00616 SENSOR_COMS,
00617 SENSOR_TWI_REG_2BYTE_DATA_BYTE,
00618 OV9740_SLAVE_ADDRESS,
00619 OV9740_PIDH_ADDRESS,
00620 OV9740_PIDL_ADDRESS,
00621 OV9740_PIDH,
00622 OV9740_PIDL,
00623 OV9740_PID_VER_MASK,
00624 &ov9740_output_vga,
00625 &ov9740_output_wxga,
00626 0,
00627 0,
00628 0,
00629 0,
00630 0
00631 };