Dec 29, 2011

Controllerless LCD display

After initially seeing these displays on ebay and seeing how much documentation was available for them at cafelogic I knew I had to try them out with a smaller lower power micro controller. Using the MSP430 line of micro controllers seemed a logical choice they are low power and even the small devices run at 16Mhz.

After some initial testing with a 14 pin 2kb flash device (MSP430g2231) running at 16Mhz it was obvious to get text output I would need alot more RAM than the measly 128bytes these tiny puppies house. Meet the MSP430F5438, If you ignore the errata sheet that's almost longer than the datasheet, these ICs pack alot in. 256kb of flash, 8kb RAM, 50+ IO pins and a stack of peripherals. I only really needed the extra RAM in this guy.

I had a spare IC and PCB from a previous project that's why I didn't use a smaller IC. Did I mention the 5438 only comes in 80 and 100pin variants? After wiring up the circuit as shown in the above schematic I set to work on the code. 

Source code: Download

The code is fairly basic. the main display loop dumps the contents of a 9600byte buffer 4 bits at a time onto the LCD then goes to sleep. once woken up by the watchdog timer it repeats. During this sleep phase one could process information and store it in the display buffer.

This flowchart descibes the specific driving of the LCD's signals in more detail. r15,r14,r6 are general purpose register in the MSP430's CPU. They are quicker to access than using space in RAM.

Since there is probably not enough free CPU in this design to do heavy computation between screen refreshes I'll probably attempt to create a serial character LCD with this circuit. creating a 60 by 20 character terminal.

7x15 LED matrix

Three 5x7 LED matrices connected to a main controller board.

This project was the first PCB I ever got fabricated. I used batchPCB and the eagle autorouter. Initially this display was supposed to be three 7x5 displays with spaces between to operate as a clock. After some careful tinkering I altered the displays orientation to create a larger connected display.

I've long since lost the eagle files and the original schematic. Fortunately the design is very simple and straight forward it didn't take me long to reverse engineer the schematic. As I do not intend to create another PCB of this design the schematic is hand drawn.

To test if this display still works I had to solder on a new atmega328p, as the old one had been removed and reused in another project long ago. after writing a few lines of code in AVRstudio "IT'S ALIVE!!"
As you can see the display is still in working condition surprising since I first built it in August of 2009. Here is a source file package from AVRstudio 5 for people who want to make something similar or who are just curious.

Source Package

New Parts from Element14

Today, after some trouble with element14's formatting of my address, I received some of the parts I ordered. The rest are on back-order and probably won't show up til next year.

In this shipment:
  • TLC2272
  • LT1009
  • LM334
  • Various through hole capacitors
  • Various through hole resistors. 

I'm getting some parts together to construct a new benchtop power supply (Based off this) and various part to help with breadboarding.