>> Home · OpenWRT · Interfacing an LCD

Interfacing an LCD

Here I describe how to interface a Character LCD based on HD47780 or compatible controllers.
Ext IF # LCD #
D0 1 D0 7
D1 2 D1 8
D2 3 D2 9
D3 4 D3 10
D4 5 D4 11
D5 6 D5 12
D6 7 D6 13
D7 8 D7 14
A0 9 RS 4
A1 10 E 6
A2 11 RW 5
A3 12 --
+5V 13 VDD 2
/CS 14 --
/RD 15 --
/WR 16 --
/INT 17 --
GND 18 VSS 1
Vo (contrast) 3


Vo ... connect a 10k poti between VDD and GND and the wiper to Vo.


This is only a test connection and it's not very usable by now. You can get some random stuff on your display when other data is transfered on the bus.


For a better bus interface I have to look on the function of the /CS line in more detail so that the LCD doesn't get disturbed by misc. data.
To get some data onto the display I modified diag.c the kernel module that is used by OpenWRT to set the Router's LEDs and to fetch some keys. diag.c can be found in:
/location_where_you_unziped_openwrt/target/linux/packages/diag/src/. I added a own /proc entry called extif. And so I was able to display data that way:
echo "iHello OpenWRT :-)" > /proc/diag/extif


The "i" is only there to tell the module to initialize the display first.

My Module
Next step will be that i write a module on my own that handels everything :)
The Module

07.12.2006. 03:48

Comments

Martin 29.12.2006. 19:52

Hi very nice ... now search a working LCD :-) ... my other problem ... I'm using original ASUS software ... Is there an unused bit at the port? Maybe it is possible to use a backlight lcd and switch light on / off by time daemon or manual with this bit? I'll test this version after new year ... Thanks and have a good new year Martin

Write a comment

* = required field

:

:

:


1 + 8 =