¿Cómo puedo capturar marcos VGA (640x480) con formato RGB565 desde OV7670 + FIFO (AL422B)?

1

Hice una plataforma con LPC1788 (Cortex M3) que tenía un flash NOR externo de 8MB y una SDRAM externa de 32MB (16bit). Les conecté un módulo de cámara CF7670C-V3 (OV7670 + AL422B (FIFO)) y capturo cuadros QVGA, QQVGA en formato RGB565 a FIFO y luego guardo los datos de las imágenes en SDRAM a la perfección. También escribí un software en la PC y guardo datos de imágenes a través de USART y luego se los muestro. Tengo un gran problema con la resolución VGA (640x480). En la resolución VGA con formato RGB565, todo el tiempo que tengo una imagen, como en "OV7670, los cuadros son 640x308 no 640x480". Busco sobre un algoritmo que captura datos de cuadro VGA (640x480) a todo color en la SDRAM. ¿Que puedo hacer? ¿Cómo puedo controlar las señales FIFO_WEN y FIFO_RRST para obtener datos de imagen y guardar en la SDRAM?

CF7670C-V3 Esquema enlace

    

2 respuestas

0

A menudo me pregunto por qué las personas no leen la hoja de datos. Encontrará que el al422 tiene 384kb de ram (384 * 1024) < (640 * 480 * 2). Debe obtener el módulo para generar datos sin formato de bayer para que (384 * 1024) > (640 * 480) y usar un algoritmo de demostración para obtener una imagen a todo color. Tienes un montón de RAM y un procesador rápido para hacer eso.

    
respondido por el user3462295
1

Mi conjetura sería que aunque el chip FIFO puede contener una trama VGA completa, su CPU no es lo suficientemente rápida para descargar los datos antes de que se sobrescriba. Por lo tanto, estará limitado a capturar fotogramas individuales, en lugar de videos continuos.

Tendrá que sincronizar la captura de cuadros con la señal de sincronización de video de la cámara. Lo más fácil sería conectar la salida VSYNC de la cámara a una entrada de interrupción en su CPU y cambiar la señal de WEN en el ISR solo por un fotograma. Después de la segunda interrupción, cuando desactiva WEN, es cuando puede transferir el marco capturado desde el FIFO a su SDRAM.

También puede configurar un circuito secuencial simple utilizando un par de flip-flops para hacer lo mismo en hardware, activado por un pulso de algún tipo de la CPU.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas