Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.
ov2640_regs.h
00001 #ifndef OV2640_REGS_H 00002 #define OV2640_REGS_H 00003 00004 #include "mbed.h" 00005 #include "ov2640.h" 00006 #include "ov5642.h" 00007 00008 #define OV2640_CHIPID_HIGH 0x0A 00009 #define OV2640_CHIPID_LOW 0x0B 00010 00011 const struct sensor_reg OV2640_QVGA[] = 00012 { 00013 {0xff, 0x0}, 00014 {0x2c, 0xff}, 00015 {0x2e, 0xdf}, 00016 {0xff, 0x1}, 00017 {0x3c, 0x32}, 00018 {0x11, 0x0}, 00019 {0x9, 0x2}, 00020 {0x4, 0xa8}, 00021 {0x13, 0xe5}, 00022 {0x14, 0x48}, 00023 {0x2c, 0xc}, 00024 {0x33, 0x78}, 00025 {0x3a, 0x33}, 00026 {0x3b, 0xfb}, 00027 {0x3e, 0x0}, 00028 {0x43, 0x11}, 00029 {0x16, 0x10}, 00030 {0x39, 0x2}, 00031 {0x35, 0x88}, 00032 00033 {0x22, 0xa}, 00034 {0x37, 0x40}, 00035 {0x23, 0x0}, 00036 {0x34, 0xa0}, 00037 {0x6, 0x2}, 00038 {0x6, 0x88}, 00039 {0x7, 0xc0}, 00040 {0xd, 0xb7}, 00041 {0xe, 0x1}, 00042 {0x4c, 0x0}, 00043 {0x4a, 0x81}, 00044 {0x21, 0x99}, 00045 {0x24, 0x40}, 00046 {0x25, 0x38}, 00047 {0x26, 0x82}, 00048 {0x5c, 0x0}, 00049 {0x63, 0x0}, 00050 {0x46, 0x22}, 00051 {0xc, 0x3a}, 00052 {0x5d, 0x55}, 00053 {0x5e, 0x7d}, 00054 {0x5f, 0x7d}, 00055 {0x60, 0x55}, 00056 {0x61, 0x70}, 00057 {0x62, 0x80}, 00058 {0x7c, 0x5}, 00059 {0x20, 0x80}, 00060 {0x28, 0x30}, 00061 {0x6c, 0x0}, 00062 {0x6d, 0x80}, 00063 {0x6e, 0x0}, 00064 {0x70, 0x2}, 00065 {0x71, 0x94}, 00066 {0x73, 0xc1}, 00067 {0x3d, 0x34}, 00068 {0x12, 0x4}, 00069 {0x5a, 0x57}, 00070 {0x4f, 0xbb}, 00071 {0x50, 0x9c}, 00072 {0xff, 0x0}, 00073 {0xe5, 0x7f}, 00074 {0xf9, 0xc0}, 00075 {0x41, 0x24}, 00076 {0xe0, 0x14}, 00077 {0x76, 0xff}, 00078 {0x33, 0xa0}, 00079 {0x42, 0x20}, 00080 {0x43, 0x18}, 00081 {0x4c, 0x0}, 00082 {0x87, 0xd0}, 00083 {0x88, 0x3f}, 00084 {0xd7, 0x3}, 00085 {0xd9, 0x10}, 00086 {0xd3, 0x82}, 00087 {0xc8, 0x8}, 00088 {0xc9, 0x80}, 00089 {0x7c, 0x0}, 00090 {0x7d, 0x0}, 00091 {0x7c, 0x3}, 00092 {0x7d, 0x48}, 00093 {0x7d, 0x48}, 00094 {0x7c, 0x8}, 00095 {0x7d, 0x20}, 00096 {0x7d, 0x10}, 00097 {0x7d, 0xe}, 00098 {0x90, 0x0}, 00099 {0x91, 0xe}, 00100 {0x91, 0x1a}, 00101 {0x91, 0x31}, 00102 {0x91, 0x5a}, 00103 {0x91, 0x69}, 00104 {0x91, 0x75}, 00105 {0x91, 0x7e}, 00106 {0x91, 0x88}, 00107 {0x91, 0x8f}, 00108 {0x91, 0x96}, 00109 {0x91, 0xa3}, 00110 {0x91, 0xaf}, 00111 {0x91, 0xc4}, 00112 {0x91, 0xd7}, 00113 {0x91, 0xe8}, 00114 {0x91, 0x20}, 00115 {0x92, 0x0}, 00116 00117 {0x93, 0x6}, 00118 {0x93, 0xe3}, 00119 {0x93, 0x3}, 00120 {0x93, 0x3}, 00121 {0x93, 0x0}, 00122 {0x93, 0x2}, 00123 {0x93, 0x0}, 00124 {0x93, 0x0}, 00125 {0x93, 0x0}, 00126 {0x93, 0x0}, 00127 {0x93, 0x0}, 00128 {0x93, 0x0}, 00129 {0x93, 0x0}, 00130 {0x96, 0x0}, 00131 {0x97, 0x8}, 00132 {0x97, 0x19}, 00133 {0x97, 0x2}, 00134 {0x97, 0xc}, 00135 {0x97, 0x24}, 00136 {0x97, 0x30}, 00137 {0x97, 0x28}, 00138 {0x97, 0x26}, 00139 {0x97, 0x2}, 00140 {0x97, 0x98}, 00141 {0x97, 0x80}, 00142 {0x97, 0x0}, 00143 {0x97, 0x0}, 00144 {0xa4, 0x0}, 00145 {0xa8, 0x0}, 00146 {0xc5, 0x11}, 00147 {0xc6, 0x51}, 00148 {0xbf, 0x80}, 00149 {0xc7, 0x10}, 00150 {0xb6, 0x66}, 00151 {0xb8, 0xa5}, 00152 {0xb7, 0x64}, 00153 {0xb9, 0x7c}, 00154 {0xb3, 0xaf}, 00155 {0xb4, 0x97}, 00156 {0xb5, 0xff}, 00157 {0xb0, 0xc5}, 00158 {0xb1, 0x94}, 00159 {0xb2, 0xf}, 00160 {0xc4, 0x5c}, 00161 {0xa6, 0x0}, 00162 {0xa7, 0x20}, 00163 {0xa7, 0xd8}, 00164 {0xa7, 0x1b}, 00165 {0xa7, 0x31}, 00166 {0xa7, 0x0}, 00167 {0xa7, 0x18}, 00168 {0xa7, 0x20}, 00169 {0xa7, 0xd8}, 00170 {0xa7, 0x19}, 00171 {0xa7, 0x31}, 00172 {0xa7, 0x0}, 00173 {0xa7, 0x18}, 00174 {0xa7, 0x20}, 00175 {0xa7, 0xd8}, 00176 {0xa7, 0x19}, 00177 {0xa7, 0x31}, 00178 {0xa7, 0x0}, 00179 {0xa7, 0x18}, 00180 {0x7f, 0x0}, 00181 {0xe5, 0x1f}, 00182 {0xe1, 0x77}, 00183 {0xdd, 0x7f}, 00184 {0xc2, 0xe}, 00185 00186 {0xff, 0x0}, 00187 {0xe0, 0x4}, 00188 {0xc0, 0xc8}, 00189 {0xc1, 0x96}, 00190 {0x86, 0x3d}, 00191 {0x51, 0x90}, 00192 {0x52, 0x2c}, 00193 {0x53, 0x0}, 00194 {0x54, 0x0}, 00195 {0x55, 0x88}, 00196 {0x57, 0x0}, 00197 00198 {0x50, 0x92}, 00199 {0x5a, 0x50}, 00200 {0x5b, 0x3c}, 00201 {0x5c, 0x0}, 00202 {0xd3, 0x4}, 00203 {0xe0, 0x0}, 00204 00205 {0xff, 0x0}, 00206 {0x5, 0x0}, 00207 00208 {0xda, 0x8}, 00209 {0xd7, 0x3}, 00210 {0xe0, 0x0}, 00211 00212 {0x5, 0x0}, 00213 00214 00215 {0xff,0xff}, 00216 }; 00217 00218 const struct sensor_reg OV2640_JPEG_INIT[] = 00219 { 00220 { 0xff, 0x00 }, 00221 { 0x2c, 0xff }, 00222 { 0x2e, 0xdf }, 00223 { 0xff, 0x01 }, 00224 { 0x3c, 0x32 }, 00225 { 0x11, 0x00 }, 00226 { 0x09, 0x02 }, 00227 { 0x04, 0x28 }, 00228 { 0x13, 0xe5 }, 00229 { 0x14, 0x48 }, 00230 { 0x2c, 0x0c }, 00231 { 0x33, 0x78 }, 00232 { 0x3a, 0x33 }, 00233 { 0x3b, 0xfB }, 00234 { 0x3e, 0x00 }, 00235 { 0x43, 0x11 }, 00236 { 0x16, 0x10 }, 00237 { 0x39, 0x92 }, 00238 { 0x35, 0xda }, 00239 { 0x22, 0x1a }, 00240 { 0x37, 0xc3 }, 00241 { 0x23, 0x00 }, 00242 { 0x34, 0xc0 }, 00243 { 0x36, 0x1a }, 00244 { 0x06, 0x88 }, 00245 { 0x07, 0xc0 }, 00246 { 0x0d, 0x87 }, 00247 { 0x0e, 0x41 }, 00248 { 0x4c, 0x00 }, 00249 { 0x48, 0x00 }, 00250 { 0x5B, 0x00 }, 00251 { 0x42, 0x03 }, 00252 { 0x4a, 0x81 }, 00253 { 0x21, 0x99 }, 00254 { 0x24, 0x40 }, 00255 { 0x25, 0x38 }, 00256 { 0x26, 0x82 }, 00257 { 0x5c, 0x00 }, 00258 { 0x63, 0x00 }, 00259 { 0x61, 0x70 }, 00260 { 0x62, 0x80 }, 00261 { 0x7c, 0x05 }, 00262 { 0x20, 0x80 }, 00263 { 0x28, 0x30 }, 00264 { 0x6c, 0x00 }, 00265 { 0x6d, 0x80 }, 00266 { 0x6e, 0x00 }, 00267 { 0x70, 0x02 }, 00268 { 0x71, 0x94 }, 00269 { 0x73, 0xc1 }, 00270 { 0x12, 0x40 }, 00271 { 0x17, 0x11 }, 00272 { 0x18, 0x43 }, 00273 { 0x19, 0x00 }, 00274 { 0x1a, 0x4b }, 00275 { 0x32, 0x09 }, 00276 { 0x37, 0xc0 }, 00277 { 0x4f, 0x60 }, 00278 { 0x50, 0xa8 }, 00279 { 0x6d, 0x00 }, 00280 { 0x3d, 0x38 }, 00281 { 0x46, 0x3f }, 00282 { 0x4f, 0x60 }, 00283 { 0x0c, 0x3c }, 00284 { 0xff, 0x00 }, 00285 { 0xe5, 0x7f }, 00286 { 0xf9, 0xc0 }, 00287 { 0x41, 0x24 }, 00288 { 0xe0, 0x14 }, 00289 { 0x76, 0xff }, 00290 { 0x33, 0xa0 }, 00291 { 0x42, 0x20 }, 00292 { 0x43, 0x18 }, 00293 { 0x4c, 0x00 }, 00294 { 0x87, 0xd5 }, 00295 { 0x88, 0x3f }, 00296 { 0xd7, 0x03 }, 00297 { 0xd9, 0x10 }, 00298 { 0xd3, 0x82 }, 00299 { 0xc8, 0x08 }, 00300 { 0xc9, 0x80 }, 00301 { 0x7c, 0x00 }, 00302 { 0x7d, 0x00 }, 00303 { 0x7c, 0x03 }, 00304 { 0x7d, 0x48 }, 00305 { 0x7d, 0x48 }, 00306 { 0x7c, 0x08 }, 00307 { 0x7d, 0x20 }, 00308 { 0x7d, 0x10 }, 00309 { 0x7d, 0x0e }, 00310 { 0x90, 0x00 }, 00311 { 0x91, 0x0e }, 00312 { 0x91, 0x1a }, 00313 { 0x91, 0x31 }, 00314 { 0x91, 0x5a }, 00315 { 0x91, 0x69 }, 00316 { 0x91, 0x75 }, 00317 { 0x91, 0x7e }, 00318 { 0x91, 0x88 }, 00319 { 0x91, 0x8f }, 00320 { 0x91, 0x96 }, 00321 { 0x91, 0xa3 }, 00322 { 0x91, 0xaf }, 00323 { 0x91, 0xc4 }, 00324 { 0x91, 0xd7 }, 00325 { 0x91, 0xe8 }, 00326 { 0x91, 0x20 }, 00327 { 0x92, 0x00 }, 00328 { 0x93, 0x06 }, 00329 { 0x93, 0xe3 }, 00330 { 0x93, 0x05 }, 00331 { 0x93, 0x05 }, 00332 { 0x93, 0x00 }, 00333 { 0x93, 0x04 }, 00334 { 0x93, 0x00 }, 00335 { 0x93, 0x00 }, 00336 { 0x93, 0x00 }, 00337 { 0x93, 0x00 }, 00338 { 0x93, 0x00 }, 00339 { 0x93, 0x00 }, 00340 { 0x93, 0x00 }, 00341 { 0x96, 0x00 }, 00342 { 0x97, 0x08 }, 00343 { 0x97, 0x19 }, 00344 { 0x97, 0x02 }, 00345 { 0x97, 0x0c }, 00346 { 0x97, 0x24 }, 00347 { 0x97, 0x30 }, 00348 { 0x97, 0x28 }, 00349 { 0x97, 0x26 }, 00350 { 0x97, 0x02 }, 00351 { 0x97, 0x98 }, 00352 { 0x97, 0x80 }, 00353 { 0x97, 0x00 }, 00354 { 0x97, 0x00 }, 00355 { 0xc3, 0xed }, 00356 { 0xa4, 0x00 }, 00357 { 0xa8, 0x00 }, 00358 { 0xc5, 0x11 }, 00359 { 0xc6, 0x51 }, 00360 { 0xbf, 0x80 }, 00361 { 0xc7, 0x10 }, 00362 { 0xb6, 0x66 }, 00363 { 0xb8, 0xA5 }, 00364 { 0xb7, 0x64 }, 00365 { 0xb9, 0x7C }, 00366 { 0xb3, 0xaf }, 00367 { 0xb4, 0x97 }, 00368 { 0xb5, 0xFF }, 00369 { 0xb0, 0xC5 }, 00370 { 0xb1, 0x94 }, 00371 { 0xb2, 0x0f }, 00372 { 0xc4, 0x5c }, 00373 { 0xc0, 0x64 }, 00374 { 0xc1, 0x4B }, 00375 { 0x8c, 0x00 }, 00376 { 0x86, 0x3D }, 00377 { 0x50, 0x00 }, 00378 { 0x51, 0xC8 }, 00379 { 0x52, 0x96 }, 00380 { 0x53, 0x00 }, 00381 { 0x54, 0x00 }, 00382 { 0x55, 0x00 }, 00383 { 0x5a, 0xC8 }, 00384 { 0x5b, 0x96 }, 00385 { 0x5c, 0x00 }, 00386 { 0xd3, 0x00 }, //{ 0xd3, 0x7f }, 00387 { 0xc3, 0xed }, 00388 { 0x7f, 0x00 }, 00389 { 0xda, 0x00 }, 00390 { 0xe5, 0x1f }, 00391 { 0xe1, 0x67 }, 00392 { 0xe0, 0x00 }, 00393 { 0xdd, 0x7f }, 00394 { 0x05, 0x00 }, 00395 00396 { 0x12, 0x40 }, 00397 { 0xd3, 0x04 }, //{ 0xd3, 0x7f }, 00398 { 0xc0, 0x16 }, 00399 { 0xC1, 0x12 }, 00400 { 0x8c, 0x00 }, 00401 { 0x86, 0x3d }, 00402 { 0x50, 0x00 }, 00403 { 0x51, 0x2C }, 00404 { 0x52, 0x24 }, 00405 { 0x53, 0x00 }, 00406 { 0x54, 0x00 }, 00407 { 0x55, 0x00 }, 00408 { 0x5A, 0x2c }, 00409 { 0x5b, 0x24 }, 00410 { 0x5c, 0x00 }, 00411 { 0xff, 0xff }, 00412 }; 00413 00414 const struct sensor_reg OV2640_YUV422[] = 00415 { 00416 { 0xFF, 0x00 }, 00417 { 0x05, 0x00 }, 00418 { 0xDA, 0x10 }, 00419 { 0xD7, 0x03 }, 00420 { 0xDF, 0x00 }, 00421 { 0x33, 0x80 }, 00422 { 0x3C, 0x40 }, 00423 { 0xe1, 0x77 }, 00424 { 0x00, 0x00 }, 00425 { 0xff, 0xff }, 00426 }; 00427 00428 const struct sensor_reg OV2640_JPEG[] = 00429 { 00430 { 0xe0, 0x14 }, 00431 { 0xe1, 0x77 }, 00432 { 0xe5, 0x1f }, 00433 { 0xd7, 0x03 }, 00434 { 0xda, 0x10 }, 00435 { 0xe0, 0x00 }, 00436 { 0xFF, 0x01 }, 00437 { 0x04, 0x08 }, 00438 { 0xff, 0xff }, 00439 }; 00440 00441 /* JPG 160x120 */ 00442 const struct sensor_reg OV2640_160x120_JPEG[] = 00443 { 00444 { 0xff, 0x01 }, 00445 { 0x12, 0x40 }, 00446 { 0x17, 0x11 }, 00447 { 0x18, 0x43 }, 00448 { 0x19, 0x00 }, 00449 { 0x1a, 0x4b }, 00450 { 0x32, 0x09 }, 00451 { 0x4f, 0xca }, 00452 { 0x50, 0xa8 }, 00453 { 0x5a, 0x23 }, 00454 { 0x6d, 0x00 }, 00455 { 0x39, 0x12 }, 00456 { 0x35, 0xda }, 00457 { 0x22, 0x1a }, 00458 { 0x37, 0xc3 }, 00459 { 0x23, 0x00 }, 00460 { 0x34, 0xc0 }, 00461 { 0x36, 0x1a }, 00462 { 0x06, 0x88 }, 00463 { 0x07, 0xc0 }, 00464 { 0x0d, 0x87 }, 00465 { 0x0e, 0x41 }, 00466 { 0x4c, 0x00 }, 00467 { 0xff, 0x00 }, 00468 { 0xe0, 0x04 }, 00469 { 0xc0, 0x64 }, 00470 { 0xc1, 0x4b }, 00471 { 0x86, 0x35 }, 00472 { 0x50, 0x92 }, 00473 { 0x51, 0xc8 }, 00474 { 0x52, 0x96 }, 00475 { 0x53, 0x00 }, 00476 { 0x54, 0x00 }, 00477 { 0x55, 0x00 }, 00478 { 0x57, 0x00 }, 00479 { 0x5a, 0x28 }, 00480 { 0x5b, 0x1e }, 00481 { 0x5c, 0x00 }, 00482 { 0xe0, 0x00 }, 00483 { 0xff, 0xff }, 00484 }; 00485 00486 /* JPG, 0x176x144 */ 00487 00488 const struct sensor_reg OV2640_176x144_JPEG[] = 00489 { 00490 { 0xff, 0x01 }, 00491 { 0x12, 0x40 }, 00492 { 0x17, 0x11 }, 00493 { 0x18, 0x43 }, 00494 { 0x19, 0x00 }, 00495 { 0x1a, 0x4b }, 00496 { 0x32, 0x09 }, 00497 { 0x4f, 0xca }, 00498 { 0x50, 0xa8 }, 00499 { 0x5a, 0x23 }, 00500 { 0x6d, 0x00 }, 00501 { 0x39, 0x12 }, 00502 { 0x35, 0xda }, 00503 { 0x22, 0x1a }, 00504 { 0x37, 0xc3 }, 00505 { 0x23, 0x00 }, 00506 { 0x34, 0xc0 }, 00507 { 0x36, 0x1a }, 00508 { 0x06, 0x88 }, 00509 { 0x07, 0xc0 }, 00510 { 0x0d, 0x87 }, 00511 { 0x0e, 0x41 }, 00512 { 0x4c, 0x00 }, 00513 { 0xff, 0x00 }, 00514 { 0xe0, 0x04 }, 00515 { 0xc0, 0x64 }, 00516 { 0xc1, 0x4b }, 00517 { 0x86, 0x35 }, 00518 { 0x50, 0x92 }, 00519 { 0x51, 0xc8 }, 00520 { 0x52, 0x96 }, 00521 { 0x53, 0x00 }, 00522 { 0x54, 0x00 }, 00523 { 0x55, 0x00 }, 00524 { 0x57, 0x00 }, 00525 { 0x5a, 0x2c }, 00526 { 0x5b, 0x24 }, 00527 { 0x5c, 0x00 }, 00528 { 0xe0, 0x00 }, 00529 { 0xff, 0xff }, 00530 }; 00531 00532 /* JPG 320x240 */ 00533 00534 const struct sensor_reg OV2640_320x240_JPEG[] = 00535 { 00536 { 0xff, 0x01 }, 00537 { 0x12, 0x40 }, 00538 { 0x17, 0x11 }, 00539 { 0x18, 0x43 }, 00540 { 0x19, 0x00 }, 00541 { 0x1a, 0x4b }, 00542 { 0x32, 0x09 }, 00543 { 0x4f, 0xca }, 00544 { 0x50, 0xa8 }, 00545 { 0x5a, 0x23 }, 00546 { 0x6d, 0x00 }, 00547 { 0x39, 0x12 }, 00548 { 0x35, 0xda }, 00549 { 0x22, 0x1a }, 00550 { 0x37, 0xc3 }, 00551 { 0x23, 0x00 }, 00552 { 0x34, 0xc0 }, 00553 { 0x36, 0x1a }, 00554 { 0x06, 0x88 }, 00555 { 0x07, 0xc0 }, 00556 { 0x0d, 0x87 }, 00557 { 0x0e, 0x41 }, 00558 { 0x4c, 0x00 }, 00559 { 0xff, 0x00 }, 00560 { 0xe0, 0x04 }, 00561 { 0xc0, 0x64 }, 00562 { 0xc1, 0x4b }, 00563 { 0x86, 0x35 }, 00564 { 0x50, 0x89 }, 00565 { 0x51, 0xc8 }, 00566 { 0x52, 0x96 }, 00567 { 0x53, 0x00 }, 00568 { 0x54, 0x00 }, 00569 { 0x55, 0x00 }, 00570 { 0x57, 0x00 }, 00571 { 0x5a, 0x50 }, 00572 { 0x5b, 0x3c }, 00573 { 0x5c, 0x00 }, 00574 { 0xe0, 0x00 }, 00575 { 0xff, 0xff }, 00576 }; 00577 00578 /* JPG 352x288 */ 00579 00580 const struct sensor_reg OV2640_352x288_JPEG[] = 00581 00582 { 00583 { 0xff, 0x01 }, 00584 { 0x12, 0x40 }, 00585 { 0x17, 0x11 }, 00586 { 0x18, 0x43 }, 00587 { 0x19, 0x00 }, 00588 { 0x1a, 0x4b }, 00589 { 0x32, 0x09 }, 00590 { 0x4f, 0xca }, 00591 { 0x50, 0xa8 }, 00592 { 0x5a, 0x23 }, 00593 { 0x6d, 0x00 }, 00594 { 0x39, 0x12 }, 00595 { 0x35, 0xda }, 00596 { 0x22, 0x1a }, 00597 { 0x37, 0xc3 }, 00598 { 0x23, 0x00 }, 00599 { 0x34, 0xc0 }, 00600 { 0x36, 0x1a }, 00601 { 0x06, 0x88 }, 00602 { 0x07, 0xc0 }, 00603 { 0x0d, 0x87 }, 00604 { 0x0e, 0x41 }, 00605 { 0x4c, 0x00 }, 00606 { 0xff, 0x00 }, 00607 { 0xe0, 0x04 }, 00608 { 0xc0, 0x64 }, 00609 { 0xc1, 0x4b }, 00610 { 0x86, 0x35 }, 00611 { 0x50, 0x89 }, 00612 { 0x51, 0xc8 }, 00613 { 0x52, 0x96 }, 00614 { 0x53, 0x00 }, 00615 { 0x54, 0x00 }, 00616 { 0x55, 0x00 }, 00617 { 0x57, 0x00 }, 00618 { 0x5a, 0x58 }, 00619 { 0x5b, 0x48 }, 00620 { 0x5c, 0x00 }, 00621 { 0xe0, 0x00 }, 00622 { 0xff, 0xff }, 00623 }; 00624 00625 /* JPG 640x480 */ 00626 const struct sensor_reg OV2640_640x480_JPEG[] = 00627 { 00628 {0xff, 0x01}, 00629 {0x11, 0x01}, 00630 {0x12, 0x00}, // Bit[6:4]: Resolution selection//0x02���� 00631 {0x17, 0x11}, // HREFST[10:3] 00632 {0x18, 0x75}, // HREFEND[10:3] 00633 {0x32, 0x36}, // Bit[5:3]: HREFEND[2:0]; Bit[2:0]: HREFST[2:0] 00634 {0x19, 0x01}, // VSTRT[9:2] 00635 {0x1a, 0x97}, // VEND[9:2] 00636 {0x03, 0x0f}, // Bit[3:2]: VEND[1:0]; Bit[1:0]: VSTRT[1:0] 00637 {0x37, 0x40}, 00638 {0x4f, 0xbb}, 00639 {0x50, 0x9c}, 00640 {0x5a, 0x57}, 00641 {0x6d, 0x80}, 00642 {0x3d, 0x34}, 00643 {0x39, 0x02}, 00644 {0x35, 0x88}, 00645 {0x22, 0x0a}, 00646 {0x37, 0x40}, 00647 {0x34, 0xa0}, 00648 {0x06, 0x02}, 00649 {0x0d, 0xb7}, 00650 {0x0e, 0x01}, 00651 00652 {0xff, 0x00}, 00653 {0xe0, 0x04}, 00654 {0xc0, 0xc8}, 00655 {0xc1, 0x96}, 00656 {0x86, 0x3d}, 00657 {0x50, 0x89}, 00658 {0x51, 0x90}, 00659 {0x52, 0x2c}, 00660 {0x53, 0x00}, 00661 {0x54, 0x00}, 00662 {0x55, 0x88}, 00663 {0x57, 0x00}, 00664 {0x5a, 0xa0}, 00665 {0x5b, 0x78}, 00666 {0x5c, 0x00}, 00667 {0xd3, 0x04}, 00668 {0xe0, 0x00}, 00669 00670 {0xff, 0xff}, 00671 }; 00672 00673 /* JPG 800x600 */ 00674 const struct sensor_reg OV2640_800x600_JPEG[] = 00675 { 00676 {0xff, 0x01}, 00677 {0x11, 0x01}, 00678 {0x12, 0x00}, // Bit[6:4]: Resolution selection//0x02���� 00679 {0x17, 0x11}, // HREFST[10:3] 00680 {0x18, 0x75}, // HREFEND[10:3] 00681 {0x32, 0x36}, // Bit[5:3]: HREFEND[2:0]; Bit[2:0]: HREFST[2:0] 00682 {0x19, 0x01}, // VSTRT[9:2] 00683 {0x1a, 0x97}, // VEND[9:2] 00684 {0x03, 0x0f}, // Bit[3:2]: VEND[1:0]; Bit[1:0]: VSTRT[1:0] 00685 {0x37, 0x40}, 00686 {0x4f, 0xbb}, 00687 {0x50, 0x9c}, 00688 {0x5a, 0x57}, 00689 {0x6d, 0x80}, 00690 {0x3d, 0x34}, 00691 {0x39, 0x02}, 00692 {0x35, 0x88}, 00693 {0x22, 0x0a}, 00694 {0x37, 0x40}, 00695 {0x34, 0xa0}, 00696 {0x06, 0x02}, 00697 {0x0d, 0xb7}, 00698 {0x0e, 0x01}, 00699 00700 {0xff, 0x00}, 00701 {0xe0, 0x04}, 00702 {0xc0, 0xc8}, 00703 {0xc1, 0x96}, 00704 {0x86, 0x35}, 00705 {0x50, 0x89}, 00706 {0x51, 0x90}, 00707 {0x52, 0x2c}, 00708 {0x53, 0x00}, 00709 {0x54, 0x00}, 00710 {0x55, 0x88}, 00711 {0x57, 0x00}, 00712 {0x5a, 0xc8}, 00713 {0x5b, 0x96}, 00714 {0x5c, 0x00}, 00715 {0xd3, 0x02}, 00716 {0xe0, 0x00}, 00717 00718 {0xff, 0xff}, 00719 }; 00720 00721 /* JPG 1024x768 */ 00722 const struct sensor_reg OV2640_1024x768_JPEG[] = 00723 { 00724 {0xff, 0x01}, 00725 {0x11, 0x01}, 00726 {0x12, 0x00}, // Bit[6:4]: Resolution selection//0x02���� 00727 {0x17, 0x11}, // HREFST[10:3] 00728 {0x18, 0x75}, // HREFEND[10:3] 00729 {0x32, 0x36}, // Bit[5:3]: HREFEND[2:0]; Bit[2:0]: HREFST[2:0] 00730 {0x19, 0x01}, // VSTRT[9:2] 00731 {0x1a, 0x97}, // VEND[9:2] 00732 {0x03, 0x0f}, // Bit[3:2]: VEND[1:0]; Bit[1:0]: VSTRT[1:0] 00733 {0x37, 0x40}, 00734 {0x4f, 0xbb}, 00735 {0x50, 0x9c}, 00736 {0x5a, 0x57}, 00737 {0x6d, 0x80}, 00738 {0x3d, 0x34}, 00739 {0x39, 0x02}, 00740 {0x35, 0x88}, 00741 {0x22, 0x0a}, 00742 {0x37, 0x40}, 00743 {0x34, 0xa0}, 00744 {0x06, 0x02}, 00745 {0x0d, 0xb7}, 00746 {0x0e, 0x01}, 00747 00748 {0xff, 0x00}, 00749 {0xc0, 0xC8}, 00750 {0xc1, 0x96}, 00751 {0x8c, 0x00}, 00752 {0x86, 0x3D}, 00753 {0x50, 0x00}, 00754 {0x51, 0x90}, 00755 {0x52, 0x2C}, 00756 {0x53, 0x00}, 00757 {0x54, 0x00}, 00758 {0x55, 0x88}, 00759 {0x5a, 0x00}, 00760 {0x5b, 0xC0}, 00761 {0x5c, 0x01}, 00762 {0xd3, 0x02}, 00763 00764 00765 {0xff, 0xff}, 00766 }; 00767 00768 /* JPG 1280x1024 */ 00769 const struct sensor_reg OV2640_1280x1024_JPEG[] = 00770 { 00771 {0xff, 0x01}, 00772 {0x11, 0x01}, 00773 {0x12, 0x00}, // Bit[6:4]: Resolution selection//0x02���� 00774 {0x17, 0x11}, // HREFST[10:3] 00775 {0x18, 0x75}, // HREFEND[10:3] 00776 {0x32, 0x36}, // Bit[5:3]: HREFEND[2:0]; Bit[2:0]: HREFST[2:0] 00777 {0x19, 0x01}, // VSTRT[9:2] 00778 {0x1a, 0x97}, // VEND[9:2] 00779 {0x03, 0x0f}, // Bit[3:2]: VEND[1:0]; Bit[1:0]: VSTRT[1:0] 00780 {0x37, 0x40}, 00781 {0x4f, 0xbb}, 00782 {0x50, 0x9c}, 00783 {0x5a, 0x57}, 00784 {0x6d, 0x80}, 00785 {0x3d, 0x34}, 00786 {0x39, 0x02}, 00787 {0x35, 0x88}, 00788 {0x22, 0x0a}, 00789 {0x37, 0x40}, 00790 {0x34, 0xa0}, 00791 {0x06, 0x02}, 00792 {0x0d, 0xb7}, 00793 {0x0e, 0x01}, 00794 00795 {0xff, 0x00}, 00796 {0xe0, 0x04}, 00797 {0xc0, 0xc8}, 00798 {0xc1, 0x96}, 00799 {0x86, 0x3d}, 00800 {0x50, 0x00}, 00801 {0x51, 0x90}, 00802 {0x52, 0x2c}, 00803 {0x53, 0x00}, 00804 {0x54, 0x00}, 00805 {0x55, 0x88}, 00806 {0x57, 0x00}, 00807 {0x5a, 0x40}, 00808 {0x5b, 0xf0}, 00809 {0x5c, 0x01}, 00810 {0xd3, 0x02}, 00811 {0xe0, 0x00}, 00812 00813 {0xff, 0xff}, 00814 }; 00815 00816 /* JPG 1600x1200 */ 00817 const struct sensor_reg OV2640_1600x1200_JPEG[] = 00818 { 00819 {0xff, 0x01}, 00820 {0x11, 0x01}, 00821 {0x12, 0x00}, // Bit[6:4]: Resolution selection//0x02���� 00822 {0x17, 0x11}, // HREFST[10:3] 00823 {0x18, 0x75}, // HREFEND[10:3] 00824 {0x32, 0x36}, // Bit[5:3]: HREFEND[2:0]; Bit[2:0]: HREFST[2:0] 00825 {0x19, 0x01}, // VSTRT[9:2] 00826 {0x1a, 0x97}, // VEND[9:2] 00827 {0x03, 0x0f}, // Bit[3:2]: VEND[1:0]; Bit[1:0]: VSTRT[1:0] 00828 {0x37, 0x40}, 00829 {0x4f, 0xbb}, 00830 {0x50, 0x9c}, 00831 {0x5a, 0x57}, 00832 {0x6d, 0x80}, 00833 {0x3d, 0x34}, 00834 {0x39, 0x02}, 00835 {0x35, 0x88}, 00836 {0x22, 0x0a}, 00837 {0x37, 0x40}, 00838 {0x34, 0xa0}, 00839 {0x06, 0x02}, 00840 {0x0d, 0xb7}, 00841 {0x0e, 0x01}, 00842 00843 {0xff, 0x00}, 00844 {0xe0, 0x04}, 00845 {0xc0, 0xc8}, 00846 {0xc1, 0x96}, 00847 {0x86, 0x3d}, 00848 {0x50, 0x00}, 00849 {0x51, 0x90}, 00850 {0x52, 0x2c}, 00851 {0x53, 0x00}, 00852 {0x54, 0x00}, 00853 {0x55, 0x88}, 00854 {0x57, 0x00}, 00855 {0x5a, 0x90}, 00856 {0x5b, 0x2C}, 00857 {0x5c, 0x05}, //bit2->1;bit[1:0]->1 00858 {0xd3, 0x02}, 00859 {0xe0, 0x00}, 00860 00861 {0xff, 0xff}, 00862 }; 00863 #endif 00864 00865
Generated on Tue Jul 12 2022 22:22:38 by 1.7.2