Ticket #123 (assigned defect)
Additional Commands Required by Certain HD47780-compatible Controller
| Reported by: | assen@… | Owned by: | michael |
|---|---|---|---|
| Priority: | normal | Component: | lcd4linux |
| Version: | 0.1 | Severity: | normal |
| Keywords: | Cc: |
Description
I was playing recently with a DYI LCD panel based on Ampire's AC-204BYILY-H 20x4 LC display, which claims to be HD47780-compatible (full datasheet here: http://home.comet.bg/datasheets/LCD/AC-204B.pdf)
lcd4linux is latest RC2 version. Initially I noticed that no characters appeared on the display. Playing with timings did not help. After some trial and error I found that lcd4linux needs to execute one additional command in order to push the data to the display. In file drv_HD44780.c around line 445 after:
if (UseBusy) udelay(delay);
I added:
drv_generic_parport_control(SIGNAL_RS | SIGNAL_RW | SIGNAL_ENABLE | SIGNAL_ENABLE2 | SIGNAL_ENABLE3 | SIGNAL_ENABLE4 | SIGNAL_BACKLIGHT | SIGNAL_GPO, 0);
I also had to use "UseBusy? 1", otherwise only the first letter appeared on the screen. My LCD panel uses Winamp-style wiring and I have proper "wire" section in lcd4linux.conf. I'm attaching the wiring for reference.
Assen Totin
