Beginners Guide the OV7670 (with Teensy 4.0)
by Prashaanth in Circuits > Cameras
153 Views, 2 Favorites, 0 Comments
Beginners Guide the OV7670 (with Teensy 4.0)



A beginners guide to start with and configure OV7670 camera....
The OV7670 (non-FIFO) camera is popular and cheap VGA camera that's paired with the UNO's and MEGA's. This instructable is a collection and abstraction of discussions from the very smart ppl @PJRCforum, to help beginners get started with this camera and a Teensy, so what took me a few days to complete, you may do in a few hours ;)
Supplies



OV7670 (non-FIFO module)
Teensy 4.0 or similar, microcontroller
10K Ohms pull up resistor for SCCB connection
Basics
The main control pins on the module are X_CLK, P_CLK, V_SYNC, H_SYNC, SIOC/SCL and SIOD/SDA. Here are their functions....
the What...
-> an external clock signal from 5 MHz and 48MHz to the X_CLK pin from the Teensy
-> When V_SYNC pin goes high, it's the start of a new Frame.
-> H_SYNC pin's signal denotes the start of a new line (a horizontal axis of pixels)
-> P_CLK pin's signals denotes validity of available pixel data on the data pins (D0-D7)
its a pretty simple sequence to code upon....
The next major thing is the SCCB (Serial Camera Control Bus) registers and corresponding values. This is where you could configure the camera based on the application or available hardware. The SCCB settings already set in the Program should be a good start and can be modified as per need, but further detail would be beyond the scope of this instructable (available in the camera's documentation)
Notes :
-> The X_CLK signal supplied would naturally fade out in a noisy environment, so short tracks is advised.
-> 6MHz is supplied to the X_XLK here, as i'm using a breadboard. For higher speeds a voltage divider may be necessary, but none used here...
-> Teensy 4.0 used here. I haven't tried pairing the camera with AVR boards, theoretically should work at lower clock speeds with the same code base
->SCCB is similar to i2c hence used the pull-ups, to be noted when using multiple devices in the same bus.
Connections

V_SYNC 4
HREF 5
PCLK 6
X_CLK 3
gpio6_psr port on the teensy 4.0 has been used for faster data reading
D7 20
D6 23
D5 22
D4 16
D3 17
D2 15
D1 14
D0 0
Reset 21
Code
The link to my github repo is below, the code is Modular, with explanatory comments and is easy to understand...
https://github.com/gsprashaanth4/Teensy-4.0-with-OV7670-non-fifo
It contains the main .ino file and the Python Image Visualizer.
;)