Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
Embedded System with Graphic LCD
- 01-31-2008
January 31, 2008, 3:32 am

Hey everyone,
I've been searching the interweb to determine the best approach to add
a graphic LCD to an embedded Linux system, but have so far turned up
short. Perhaps someone here can shed some light on the subject.
First, a description of the system. I'm writing the firmware for a
commercial audio processor based on the Atmel AT91SAM9260 ARM9
processor. We've recently decided to add a 240x64-pixel monochrome
graphic LCD to the front panel of the product. Because of design
constraints, we're limited to a specific LCD from Densitron, which is
based on the Sitronix ST7529 controller. We've been unable to find
any other LCD modules which meet our specs, primarily that it must be
at least 64 pixels high and fit in a 1RU enclosure, so we are stuck
with this module. Also, we're fairly far into the design process, so
using a different processor with a built-in controller is not an
option. The LCD module is connected to the data bus on chip select 0.
Okay, so what I really want to know is, what is the best approach to
implement a graphic LCD in an embedded Linux system? Also, note that
"best" in this case does not necessarily mean absolute easiest. This
is a commercial product which must be maintained in the future, so
"best" will likely be a trade-off between ease-of-implementation and
"correctness". There is no ST7529 driver available, so I'll have to
write that myself, but there are a number of options.
I could write a very simple driver to talk to the device and do most
of the work in userspace. This seems like the easiest solution at
first, but then I would have to write the font library and graphics
routines myself, which seems like a considerable amount of work.
The other option, I think, is to write a framebuffer driver and put a
graphics library, like MiniGUI or SVGALib, on top of that. I'm not
exactly sure what this entails, however, and useful information on the
topic is hard to sort out when I'm new to the subject. A little bit
of guidance would be greatly appreciated. Would this require that I
write two drivers, one to talk to the hardware and the other to
interface to the framebuffer?
Are there any other solutions that I'm unaware of? As many products
as I see that run Linux and have graphic LCDs, I know that I'm not the
first person to come across this problem. Information on the topic is
scarce, however. I've read various books on embedded Linux (Linux
Device Drivers, Embedded Linux Primer, Linux Kernel Development), but
none of them have touched on the topic of graphics for embedded
systems. I've noticed that Embedded Linux System Design and
Development has a chapter on embedded graphics, but haven't had a
chance to look through the book. Has anyone read this book? If so,
was it helpful, and is the graphics chapter any good?
Hopefully someone out there can provide me with a little bit of
architectural guidance for this situation.
Thanks in advance,
Alex
I've been searching the interweb to determine the best approach to add
a graphic LCD to an embedded Linux system, but have so far turned up
short. Perhaps someone here can shed some light on the subject.
First, a description of the system. I'm writing the firmware for a
commercial audio processor based on the Atmel AT91SAM9260 ARM9
processor. We've recently decided to add a 240x64-pixel monochrome
graphic LCD to the front panel of the product. Because of design
constraints, we're limited to a specific LCD from Densitron, which is
based on the Sitronix ST7529 controller. We've been unable to find
any other LCD modules which meet our specs, primarily that it must be
at least 64 pixels high and fit in a 1RU enclosure, so we are stuck
with this module. Also, we're fairly far into the design process, so
using a different processor with a built-in controller is not an
option. The LCD module is connected to the data bus on chip select 0.
Okay, so what I really want to know is, what is the best approach to
implement a graphic LCD in an embedded Linux system? Also, note that
"best" in this case does not necessarily mean absolute easiest. This
is a commercial product which must be maintained in the future, so
"best" will likely be a trade-off between ease-of-implementation and
"correctness". There is no ST7529 driver available, so I'll have to
write that myself, but there are a number of options.
I could write a very simple driver to talk to the device and do most
of the work in userspace. This seems like the easiest solution at
first, but then I would have to write the font library and graphics
routines myself, which seems like a considerable amount of work.
The other option, I think, is to write a framebuffer driver and put a
graphics library, like MiniGUI or SVGALib, on top of that. I'm not
exactly sure what this entails, however, and useful information on the
topic is hard to sort out when I'm new to the subject. A little bit
of guidance would be greatly appreciated. Would this require that I
write two drivers, one to talk to the hardware and the other to
interface to the framebuffer?
Are there any other solutions that I'm unaware of? As many products
as I see that run Linux and have graphic LCDs, I know that I'm not the
first person to come across this problem. Information on the topic is
scarce, however. I've read various books on embedded Linux (Linux
Device Drivers, Embedded Linux Primer, Linux Kernel Development), but
none of them have touched on the topic of graphics for embedded
systems. I've noticed that Embedded Linux System Design and
Development has a chapter on embedded graphics, but haven't had a
chance to look through the book. Has anyone read this book? If so,
was it helpful, and is the graphics chapter any good?
Hopefully someone out there can provide me with a little bit of
architectural guidance for this situation.
Thanks in advance,
Alex

Re: Embedded System with Graphic LCD

Alex,
this is a quite wide problem and would take long time to discuss it.
Of course MiniGUI, SVGALib, NanoX, FLTK or other solutions are possible
and you have to shecule some time to do that work.
Moreover 240x64-pixel monochrome display is quite unusual but you can
customise one of these libraries if necessary ;-)
Cordiali Saluti / Kindest Regards / mit freundlichen Grüssen
--
Marco Cavallini | KOAN SAS | Bergamo - Italia
embedded and real-time software engineering
Marco Cavallini | KOAN SAS | Bergamo - Italia
embedded and real-time software engineering
We've slightly trimmed the long signature. Click to see the full one.
Site Timeline
- » How to test packet loss rate ?
- — Next thread in » Embedded Linux
-
- » Safesquid Version 4.2.2.RC7 released
- — Previous thread in » Embedded Linux
-
- » Crosscompiling for ARM: reloc type R_ARM_ABS32 is not supported for PIC - ...
- — Newest thread in » Embedded Linux
-
- » Corona Death Star comic strip
- — The site's Newest Thread. Posted in » Electronics Design
-
- » COVID Inured
- — The site's Last Updated Thread. Posted in » Electronics Design
-