From 72dff35234552b3d08eaf69bdcf47d06354259a6 Mon Sep 17 00:00:00 2001 From: mmdolze Date: Thu, 6 Oct 2011 20:29:29 +0000 Subject: [PATCH] Correct settings example for hd44780/ftdi in 4bit mode (by L. Colangiuli) --- docs/lcdproc-user/drivers/hd44780.docbook | 4 ++-- server/drivers/hd44780-ftdi.c | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/lcdproc-user/drivers/hd44780.docbook b/docs/lcdproc-user/drivers/hd44780.docbook index 2fae5a2..c5230df 100644 --- a/docs/lcdproc-user/drivers/hd44780.docbook +++ b/docs/lcdproc-user/drivers/hd44780.docbook @@ -1964,9 +1964,9 @@ channel FTDI FIFO chip: [hd44780] ConnectionType=ftdi ftdi_mode=4 -ftdi_line_RS=0x40 -ftdi_line_RW=0x20 ftdi_line_EN=0x10 +ftdi_line_RS=0x20 +ftdi_line_RW=0x40 ]]> diff --git a/server/drivers/hd44780-ftdi.c b/server/drivers/hd44780-ftdi.c index cb4169b..c413fd6 100644 --- a/server/drivers/hd44780-ftdi.c +++ b/server/drivers/hd44780-ftdi.c @@ -2,16 +2,18 @@ * \c ftdi connection type of \c hd44780 driver for Hitachi HD44780 based LCD displays. * \verbatim - info for 4bit mode (ftdi_mode == 4): + Info for 4bit mode (ftdi_mode == 4): wiring example: FTDI chip: D0 D1 D2 D3 D4 D5 D6 D7 | | | | | | | | HD44780: D4 D5 D6 D7 EN RS RW n/c in LCDd.conf we then need to define - ftdi_line_RS=0x40 - ftdi_line_RW=0x20 ftdi_line_EN=0x10 + ftdi_line_RS=0x20 + ftdi_line_RW=0x40 + + RW of your display can either be connected to D6 or GND. \endverbatim */ @@ -81,6 +83,7 @@ hd_init_ftdi(Driver *drvthis) p->ftdi_line_RW = drvthis->config_get_int(drvthis->name, "ftdi_line_RW", 0, 0x02); p->ftdi_line_EN = drvthis->config_get_int(drvthis->name, "ftdi_line_EN", 0, 0x04); p->ftdi_line_backlight = drvthis->config_get_int(drvthis->name, "ftdi_line_backlight", 0, 0x08); + p->backlight_bit = 0; /* some foolproof check */ if (p->ftdi_mode != 4 && p->ftdi_mode != 8) { @@ -166,7 +169,7 @@ ftdi_HD44780_senddata(PrivateData *p, unsigned char displayID, unsigned char fla exit(-1); } - /* Setup RS and R/W and EN */ + /* Setup RS and R/W and EN on second channel */ ch = p->ftdi_line_EN | p->backlight_bit; if (flags == RS_DATA) { ch |= p->ftdi_line_RS; @@ -178,7 +181,7 @@ ftdi_HD44780_senddata(PrivateData *p, unsigned char displayID, unsigned char fla exit(-1); } - /* Disable E */ + /* Disable EN */ ch = 0x00 | p->backlight_bit; if (flags == RS_DATA) { ch |= p->ftdi_line_RS;