Forums

QVGA LCD and lpc2000 w/o LCD controller

Started by Kevin Townsend December 25, 2008
I have a 2478 development board that I have been playing with, and
it's nice to have an LCD controller built into the chip, but I was
wondering if it would be possible to drive a QVGA TFT screen directly
from a different LPC2000 chip like a 2378 without an LCD controller
(and ideally with a minimum of external components)?

Obviously I need enough memory to use as a display memory map
(320x240x16-bits), but I was wondering if someone with more
experience could give me an indication of what would be required
hardware wise to generate the appropriate signals (HSYNC/VSYNC,
etc.), and drive the display (aside from memory), and what could be
done purely in software with the existing components in a 2378 or
similar chip.

I was thinking about trying with some 320x240 displays I have that
have a Himax HX8238-A driver ... but has anyone here had any
experience using this combination? If it isn't feasible, I'd rather
spend my time finding a different solution, but if it is possible it
can save me about $5-7 per board and I don't mind the hard work of
learning how to make the combination work.

http://www.olimex.com/dev/pdf/ARM/LPC/HX8238A.pdf

In any case, I appreciate any feedback or help anyone can offer on
this.

Kevin.

An Engineer's Guide to the LPC2100 Series

Hi Kevin,
Have you thought about external bus interface? Many of 320x240 TFT LCD
support 8-bit interface which you can connect them directly to EBI. Those
I'm using have ILI9320 or ILI9325 for it's driver.
Best Regards,
Chutiman Yongprapat
Chutiman:

Thanks for the reply. I see that there is indeed the ability to send
commands over SPI and use either an 8 or 24 bit bus for the pixel data,
which is easy enough to wire up. However, I'm not sure what is
required to provide the HSYNC/VSYNC/DOTCLK/DE signals. I understand
how they work, but can these signals be dependably generated in
software with an LPC2148, or 2378, etc., or do I need external timing
devices? If you are able to give me an idea how to produce these clock
signals, I would appreciate it, since I am wondering if I need to use
an external crystal or something similar.

Kevin.
On Sat, 27 Dec 2008 00:00:47 -0000, you wrote:

>Chutiman:
>
>Thanks for the reply. I see that there is indeed the ability to send
>commands over SPI and use either an 8 or 24 bit bus for the pixel data,
>which is easy enough to wire up. However, I'm not sure what is
>required to provide the HSYNC/VSYNC/DOTCLK/DE signals. I understand
>how they work, but can these signals be dependably generated in
>software with an LPC2148, or 2378, etc., or do I need external timing
>devices? If you are able to give me an idea how to produce these clock
>signals, I would appreciate it, since I am wondering if I need to use
>an external crystal or something similar.

Things like sync timings and pixel clocks can be generated fairly easily using timer match outputs
> Things like sync timings and pixel clocks can be generated fairly easily using timer match outputs

Is there any chance you could describe a basic way to set that up,
i.e., what hardware might be required and what devices on the lpc MCU
would need to be used?

Kevin.
On Sat, 27 Dec 2008 11:18:22 -0000, you wrote:

>> Things like sync timings and pixel clocks can be generated fairly
>easily using timer match outputs
>
>Is there any chance you could describe a basic way to set that up,
>i.e., what hardware might be required and what devices on the lpc MCU
>would need to be used?
>
>Kevin.

For clocks, toggle on match or PWM mode to give the required clock freq.
For syncs etc. the general method is to use a PWM mode, or a set/clear on match plus an interrupt to
reload the match reg with the time for the next edge. This will give precise timings as the edges
are hardware generated and not dependent on interrupt latency, provided you can reload the match
register quickly enough. For high speeds you may need to use FIQs and make good use of the banked
FIQ registers to mimimise context switch overheads,.

If you need to use multiple timers, it is possible to get them in sync but needs a little care, e.g.
to avoid ints between the initialising the 2 counters.

Read the whole of the timer section of teh UM for the part you use - there are some subtle
differences on some parts.

You will of course need a decent scope to get the timings right.
--- In l..., "Kevin Townsend" wrote:
> I was thinking about trying with some 320x240 displays I have that
> have a Himax HX8238-A driver ... but has anyone here had any

Looks like a nice driver chip.

What display do you have that uses this chip ?

don
hi, Kevin

Why you not want to use LPC2478 ? Speed of internal LCD controller is
faster than external LCD controller. I evaluated LPC2478 about four
months. It can display QVGA ,don't worry about it. But if you want to
display dynamic VGA , I think this chip still can not accomplish
dynamic VGA well. As you know, LCD take up too much bus bandwidth .

By the way , if your application code is less than 512k , you can use
LPC2478 internal flash . If your application code is larger than
512K, you must execute your code in external SDRAM . You can not
execute your code in external nor flash , its speed is very slowly.
I advice you to use LPC2478 LCD controller . Internal data bus is
better than external LCD controller .

Hope above advice can help you .

Thanks !

Regards
Vincent
Vincent:

I have a dev board for the 2478, and it's a great chip, but at $15/unit
in smaller quantities it's much too expensive for some applications.

Kevin.