Infra-Red (IR) Vision on Digilent Arty Z7-20 Xilinx Zynq 7020 Development BoardFollow article
As mentioned in the previous post Getting started with Xilinx Zynq, the Xilinx Zynq®-7000 All Programmable SoC (AP SoC) integrates the software programmability of an ARM®-based processor with the hardware programmability of an FPGA. Recently, more and more engineers have begun developing embedded vision systems on Xilinx Zynq®-7000 All Programmable SoC (AP SoC).
Digilent has released the latest ARTY Z7-20 Xilinx SDSoC and reVISION stack can enable design teams without deep hardware expertise to integrate computer vision algorithms into highly responsive systems.to enable engineers, system integrators and designers to get started quickly on their embedded vision designs. With the on board 512MB DDR3 and HDMI inputs and outputs, users can run various real-time high definition (HD) video processing designs on the ARTY Z7-20 . The combined Arty Z7-20 hardware platform with
Infra-Red (IR) Vision
Infra-Red is very popular in a range of other applications from wildfire detection to defence applications. In a recent update, Adam Taylor made use of the Arty Z7-20 and FLIR Lepton IR camera to create an IR vision application to support future design projects.
Hardware Design Overview
The camera is mounted on a breakout board. This camera assembly will then be plugged into Arty Z7-20’s Arduino shield connector. Adam uses the Zynq I2C controller to issue commands to the camera. The camera supplies 14-bit video output using Video over SPI (VoSPI). He uses an AXI QSPI IP block instantiated in the Zynq SoC’s programmable logic (PL), correctly configured to work with standard SPI. This is a simple example of why Zynq SoCs are so handy for I/O-centric embedded designs. Users can accommodate just about any I/O requirement encountered with a configurable IP block or a little HDL code. To display the received image over HDMI, Adam updates HDMI reference designs provided in Digilent GitHub.
Software Design Overview
- Configure the I2C and SPI peripherals using the XIICPS
- Read the status register. If the camera is correctly configured and ready, the camera will respond with 0x06.
- Read out an image and store it within memory
- Move the stored image into the memory location being accessed by VDMA to display the image.
When Adam executes the program, he sees the image of himself taking a picture of the screen on the monitor screen. The image has been scaled up by a factor of 8.
This IR application is an open source project and can be found at Xcell Daily.