Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:cam-al422

Toto je starší verze dokumentu!


Kamera OV7670 s FIFO AL422

Vytvořil: Martin Kráčala, 17.1.2015

Zadání

  • Připojte modul kamery OV7670 s FIFO bufferem AL422 ke vhodnému Freedom boardu.
  • Vytvořte firmware pro sejmutí snímku z kamery, vyřešte jeho přenos do PC a následné zobrazení.
  • Využijte prostředí KDS nebo mbed.

Úvod

Tento projekt se zabývá využitím CMOS kamerového modulu OV7670 firmy OmniVision s FIFO bufferem AL422 ve spojení s mikrokontroléry s architekturou ARM. Projekt byl realizován na platformě FRDM-KL25Z od firmy Freescale s mikroprocesorem ARM Cortex-M0+ ve vývojovém prostředí mbed. Obrazová data jsou KL25Z postupně vyčítána z FIFO bufferu a posílána sériovou komunikací do PC. V rámci tohoto projektu byla dále vytvořena aplikace v prostředí MATLAB, která umožňuje připojení k sériovému portu a zpracování přijímaných obrazových dat.

Hardware

Vývojová deska FRDM-KL25Z

Projekt je založen na „ultra-low-cost“ vývojové desce FRDM-KL25Z firmy Freescale s mikroprocesorem ARM® Cortex™-M0+. Základní charakteristiky desky KL25Z jsou následující:

  • Jádro ARM® Cortex™-M0+: 48MHz, 16KB RAM, 128KB FLASH
  • USB (Host/Device), USB serial port
  • Rozhraní SPI, I2C, UART
  • Dotykový senzor
  • MMA8451Q - 3-osý akcelerometr
  • RGB led
  • GPIO a další I/O rozhraní

Obr. 1:  Pin mapa FRDM-KL25Z

Kamera OV7670 s FIFO AL422

Použitou periferií pro snímání obrazu je modul kamery OV7670 firmy OmniVision s integrovaným FIFO bufferem AL422, konkrétně se jedná o verzi CF76700-V3. Tato kamera je vybavena CMOS senzorem schopným zaznamenávat snímky s rozlišením VGA (640×480, 0.3 Mpx) při obnovovací frekvenci až 30 fps společně a dalšími periferiemi zajišťujícími obrazové předzpracování a externí konektivitu. Kamera je ovládána prostřednictvím SCCB sběrnice. Jedná se o I2C rozhraní s maximální hodinovou frekvencí 400 kHz, v projektu je použito 100 kHz..

The sensor can output the following formats on the 8 bit interface:

YUV/YCbCr 4:2:2 RGB565/555/444 GRB 4:2:2 Raw RGB In addition to the 8 data lines, the following handshaking signals exist:

VSYNC – Vertical sync output – Low during frame HREF – Horizontal reference – High during active pixels of row PCLK – Pixel clock output – Free running clock. Data is valid on rising edge. The OV7670 is clocked from a 24MHz oscillator. This provides a pixel clock (PCLK) output of 24MHz.

The Averlogic AL422B provides 3Mbits of video frame buffer memory configured as a 393,216 byte x 8 bit FIFO.

The internal memory of the AL422B is DRAM and requires continuous refreshing. The fastest clock applied to either the write clock (WCK) or the read clock (RCK) is used as the DRAM refresh timing clock. The datasheet recommends that the WCK and RCK are kept free running at least 1MHz at all times.

While the OV7670’s pixel clock (PCLK) can be turned off during horizontal blanking COM10 bit 5, the PCLK is feed directly into the write clock (WCK) pin of the AL422B for DRAM refreshing. To prevent clocking the horizontal blanking data into the FIFO, a NAND gate (U1) is used to invert the HREF output and feed this signal into the write enable (WE) pin of the AL422. The second input of the NAND gate is provided as a user controllable active high write enable (WEN).

Version 1.0 / Version 2.0 It appears two versions of the OV7970 Camera Module with AL422 FIFO exist. Apart from the addition of resistors on the SCCB, pin 6 on the version 1 module is designated as write reset (WRST) and pin 6 on the version 2 module is designated as HREF.

On the version 2 module, VSYNC from the OV7670 image sensor is connected directly to the AL422’s write reset (WRST). The concept is a low on the VSYNC (start of frame) can reset the write counter of the FIFO automatically. For this to occur, the VSYNC signal needs to be inverted. This can be done by setting COM10, bit 1 (VSYNC negative).

Obr. 2:  Fotografie kamery OV7670 s FIFO AL422 Obr. 2:  Fotografie kamery OV7670 s FIFO AL422

Tato kamera standardně disponuje kvalitním CMOS senzorem schopným zaznamenávat rozlišení až 640×480 px (VGA neboli 0.3 Mpx)
při obnovovací frekvenci až 30 fps společně s dalšími periferiemi zajišťující obrazové předzpracování a externí konektivitu. Kamera obecně
vždy zaznamenává obraz ve výše zmíněném rozlišení a obnovovací frekvenci, který je poté na základě nastavení kamery předzpracováván digitálním signálovým procesorem (DSP) a poté teprve odesílán pomocí DCMI sběrnice do koncového zařízení. Tato konfigurace je prováděna právě pomocí zmíněné SCCB sběrnice. Kamera tedy na základě nastavení podporuje rozlišení jako zmíněné VGA nebo CIF a jejich alternativy, datové formáty jako RGB565/555 nebo YUV/YCbCr(4:2:2) atd.

Zapojení přípravku

Video ukázka

Následující video dokazuje funkčnost projektu. Je spuštěna aplikace v MATLABu, provedeno připojení k sériovému portu, zachycení a přenesení několika snímků s různým nastavením.


Závěr

2015/cam-al422.1453044567.txt.gz · Poslední úprava: 2016/01/17 16:29 autor: Martin Kráčala