This project is demo project for OmniVision OV7670 CMOS VGA camera module. OV7670 image sensor is low voltage CMOS device that provides the full functionality of a single-chip VGA camera and image processor in small footprint package. Camera module can be configured using Serial Camera Control Bus (SCCB) interface, which is equivalent to I2C interface. Through SCCB interface frame rate, image size (VGA, QVGA, CIF, QCIF,...) and format (YUV422, RGB565, RGB888,...) can be configured. Additionally, all required image processing functions, including exposure and gain control, white balance, color saturation, denoising and more, are also programmable through the SCCB interface. After configuration, camera image can be acquired using 8 bit parallel data interface (D7,...,D0) and appropriate synchronization signals: pixel clock (PCLK), horizontal synchronization signal (HREF/HSYNC) and vertical synchronization signal (VSYNC). In demo bellow, OV7670 camera module is connected to Mikromedia 7 for STM32F7 development board by Mikroelektronika. Mikromedia development board contains STM32F746ZG microcontroller and integrated 7-inch TFT display with touch screen driven by SSD1963 graphics controller and STMPE610 touch controller. I2C2 module is used for camera configuration (SCCB), while digital camera interface or DCMI is used for data (image) acquisition (wiring can be found below and in the image gallery). Using DCMI interface provides a simple, fast and efficient way for frame capturing. For OV7670 camera operation external clock signal (XCLK) needs to be supplied. In this demo XCLK is supplied via LPTIM1 timer module.
Two demo codes are provided below: full and simple. In full demo project STemWin graphical library and Libjpeg are used for building an embedded GUI application for camera module configuration with possibility of reading and writing JPEG image files (JPEG images captured using OV7670 can be found bellow). In simple demo captured images are directly displayed (no GUI).
Demo projects is developed using following STM32 ecosystem: