Requirements:
- Vivado 2018.1
- Nexys 4 DDR Board
- Connections between the OV5640 module and the PMOD headers (pins assigned to JA and JB)
- Waveshare OV5640 (tested on versions A and C)
This design demonstrates how to capture images from the OV5640 camera and write them to the VGA output on the Nexys 4 DDR board. Images are captured in RGB888 format from the OV5640 and displayed using the Xilinx TFT Controller IP at 640x40 resolution.
The design implements a simple passthrough from the OV5640 camera outputs to the VGA output, with a detour through DDR memory. Only a single frame buffer is used to store the image data in memory.
- Source the build_hw.tcl file in Vivado to build the bit stream.
- Export the hardware and open SDK
- Create a new C application and add the test.c file
- Program the bitstream and run the software application
- The Nexys 4 DDR only connects four bits per colour channel to the VGA output. Nonetheless, for image processing applications, it may be useful to have 8 bits per channel as in this design.
- The AXI TFT controller expecteds RGB pixels to be encoded as 32-bit words. However, they only look at six bits per colour channel.
- The PMOD Camera adapter should be connected to headers JA and JB on the Nexys 4 DDR board.
- AXI TFT Product Guide: https://www.xilinx.com/support/documentation/ip_documentation/axi_tft/v2_0/pg095-axi-tft.pdf
- AXI VDMA Product Guide: https://www.xilinx.com/support/documentation/ip_documentation/axi_vdma/v6_3/pg020_axi_vdma.pdf
- Waveshare Resources: https://www.waveshare.com/wiki/OV5640_Camera_Board_(C)
- Digilent Board files: https://github.com/Digilent/vivado-boards/