Added : November 03, 2010

Generate VGA graphics using an AVR microcontroller
and an external frame buffer

Microcontrollers are well suited to display information on analog
VGA monitors

If you have been working on microcontroller projects for any length of time, then you know that it can be difficult to display a large amount of data, especially when it contains more than just plain text. There are limits to how much useful information you can display on a basic character LCD, or even a dot matrix LCD, since most have low resolution, no color, and a poor refresh rate. I came up against this problem when working on a robotics project that needed to display a color image captured from a small camera and decided to see how much effort it would take to create an image on a VGA monitor using only a microcontroller to “bit bang” all of the necessary signals.

It took some time to learn how the five signals used on an analog VGA connection made an image appear on the screen, but the end results were much better than anticipated, providing a crisp 256 by 240 image on the monitor in 256 colors. Although it does take some intensive cycle accurate assembly programming, the basic coding is not very difficult to understand once you have learned what the monitor expects. In fact, making a microcontroller drive a VGA monitor is much easier than creating a video signal for a television because the VGA monitor does all of the difficult color coding for you as long as you send the video signals and sync pulses at precisely the right time. “Precisely” is the key!

The final version completed on a solderless breadboard
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s