By Adam Taylor

Many embedded vision systems interface with a compact display subsystem and not a traditional monitor. Often these display must be touch-screen capable. That’s the topic of today’s blog post. I will be developing an example system that displays its output on a 7-inch touch screen.

The display I will be using is the Avnet 7-inch Zed Touch Display Kit.

So far in the journey of developing our embedded-vision system, we have been focused on the output side of the process. We have achieved:

Generating a test pattern using the FPGA-based TPG (Test Pattern Generator)

Using the VDMA IP to buffer video frames between the input video stream and the output stream

Configured the AXI4 Stream-to-video output

Configured the Video Timing Generator for parallel video output

We have used this setup to successfully generate test patterns and display them on the VGA monitor at 800x600 pixels @ 60 Hz.

The next step is to get the above video system working on our chosen display, which displays 800x480 pixels @ 60 Hz with 24 bits of RGB per pixel. This video specification closely matches our previous configuration. In fact, what I intend to do over the next few blogs is to add a second video output for the 7-inch display so that we can see the same image displayed on both on the VGA and the 7-inch touch-screen display simultaneously. We will then transition this design to the Avnet Embedded Vision Kit and add the camera interface.

The Embedded Vision Kit’s display interfaces with the both the ZedBoard and the Embedded Vision Carrier Card over a DisplayPort connection. To provide the DisplayPort interface, we need to use two of the ZedBoard’s PMOD interfaces (C and D) at the hardware level using an Avnet-developed IP block that generates the appropriate timing and serialization required. We instantiate this block within the PL (programmable logic) of the Zynq-7000 SoC.

ZedBoard with Display Port Adaptor connected

Embedded Vision Carrier Card with Display Port Adaptor

The DisplayPort interface transmits video (and audio, if required audio) over 4 LVDS lanes. Each of these lanes are 8b/10b encoded using packetized transmissions. The DisplayPort interface also provides for an auxiliary channel, which in this instance is used for I2C communications between the ZedBoard and the 7-inch display. You can find an introduction to display port here.

Before jumping in and developing my own application, I quickly ran the Avnet demo to make sure I had connected everything correctly. You can download the demo application here. This demo provides a boot file we can use to ensure the system powers up OK. Supporting documentation available here. This supporting documentation will be useful when I want to develop my own application.

I powered all this up and ran through the simple examples to create the color bars and the control panel using the serial port interface to the touch screen to set the mode I desired.

ZedBoard running the Video Demo

Demo Control via Terminal

Colorbar example demo

Control panel example

Next week we will look at how we add this touch-screen subsystem into our Vivado design so we can display images.

The code is available on Github as always.

If you want E book or hardback versions of previous MicroZed chronicle blogs, you can get them below.

First Year E Book here

First Year Hardback here

Second Year E Book here

Second Year Hardback here

You also can find links to all the previous MicroZed Chronicles blogs on my own Web site, here.