PicoCamera 0.2.0
Camera library for RP2040 with an esp32-camera compatible API
GitHub
载入中...
搜索中...
未找到
gc032a_settings.h
1/*
2 * This file is part of the PicoCamera project.
3 * https://github.com/umeiko/PicoCamera
4 *
5 * Author: umeko <umeko@stu.xmu.edu.cn>
6 * License: MIT
7 */
8
9/*
10 * GC032A default initialization register table.
11 * Ported verbatim from esp32-camera's private_include/gc032a_settings.h
12 * (Apache-2.0), comments preserved as-is.
13 *
14 * The table is terminated by {REGLIST_TAIL, 0x00}; REG_DLY as the register
15 * field marks a delay in milliseconds (not used by this table today).
16 */
17#ifndef __GC032A_SETTINGS_H__
18#define __GC032A_SETTINGS_H__
19
20#include <stdint.h>
21
22#define REG_DLY 0xffff
23#define REGLIST_TAIL 0x0000 /* Array end token */
24
25/*
26 * The default register settings, as obtained from OmniVision. There
27 * is really no making sense of most of these - lots of "reserved" values
28 * and such.
29 *
30 */
31static const uint16_t gc032a_default_init_regs[][2] = {
32 /*System*/
33 {0xf3, 0xff},
34 {0xf5, 0x06},
35 {0xf7, 0x01},
36 {0xf8, 0x03},
37 {0xf9, 0xce},
38 {0xfa, 0x00},
39 {0xfc, 0x02},
40 {0xfe, 0x02},
41 {0x81, 0x03},
42
43 {0xfe, 0x00},
44 {0x77, 0x64},
45 {0x78, 0x40},
46 {0x79, 0x60},
47 /*ANALOG & CISCTL*/
48 {0xfe, 0x00},
49 {0x03, 0x01},
50 {0x04, 0xce},
51 {0x05, 0x01},
52 {0x06, 0xad},
53 {0x07, 0x00},
54 {0x08, 0x10},
55 {0x0a, 0x00},
56 {0x0c, 0x00},
57 {0x0d, 0x01},
58 {0x0e, 0xe8}, // height 488
59 {0x0f, 0x02},
60 {0x10, 0x88}, // width 648
61 {0x17, 0x54},
62 {0x19, 0x08},
63 {0x1a, 0x0a},
64 {0x1f, 0x40},
65 {0x20, 0x30},
66 {0x2e, 0x80},
67 {0x2f, 0x2b},
68 {0x30, 0x1a},
69 {0xfe, 0x02},
70 {0x03, 0x02},
71 {0x05, 0xd7},
72 {0x06, 0x60},
73 {0x08, 0x80},
74 {0x12, 0x89},
75
76 /*blk*/
77 {0xfe, 0x00},
78 {0x18, 0x02},
79 {0xfe, 0x02},
80 {0x40, 0x22},
81 {0x45, 0x00},
82 {0x46, 0x00},
83 {0x49, 0x20},
84 {0x4b, 0x3c},
85 {0x50, 0x20},
86 {0x42, 0x10},
87
88 /*isp*/
89 {0xfe, 0x01},
90 {0x0a, 0xc5},
91 {0x45, 0x00},
92 {0xfe, 0x00},
93 {0x40, 0xff},
94 {0x41, 0x25},
95 {0x42, 0xcf},
96 {0x43, 0x10},
97 {0x44, 0x83},
98 {0x46, 0x23},
99 {0x49, 0x03},
100 {0x52, 0x02},
101 {0x54, 0x00},
102 {0xfe, 0x02},
103 {0x22, 0xf6},
104
105 /*Shading*/
106 {0xfe, 0x01},
107 {0xc1, 0x38},
108 {0xc2, 0x4c},
109 {0xc3, 0x00},
110 {0xc4, 0x32},
111 {0xc5, 0x24},
112 {0xc6, 0x16},
113 {0xc7, 0x08},
114 {0xc8, 0x08},
115 {0xc9, 0x00},
116 {0xca, 0x20},
117 {0xdc, 0x8a},
118 {0xdd, 0xa0},
119 {0xde, 0xa6},
120 {0xdf, 0x75},
121
122 /*AWB*/
123 {0xfe, 0x01},
124 {0x7c, 0x09},
125 {0x65, 0x06},
126 {0x7c, 0x08},
127 {0x56, 0xf4},
128 {0x66, 0x0f},
129 {0x67, 0x84},
130 {0x6b, 0x80},
131 {0x6d, 0x12},
132 {0x6e, 0xb0},
133 {0x86, 0x00},
134 {0x87, 0x00},
135 {0x88, 0x00},
136 {0x89, 0x00},
137 {0x8a, 0x00},
138 {0x8b, 0x00},
139 {0x8c, 0x00},
140 {0x8d, 0x00},
141 {0x8e, 0x00},
142 {0x8f, 0x00},
143 {0x90, 0x00},
144 {0x91, 0x00},
145 {0x92, 0xf4},
146 {0x93, 0xd5},
147 {0x94, 0x50},
148 {0x95, 0x0f},
149 {0x96, 0xf4},
150 {0x97, 0x2d},
151 {0x98, 0x0f},
152 {0x99, 0xa6},
153 {0x9a, 0x2d},
154 {0x9b, 0x0f},
155 {0x9c, 0x59},
156 {0x9d, 0x2d},
157 {0x9e, 0xaa},
158 {0x9f, 0x67},
159 {0xa0, 0x59},
160 {0xa1, 0x00},
161 {0xa2, 0x00},
162 {0xa3, 0x0a},
163 {0xa4, 0x00},
164 {0xa5, 0x00},
165 {0xa6, 0xd4},
166 {0xa7, 0x9f},
167 {0xa8, 0x55},
168 {0xa9, 0xd4},
169 {0xaa, 0x9f},
170 {0xab, 0xac},
171 {0xac, 0x9f},
172 {0xad, 0x55},
173 {0xae, 0xd4},
174 {0xaf, 0xac},
175 {0xb0, 0xd4},
176 {0xb1, 0xa3},
177 {0xb2, 0x55},
178 {0xb3, 0xd4},
179 {0xb4, 0xac},
180 {0xb5, 0x00},
181 {0xb6, 0x00},
182 {0xb7, 0x05},
183 {0xb8, 0xd6},
184 {0xb9, 0x8c},
185
186 /*CC*/
187 {0xfe, 0x01},
188 {0xd0, 0x40},
189 {0xd1, 0xf8},
190 {0xd2, 0x00},
191 {0xd3, 0xfa},
192 {0xd4, 0x45},
193 {0xd5, 0x02},
194
195 {0xd6, 0x30},
196 {0xd7, 0xfa},
197 {0xd8, 0x08},
198 {0xd9, 0x08},
199 {0xda, 0x58},
200 {0xdb, 0x02},
201 {0xfe, 0x00},
202
203 /*Gamma*/
204 {0xfe, 0x00},
205 {0xba, 0x00},
206 {0xbb, 0x04},
207 {0xbc, 0x0a},
208 {0xbd, 0x0e},
209 {0xbe, 0x22},
210 {0xbf, 0x30},
211 {0xc0, 0x3d},
212 {0xc1, 0x4a},
213 {0xc2, 0x5d},
214 {0xc3, 0x6b},
215 {0xc4, 0x7a},
216 {0xc5, 0x85},
217 {0xc6, 0x90},
218 {0xc7, 0xa5},
219 {0xc8, 0xb5},
220 {0xc9, 0xc2},
221 {0xca, 0xcc},
222 {0xcb, 0xd5},
223 {0xcc, 0xde},
224 {0xcd, 0xea},
225 {0xce, 0xf5},
226 {0xcf, 0xff},
227
228 /*Auto Gamma*/
229 {0xfe, 0x00},
230 {0x5a, 0x08},
231 {0x5b, 0x0f},
232 {0x5c, 0x15},
233 {0x5d, 0x1c},
234 {0x5e, 0x28},
235 {0x5f, 0x36},
236 {0x60, 0x45},
237 {0x61, 0x51},
238 {0x62, 0x6a},
239 {0x63, 0x7d},
240 {0x64, 0x8d},
241 {0x65, 0x98},
242 {0x66, 0xa2},
243 {0x67, 0xb5},
244 {0x68, 0xc3},
245 {0x69, 0xcd},
246 {0x6a, 0xd4},
247 {0x6b, 0xdc},
248 {0x6c, 0xe3},
249 {0x6d, 0xf0},
250 {0x6e, 0xf9},
251 {0x6f, 0xff},
252
253 /*Gain*/
254 {0xfe, 0x00},
255 {0x70, 0x50},
256
257 /*AEC*/
258 {0xfe, 0x00},
259 {0x4f, 0x01},
260 {0xfe, 0x01},
261 {0x0d, 0x00},
262 {0x12, 0xa0},
263 {0x13, 0x3a},
264 {0x44, 0x04},
265 {0x1f, 0x30},
266 {0x20, 0x40},
267 {0x26, 0x9a},
268 {0x3e, 0x20},
269 {0x3f, 0x2d},
270 {0x40, 0x40},
271 {0x41, 0x5b},
272 {0x42, 0x82},
273 {0x43, 0xb7},
274 {0x04, 0x0a},
275 {0x02, 0x79},
276 {0x03, 0xc0},
277
278 /*measure window*/
279 {0xfe, 0x01},
280 {0xcc, 0x08},
281 {0xcd, 0x08},
282 {0xce, 0xa4},
283 {0xcf, 0xec},
284
285 /*DNDD*/
286 {0xfe, 0x00},
287 {0x81, 0xb8},
288 {0x82, 0x12},
289 {0x83, 0x0a},
290 {0x84, 0x01},
291 {0x86, 0x50},
292 {0x87, 0x18},
293 {0x88, 0x10},
294 {0x89, 0x70},
295 {0x8a, 0x20},
296 {0x8b, 0x10},
297 {0x8c, 0x08},
298 {0x8d, 0x0a},
299
300 /*Intpee*/
301 {0xfe, 0x00},
302 {0x8f, 0xaa},
303 {0x90, 0x9c},
304 {0x91, 0x52},
305 {0x92, 0x03},
306 {0x93, 0x03},
307 {0x94, 0x08},
308 {0x95, 0x44},
309 {0x97, 0x00},
310 {0x98, 0x00},
311
312 /*ASDE*/
313 {0xfe, 0x00},
314 {0xa1, 0x30},
315 {0xa2, 0x41},
316 {0xa4, 0x30},
317 {0xa5, 0x20},
318 {0xaa, 0x30},
319 {0xac, 0x32},
320
321 /*YCP*/
322 {0xfe, 0x00},
323 {0xd1, 0x3c},
324 {0xd2, 0x3c},
325 {0xd3, 0x38},
326 {0xd6, 0xf4},
327 {0xd7, 0x1d},
328 {0xdd, 0x73},
329 {0xde, 0x84},
330
331 /*Banding*/
332 {0xfe, 0x00},
333 {0x05, 0x01},
334 {0x06, 0xad},
335 {0x07, 0x00},
336 {0x08, 0x10},
337
338 {0xfe, 0x01},
339 {0x25, 0x00},
340 {0x26, 0x9a},
341
342 {0x27, 0x01},
343 {0x28, 0xce},
344 {0x29, 0x02},
345 {0x2a, 0x68},
346 {0x2b, 0x02},
347 {0x2c, 0x68},
348 {0x2d, 0x07},
349 {0x2e, 0xd2},
350 {0x2f, 0x0b},
351 {0x30, 0x6e},
352 {0x31, 0x0e},
353 {0x32, 0x70},
354 {0x33, 0x12},
355 {0x34, 0x0c},
356 {0x3c, 0x30},
357
358 /*Analog&Cisctl*/
359 {0xfe, 0x00},
360 {0x05, 0x01},
361 {0x06, 0xa0},
362 {0x07, 0x00},
363 {0x08, 0x20},
364 {0x0a, 0x78},
365 {0x0c, 0xa0},
366 {0x0d, 0x00}, //window_height [8]
367 {0x0e, 0xf8}, //window_height [7:0] 248
368 {0x0f, 0x01}, //window_width [9:8]
369 {0x10, 0x48}, //window_width [7:0] 328
370
371 {0x55, 0x00},
372 {0x56, 0xf0}, // 240
373 {0x57, 0x01},
374 {0x58, 0x40}, // 320
375
376 /*SPI*/
377 {0xfe, 0x03},
378 {0x5b, 0x40},
379 {0x5c, 0x01},
380 {0x5d, 0xf0},
381 {0x5e, 0x00},
382
383 /*AEC*/
384 {0xfe, 0x01},
385 {0x25, 0x00}, //step
386 {0x26, 0x63},
387 {0x27, 0x01},
388 {0x28, 0x29},
389 {0x29, 0x01},
390 {0x2a, 0x29},
391 {0x2b, 0x01},
392 {0x2c, 0x29},
393 {0x2d, 0x01},
394 {0x2e, 0x29},
395 {0x2f, 0x01},
396 {0x30, 0x29},
397 {0x31, 0x01},
398 {0x32, 0x29},
399 {0x33, 0x01},
400 {0x34, 0x29},
401 {0x3c, 0x00},
402
403 /*measure window*/
404 {0xfe, 0x01},
405 {0xcc, 0x04},
406 {0xcd, 0x04},
407 {0xce, 0x72},
408 {0xcf, 0x52},
409 {REGLIST_TAIL, 0x00},
410};
411
412#endif // __GC032A_SETTINGS_H__
English version