Thelis TGC Graphic Chipset
Controlling a full color graphical display from a small processor is a real challenge.
A quick analysis shows that it is even out of the capabilities of such low costs processors. A VGA display, with 16 bits colors represents more than 300K pixels and a memory space of 614Kb, about 10 times bigger than the 16bits address space often encountered on 8 bits processors. And this memory is just for holding a single copy of the screen content. If bitmaps and fonts have to be drawn, additional storage memory is needed.
From the throughput point of view, TFTdisplays have to be fed with 18-bits pixel data at a frequency of 25MHz, even if a low cost processor would be able to provide data, it would have to access the data, and of course have some time to perform other tasks...
The idea of a graphics controller, specially suited for controlling the display exists from a long time. However, those controllers do not solve all issues. Their task is mostly to manage the display signals, based on the content of a video memory; some of them support writing text on the display, but they still require a powerful processor, able to transfer large bitmaps, and with an external memory interface not available in small or technology specific processors.
By combining a graphics controller and a graphics engine, some more efficient approach can be achieved. Further more, by integrating this behavior into an FPGA, other logic can be added and the BOM price is kept at same level than with standard controllers.
The TGC chipset is a VHDL IP code offering both a graphical controller and graphics engine. It uses SPI as the only required communication interface, making its usage by any low cost processor straightforward.
The chipset provides hardware acceleration, off-loading all the complexity and time-consuming tasks like bitmaps copy, proportional fonts display, view port management, bitmaps transparency management, moving icons and animations. It connects to two external components: a RAM for video and intermediate buffers storage and a FLASH for permanent storage of bitmaps, screen backgrounds and various text fonts.
The processor issues simple, high level commands to control the display. As SPI communication is very standard and requires only a few pins, development of the user interface can be done on a PC with all the comfort of modern development tools and debugger. Only an USB to SPI converter is needed. Source code for a c# demo is provided in the Graphics Engine Development kit.
The development kit, comes with some additional tools, that help you create binary structures containing converted true type fonts, compressed bitmaps ... which after having been programmed in the flash or copied to buffer memory will be usable directly from SPI commands.
Main features of the TGC chipset:
- 640x480 18bits RGB TFT support
- 65535 colors
- SPI Interfacing
- Direct video buffer read/write
- 1 or 2 video buffer, allowing double-buffering approach and graphics update without any flickering
- Images buffers
- Up to 8 view-ports to override part of the video buffer
- Support for transparency in view ports
- Hardware acceleration
- Automated bitmap copy from ram or external flash to view port buffers or video buffers
- Support compressed bitmap formats (15-bits RLE)
- Support for multiple fonts (2-bits per pixel)
- Support for anti-aliased fonts, with configurable background and foreground colors
- Support of transparent colors (images and fonts)
- Support for external flash for storing bitmaps and fonts
- Support for external access to flash
- Support for user-configurable configuration and status registers
- Command line tool for packaging images and fonts into a single binary file which can be downloaded to flash