OV9665 färg-CMOS SXGA-sensor#
Kameragränssnitt#
Kameramodulen har 24 pinnar på sin flat pack-kontakt (FPC). Nedan visas stiftkonfigurationen för kameramodulen. Pinne 1 är den högraste pinnen på FPC:n med kameramodulen vänd med rätt sida upp.
Pin | Signal | Pin | Signal |
|---|---|---|---|
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 |
Strömstyrning#
Du måste tillföra 2.8V till 3.0V till AVDD-pinnen och 1.8V till 3.0V till DVDD-pinnen. Du bör driva AVDD- och DVDD-pinnarna med separata lågbrusströmförsörjningar. Dessutom bör AGND- och DGND-pinnarna vara separata så länge som möjligt i din uppställning för god bildkvalitet.
Dra RESET-pinnen låg för att återställa kameramodulen.
Dra PWDN-pinnen hög för att stänga av kameramodulen i avstängningsläge.
Styrbuss#
SIO_D- och SIO_C-pinnarna används för att styra kameramodulen. SIO_D-pinnen är styrbussens datapinne och SIO_C-pinnen är styrbussens klockpinne. Se avsnittet initialization för mer information.
Databuss#
Pinnarna Y0 till Y9 på kameramodulen bildar en 10-bitars databuss. För RGB565- och YUV422-läge är Y0 och Y1 oanvända. Y2 till Y9 används för att skicka en 8-bitars byte där Y2 är LSB och Y9 är MSB.
Medan HREF-pinnen är hög är Y2 till Y9 giltiga. På den stigande flanken av PCLK-pinnen ska Y2 till Y9 samplas. Varje pixel överförs i 2 PCLK-pulser. I SXGA-läge går PCLK-pinnen hög 2 560 gånger medan HREF-pinnen är hög och HREF-pinnen går hög 1024 gånger. I VGA-läge går PCLK-pinnen hög 1 280 gånger medan HREF-pinnen är hög och HREF-pinnen går hög 480 gånger. SXGA-upplösningen är 1280x1024 pixlar och VGA-upplösningen är 640x480 pixlar.
VSYNC-pinnen går hög och sedan låg för att markera början av varje bild.
I RGB565-läge skickar kameramodulen [MSB {R4, R3, R2, R1, R0, G5, G4, G3} LSB] varje udda klockcykel och [MSB {G2, G1, G0, B4, B3, B2, B1, B0} LSB] varje jämn klockcykel för varje pixel.
I YUV422-läge skickar kameramodulen 8-bitars YUV-data där U och V skickas med halva bandbredden. Kameramodulen skickar Y0 på den första klockcykeln, följt av U på den andra klockcykeln, följt av Y1 på den tredje klockcykeln, följt av V på den fjärde klockcykeln och upprepar sedan mönstret. Y0, U och V bildar pixel0 och Y1, U och V bildar pixel1. Två pixlar skickas var fjärde klockcykel.
Kcamerainitiering#
För att styra OV9665-kameramodulen måste du kommunicera med den med hjälp av SCCB-protokollet – vilket är exakt samma som I2C-protokollet. Enhetens slavadresser är 0x60 för skrivning och 0x61 för läsning. För att initiera kameran måste du skriva 0x80 till register 0x12 för att återställa kameran och sedan vänta en sekund. Därefter måste du skicka initieringsregisterinställningar. Observera att kameramodulen kräver en klockingång på 10 MHz till 24 MHz (vanligtvis 24 MHz) på sin XCLK-pinne för att fungera.
SXGA-initiering#
För att initiera kameran för SXGA-läge, skicka följande registerinställningar. För att ställa in bildhastigheten i SXGA-läge, skriv följande värden till registeradress 0x11: 0x80 för 15 FPS, 0x81 för 7.5 FPS, 0x82 för 5 FPS, 0x83 för 3.75 FPS, 0x84 för 3 FPS osv. när XCLK drivs vid 24 MHz. OBS: FPS-värdet kan inte vara för lågt, då fungerar kameran inte korrekt.
VGA-initiering#
För att initiera kameran för VGA-läge, skicka följande registerinställningar. För att ställa in bildhastigheten i VGA-läge, skriv följande värden till registeradress 0x11: 0x80 för 30 FPS, 0x81 för 15 FPS, 0x82 för 10 FPS, 0x83 för 7.5 FPS, 0x84 för 6 FPS osv. när XCLK drivs vid 24 MHz. OBS: FPS-värdet kan inte vara för lågt, då fungerar kameran inte korrekt.
Färgläge#
När kameran har initierats till antingen SXGA- eller VGA-läge, vid en viss bildhastighet, måste du sedan ställa in kamerans färgutmatningsformat. Du kan använda antingen RGB565 eller YUV422. Skicka dessa registerinställningar för att gå in i RGB565-läge och dessa registerinställningar för att gå in i YUV422-läge.