The ZedboardOLED IP core is a an open source display controller, which provides a user friendly interface to the 128×32 Organic LED display available on the Zedboard development board. The controller can be easily modified to target other embedded platforms. Complete documentation of the design can be found in the Reference Manual here . A step-by-step Quick Start Guide can be found here. The source code and license agreement is available on my Github page. A driver that provides standard C API is also available within the package.
A brief about the controller :
The controller is implemented as a slave AXI-peripheral, with seventeen software-accessed registers of 32-bits each, sixteen of which are data registers, while the last one is for control. The AXI interface is used to connect the controller to any AXI-compliant processor system. On the other hand, the ZedboardOLED controller communicates with the OLED display panel through SPI interface.
Implementation was done using Verilog, it is a hierarchical design that delegates different functionalities to different blocks, an abstract hierarchical view of the controller is shown below. Information on the separate blocks can be found in the Reference Manual
The responsibilities of the controller can be summarized by the following points:
1- Implement the AXI-interface (Type: Lite-Slave).
2- Implement the SPI protocol. (Type: Master ).
3- Initialize and power-up the screen by following the manufacturer instructions.
4- Logically divide the screen into 4 pages, each page can be used to display 16 character,where each character is represented by 8×8 bitmap.
5- Stores the bitmaps of the English alphanumeric in an internal memory.
6- Respond to requests made by the processor, these requests could be to display something on the screen or to clear it up.
7- Provide seventeen 32-bits software-accessed registers, sixteen of which are data registers,while the seventeenth one is for control. These registers are memory-mapped using the AXI-interface.
Main Features of the controller
1-Plug and play using Vivado design suite.
2-Hierarchical open-source design, it can be easily altered to fit other embedded systems’ requirements.
3-Internal display buffer.
4-English characters bitmaps are cached inside the controller.
5-Implemented driver for alphanumeric display .
See the video below for the Zedboard OLED display controller used to display a character(Alex the Alien) controlled by push buttons (GPIO).
You can refer to my Zynq SoC Training (lab3 and lab5) for more information on the usages of the Zedboard OLED display controller.