Я пытаюсь настроить камеру OV2640, используя регистры, приведенные ниже. К сожалению, я получаю 800x600, а не 640x480. Кроме того, я ожидаю 2 байта на пиксель в режиме YUV422, но я получаю 600 строк и 800 байтов на строку, которые не составляют 2 байта на пиксель.
Я пытаюсь настроить камеру OV2640, используя регистры, приведенные ниже. К сожалению, я получаю 800x600, а не 640x480. Кроме того, я ожидаю 2 байта на пиксель в режиме YUV422, но я получаю 600 строк и 800 байтов на строку, которые не составляют 2 байта на пиксель.[code]const struct { uint8_t reg; uint8_t val; } ov2640_init_register_values[] = { // // ===== Reset and select DSP bank =====
// SET WINDOW SIZE {0xFF, 0x00}, // DSP {0X51, 0xC8}, // ESP example: HSIZE -> max_x = 200. 0x0A (160) same result {0X52, 0x96}, // ESP example: VSIZE -> max_y = 150. 0x78 (120) same result {0x53, 0x00}, // XOFFL -> 0 {0x54, 0x00}, // YOFFL -> 0 {0x55, 0x00}, // VHYX -> 0x00 {0x57, 0x00}, // TEST
// This part is not working for some reason... {0x5A, 160}, // OUTW (real / 4) {0x5B, 120}, // OUTH (real / 4) {0x5C, 0x00}, // [7:4] => zoom speed, [2] => OUTH[8], [1:0] => OUTW[9:8] {0xD3, 0x02}, {0x00, 0x00},
{0xFF, 0xFF}, // End of table
}; < /code> Я проверил, какие значения в конечном итоге были записаны на устройство, и это результат: < /p> Reg 0x2C; value 0xFF; expected 0xFF! Reg 0x2E; value 0xDF; expected 0xDF! Reg 0x3C; value 0x32; expected 0x32! Reg 0x11; value 0x10; expected 0x10! Reg 0x15; value 0x32; expected 0x32! Reg 0xE0; value 0x00; expected 0x04! -> fair because lastly in the list I reset 0xE0 to 0x00 (release the reset I guess?) Reg 0xC2; value 0x08; expected 0x08! Reg 0xDA; value 0x00; expected 0x00! Reg 0xD7; value 0x03; expected 0x03! Reg 0xE1; value 0x67; expected 0x67! Reg 0xE0; value 0x00; expected 0x00! Reg 0x12; value 0x40; expected 0x40! Reg 0x03; value 0x0A; expected 0x0A! Reg 0x32; value 0x09; expected 0x09! Reg 0x17; value 0x11; expected 0x11! Reg 0x18; value 0x43; expected 0x43! Reg 0x19; value 0x00; expected 0x00! Reg 0x1A; value 0x4B; expected 0x4B! Reg 0xC0; value 0x64; expected 0x64! Reg 0xC1; value 0x4B; expected 0x4B! Reg 0x8C; value 0x00; expected 0x00! Reg 0x86; value 0x3D; expected 0x3D! Reg 0x50; value 0x80; expected 0x80! Reg 0x51; value 0xA0; expected 0xA0! Reg 0x52; value 0x78; expected 0x78! Reg 0x53; value 0x00; expected 0x00! Reg 0x54; value 0x00; expected 0x00! Reg 0x55; value 0x00; expected 0x00! Reg 0x57; value 0x00; expected 0x00! Reg 0x5A; value 0xA0; expected 0xA0! Reg 0x5B; value 0x78; expected 0x78! Reg 0x5C; value 0x00; expected 0x00! Reg 0xD3; value 0x82; expected 0x82! [/code] Так что мне кажется хорошо.