LCD Controller Board
The goal of this project is to create an inexpensive and easy to use LCD display solution for any application that requires a graphical LCD display. This display should be simple enough for a user with limited microcontroller experience to use, yet be powerful enough for applications requiring features such as animation or a detailed GUI.
The inspiration for this project came after purchasing a serial interface board from SerialGrafix (no longer in business) for a display with the standard SED1330 LCD controller. This board made drawing shapes and lines simple, but could not do more complex shapes and animation well. What I wanted was an interface board that would make working with the display simple, but allow for more advanced operations once I was comfortable with the basics.
The Sharp LM64K101 was selected as the LCD display. It is a 640x480 mono backlit display with no onboard controller. This display is available at the online electronics surplus store All Electronics for $20. The price, resolution, and backlight capability made this display a good choice for the project.
The Sharp display has no onboard controller or RAM for image storage, and no commercial controller was readily available for this display. A CPLD was chosen to implement the control logic and refreshing for the display, and the image is stored in DRAM. Because of the price, availability, and free development tools an Atmel 128-macrocell device was picked for the CPLD.
The command interpretation and generation of shapes and fonts will need to be handled by a microcontroller. The Atmel ATmega161 was chosen because of the price and parallel bus feature. The parallel bus is used to communicate with the CPLD.
Most of the work on this project was done in the design stage, and working with the CPLD code. Unfortunately, due to hardware or software compiler problems with the Atmel CPLD, progress came to a halt when roughly 75% of the CPLD resources were consumed. Adding additional features to one system on the CPLD would cause other systems to function in strange ways, even when the systems were not related at all. Because of these problems the project can not be finished with the Atmel CPLD. A redesign will be done using a Xilinx CPLD when time allows.
Update: All Electronics has sold out of this LCD, and a suitable replacement at 640x480 has yet to be found.