[ECOS] Alphanumeric LCD driver

Steven Clugston steven.clugston@newcastle.ac.uk
Tue Oct 27 12:20:00 GMT 2009

Hi all.

I've got some code to offer for discussion/comments.

I've written a simple bit-bash style LCD driver for those very common 2-line LCDs that use the Hitachi 4 or 8-bit HD44780 protocol.
I created an IO layer so that other types such as SPI, I2C, USB might be added at a later stage.

I've been using this code with an Olimex SAM7MT256 board which comes with one of these screens already soldered on it.
I think they also do an almost identical board which uses an LPC2xxx chip instead of an AT91.

Anyway, the code works as it stands with the above board, but I need to add some macros in a similar way to the I2C bit bang bus so that the HAL or application can define which IO lines are used for the LCD data and control lines.

The end goal for me is to be able to use a pdcurses wrapper driver with it so that the management of the screen's contents is improved by creating virtual pages which can be cycled through for example. It might seem like overkill and a major code bloat for a 2-line screen I suppose, but it could be extended for larger screens at some point in the future.  I've started to write the pdcurses driver and tested it and it seems to work in a standalone application, but I've not included it yet as it need more cleanup and testing.

I think LCD screens can be a useful debugging/tracing tool when all serial ports are taken or where there are none in the first place. They are a step better than just flashing a LED anyway.

Before I send any more time on it, is anybody else interested in this and would it eventually acceptable for CVS?

Are there any comments/suggestions particularly with regard to the IO layer generality?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: alphanumlcd.tar.gz
Type: application/x-gzip
Size: 5229 bytes
Desc: alphanumlcd.tar.gz
URL: <http://sourceware.org/pipermail/ecos-discuss/attachments/20091027/881273d3/attachment.bin>
-------------- next part --------------
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list