Sensore SXGA CMOS a colori OV9665#

Interfacciamento della fotocamera#

Il modulo fotocamera ha 24 pin sul suo connettore flat pack (FPC). Di seguito è mostrato il pinout del modulo fotocamera. Il pin 1 è il pin più a destra sull’FPC con il modulo fotocamera rivolto verso l’alto.

Pin

Segnale

Pin

Segnale

1

NC

13

XCLK

2

AGND

14

Y8

3

SIO_D

15

DGND

4

AVDD

16

Y7

5

SIO_C

17

PCLK

6

RESET

18

Y6

7

VSYNC

19

Y2

8

PWDN

20

Y5

9

HREF

21

Y3

10

NC

22

Y4

11

DVDD

23

Y1

12

Y9

24

Y0

Controllo dell’alimentazione#

Devi fornire da 2,8V a 3,0V al pin AVDD e da 1,8V a 3,0V al pin DVDD. Dovresti alimentare i pin AVDD e DVDD usando alimentatori separati a basso rumore. Inoltre, i pin AGND e DGND dovrebbero essere separati il più a lungo possibile nella tua configurazione per una buona qualità dell’immagine.

Porta basso il pin RESET per resettare il modulo fotocamera.

Porta alto il pin PWDN per spegnere il modulo fotocamera mentre è in modalità di spegnimento.

Bus di controllo#

I pin SIO_D e SIO_C vengono utilizzati per controllare il modulo fotocamera. Il pin SIO_D è il pin dati del bus di controllo e il pin SIO_C è il pin di clock del bus di controllo. Vedi la sezione initialization per maggiori dettagli.

Bus dati#

I pin da Y0 a Y9 sul modulo fotocamera formano un bus dati a 10 bit. Per le modalità RGB565 e YUV422 Y0 e Y1 non sono utilizzati. Y2 fino a Y9 vengono utilizzati per inviare un byte a 8 bit dove Y2 è il LSB e Y9 è il MSB.

Mentre il pin HREF è alto, da Y2 a Y9 sono validi. Sul fronte di salita del pin PCLK, da Y2 a Y9 dovrebbero essere campionati. Ogni pixel viene trasferito in 2 impulsi PCLK. In modalità SXGA il pin PCLK andrà alto 2.560 volte mentre il pin HREF è alto e il pin HREF andrà alto 1024 volte. In modalità VGA il pin PCLK andrà alto 1.280 volte mentre il pin HREF è alto e il pin HREF andrà alto 480 volte. La risoluzione SXGA è di 1280x1024 pixel e la risoluzione VGA è di 640x480 pixel.

Il pin VSYNC andrà alto e poi basso per segnare l’inizio di ciascun fotogramma.

In modalità RGB565, il modulo fotocamera invierà [MSB {R4, R3, R2, R1, R0, G5, G4, G3} LSB] a ogni clock dispari e [MSB {G2, G1, G0, B4, B3, B2, B1, B0} LSB] a ogni clock pari per ciascun pixel.

In modalità YUV422, il modulo fotocamera invierà dati YUV a 8 bit dove U e V vengono inviati a metà della larghezza di banda. Il modulo fotocamera invia Y0 al primo clock, seguito da U al secondo clock, seguito da Y1 al terzo clock, seguito da V al quarto clock e poi ripete lo schema. Y0, U e V formano pixel0 e Y1, U e V formano pixel1. Due pixel vengono inviati ogni quattro clock.

Inizializzazione della fotocamera#

Per controllare il modulo telecamera OV9665 devi comunicare con esso usando il protocollo SCCB – che è esattamente uguale al protocollo I2C. Gli indirizzi slave del dispositivo sono 0x60 per la scrittura e 0x61 per la lettura. Per inizializzare la telecamera devi scrivere 0x80 nel registro 0x12 per resettare la telecamera e poi attendere un secondo. Dopodiché devi inviare le impostazioni dei registri di inizializzazione. Nota che il modulo telecamera richiede un clock in ingresso da 10 MHz a 24 MHz (tipicamente 24 MHz) sul suo pin XCLK per funzionare.

Inizializzazione SXGA#

Per inizializzare la telecamera per la modalità SXGA invia le seguenti impostazioni dei registri. Per impostare la frequenza dei fotogrammi in modalità SXGA scrivi i seguenti valori all’indirizzo di registro 0x11: 0x80 per 15 FPS, 0x81 per 7,5 FPS, 0x82 per 5 FPS, 0x83 per 3,75 FPS, 0x84 per 3 FPS e così via, quando XCLK è pilotato a 24 MHz. NOTA: il valore FPS non può essere troppo basso, altrimenti la telecamera non funzionerà correttamente.

\[\text{FPS} = \frac{15 \cdot (\text{XCLK}_\text{MHz} / 24)}{(\text{value} - \text{0x80}) + 1}\]
\[\text{PCLK Frequency} = \frac{\text{XCLK}_\text{MHz}}{(\text{value} - \text{0x80}) + 1}\]

Inizializzazione VGA#

Per inizializzare la telecamera per la modalità VGA invia le seguenti impostazioni dei registri. Per impostare la frequenza dei fotogrammi in modalità VGA scrivi i seguenti valori all’indirizzo di registro 0x11: 0x80 per 30 FPS, 0x81 per 15 FPS, 0x82 per 10 FPS, 0x83 per 7,5 FPS, 0x84 per 6 FPS e così via, quando XCLK è pilotato a 24 MHz. NOTA: il valore FPS non può essere troppo basso, altrimenti la telecamera non funzionerà correttamente.

\[\text{FPS} = \frac{30 \cdot (\text{XCLK}_\text{MHz} / 24)}{(\text{value} - \text{0x80}) + 1}\]
\[\text{PCLK Frequency} = \frac{\text{XCLK}_\text{MHz}}{(\text{value} - \text{0x80}) + 1}\]

Modalità colore#

Una volta che la fotocamera è inizializzata in modalità SXGA o VGA, a una particolare frequenza dei fotogrammi, devi poi configurare il formato di uscita del colore della fotocamera. Puoi usare RGB565 o YUV422. Invia queste impostazioni dei registri per entrare in modalità RGB565 e queste impostazioni dei registri per entrare in modalità YUV422.