update docs
This commit is contained in:
@@ -2,33 +2,135 @@
|
||||
<title>The HD44780 Driver</title>
|
||||
|
||||
<para>
|
||||
There are several ways of wiring up the HD44780 devices. Your choice
|
||||
will probably be governed largely by your ability to wire up each one
|
||||
and/or a desire to use the device with other programs.
|
||||
The HD44780 has become the de-facto standard of alphanumeric character displays.
|
||||
Although the original Hitachi HD44780 is long out of production, its command
|
||||
set has survived in a variety of (fully or nearly) compatible LCD, VFD and
|
||||
even OLED displays sold by a broad range of manufacturers all over the world.
|
||||
To name ony a few: KS0066, KS0070, KS0076, LC7985, NT3881, SED1278, ST7066 ...
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The LCDproc HD44780 driver supports the following connections on a
|
||||
parallel port:
|
||||
The command set of these displays, which sometimes are advertised as being
|
||||
"industry standards compatible", is thus the workhorse of controllers for
|
||||
displays ranging from 8x1 to 20x4 or 40x2 characters.
|
||||
There are even displays with larger dimensions sporting two controllers,
|
||||
one for each half of the display.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The HD44780 driver supports various ways of connecting HD44780 devices
|
||||
to your system.
|
||||
Each of these different ways is called a connection type of the driver.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
On a parallel port, probably the first interface type HD44780 devices were
|
||||
historically connected to, the driver supports the connection types:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>4bit</para></listitem>
|
||||
<listitem><para>8bit (winamp style)</para></listitem>
|
||||
<listitem><para>extended 8bit (LCD + LED bargraph)</para></listitem>
|
||||
<listitem><para>serial LPT</para></listitem>
|
||||
<listitem>
|
||||
<link linkend="hd44780-4bit">4bit</link>:
|
||||
4bit Wiring
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-8bit-lcdtime">8bit</link>:
|
||||
8bit Wiring ("lcdtime")
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-8bit-winamp">winamp</link>:
|
||||
8bit Wiring "winamp" Style
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-seriallpt">serialLpt</link>:
|
||||
Serial LPT Wiring
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
It also supports the following connections:
|
||||
For serial RS-232 ports you can choose among these connection types:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>A PIC-an-LCD or LCD serializer connected to a serial port</para></listitem>
|
||||
<listitem><para>A I<superscript>2</superscript>C port expander connected to an I<superscript>2</superscript>C port</para></listitem>
|
||||
<listitem><para>USB connection via a FTDI FT2232D chip in bitbang mode</para></listitem>
|
||||
<listitem>
|
||||
<link linkend="hd44780-picanlcd">picanlcd</link>:
|
||||
PIC-an-LCD serial device
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-lcdserializer">lcdserializer</link>:
|
||||
LCD serializer
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-los-panel">los-panel</link>:
|
||||
LCD on Serial panel device (<ulink url="http://www.xs4all.nl/~mlf/los/"></ulink>)
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-vdr-lcd">vdr-lcd</link>:
|
||||
VDR LCD serial device
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-vdr-wakeup">vdr-wakeup</link>:
|
||||
VDR-Wakeup module
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
In recent years, with with parallel ports and serial ports being declared legacy
|
||||
and on the demise on modern computers, the USB connection types get
|
||||
more important. Here are the USB connection types the HD44780 driver supports:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<link linkend="hd44780-pertelian">pertelian</link>:
|
||||
Pertelian X2040 LCD display (<ulink url="http://pertelian.com/joomla/index.php?option=com_content&task=view&id=43&Itemid=48"></ulink>)
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-bwctusb">bwctusb</link>:
|
||||
BWCT USB LCD module (<ulink url="http://www.bwct.de/lcd.html"></ulink>)
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-lcd2usb">lcd2usb</link>:
|
||||
Tim Harbaum's LCD2USB (<ulink url="http://www.harbaum.org/till/lcd2usb/"></ulink>)
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-lis2">lis2</link>:
|
||||
LIS2 from VLSystem (<ulink url="http://www.vlsys.co.kr"></ulink>)
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-mplay">mplay</link>:
|
||||
MPlay Blast from VLSystem (<ulink url="http://www.vlsys.co.kr"></ulink>)
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<link linkend="hd44780-ftdi">ftdi</link>:
|
||||
Display connected to a dual channel FTDI 2232D USB chip
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
Last but not least, for special purposes, there are even more connection types:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<link linkend="hd44780-i2c">i2c</link>:
|
||||
LCD driven by PCF8574(A)/PCA9554(A) connected via I<superscript>2</superscript>C
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
||||
<para>
|
||||
The driver also lets you use multiple displays as a single virtual
|
||||
display. For example, a 4, 2 and 1 line display can be used to form a
|
||||
@@ -106,7 +208,7 @@ There are several ways to get 5V:
|
||||
black is GND).
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Get it from the V<subscript>CC</subscript> pin of an USB connector.
|
||||
Get it from the V<subscript>CC</subscript> and GND pins of an USB connector.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Get it from a joystick port (pin 1 and 9 are 5V, 4, 5 and 12 are GND).
|
||||
@@ -467,7 +569,7 @@ The BC327 transistor has the following connections:
|
||||
<title>4bit</title>
|
||||
|
||||
<para>
|
||||
This is originally based on "lcdtext" (by Matthias Prinke).
|
||||
This wiring is originally based on "lcdtext" (by Matthias Prinke).
|
||||
</para>
|
||||
|
||||
<table id="hd44780-4bit.base-mapping">
|
||||
@@ -1999,7 +2101,7 @@ Refer to <link linkend="hd44780-lcdserializer-burning">burning section</link> in
|
||||
|
||||
|
||||
<sect3 id="hd44780-bwctusb">
|
||||
<title>BWCT USB device "bwctusb"</title>
|
||||
<title>BWCT USB LCD module "bwctusb"</title>
|
||||
|
||||
<para>
|
||||
The BWCT USB LCD module is also supported. It is not connected to an LPT port
|
||||
@@ -2307,22 +2409,24 @@ This can be done by specifying <option>--enable-drivers=all</option> or by inclu
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- parallel -->
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-4bit">4bit</link></literal></entry>
|
||||
<entry>HD44780 4bit Wiring (default)</entry>
|
||||
<entry>4bit Wiring to parallel port(default)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-8bit-lcdtime">8bit</link></literal></entry>
|
||||
<entry>HD44780 8bit Wiring ("lcdtime")</entry>
|
||||
<entry>8bit Wiring to parallel port ("lcdtime")</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-8bit-winamp">winamp</link></literal></entry>
|
||||
<entry>HD44780 8bit Wiring "winamp" Style</entry>
|
||||
<entry>8bit Wiring "winamp" Style to parallel port</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-seriallpt">serialLpt</link></literal></entry>
|
||||
<entry>HD44780 Serial LPT Wiring</entry>
|
||||
<entry>Serial LPT Wiring</entry>
|
||||
</row>
|
||||
<!-- serial -->
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-picanlcd">picanlcd</link></literal></entry>
|
||||
<entry>PIC-an-LCD serial device "picanlcd"</entry>
|
||||
@@ -2343,6 +2447,7 @@ This can be done by specifying <option>--enable-drivers=all</option> or by inclu
|
||||
<entry><literal><link linkend="hd44780-vdr-wakeup">vdr-wakeup</link></literal></entry>
|
||||
<entry>VDR-Wakeup module "vdr-wakeup"</entry>
|
||||
</row>
|
||||
<!-- USB -->
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-pertelian">pertelian</link></literal></entry>
|
||||
<entry>Pertelian X2040 LCD display (<ulink url="http://pertelian.com/joomla/index.php?option=com_content&task=view&id=43&Itemid=48"></ulink>)</entry>
|
||||
@@ -2363,14 +2468,15 @@ This can be done by specifying <option>--enable-drivers=all</option> or by inclu
|
||||
<entry><literal><link linkend="hd44780-mplay">mplay</link></literal></entry>
|
||||
<entry>MPlay Blast from VLSystem (<ulink url="http://www.vlsys.co.kr"></ulink>)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-i2c">i2c</link></literal></entry>
|
||||
<entry>LCD driven by PCF8574(A)/PCA9554(A) connected via I<superscript>2</superscript>C</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-ftdi">ftdi</link></literal></entry>
|
||||
<entry>Display connected to a dual channel FTDI 2232D USB chip</entry>
|
||||
</row>
|
||||
<!-- I2C -->
|
||||
<row>
|
||||
<entry><literal><link linkend="hd44780-i2c">i2c</link></literal></entry>
|
||||
<entry>LCD driven by PCF8574(A)/PCA9554(A) connected via I<superscript>2</superscript>C</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
|
||||
@@ -12,167 +12,183 @@ of electronics.
|
||||
<para>
|
||||
The following hints might be helpful:
|
||||
</para>
|
||||
|
||||
<sect2 id="ppt-check-wiring">
|
||||
<title>Check The Wiring</title>
|
||||
|
||||
<para>
|
||||
Wiring errors can easily be made. If you are unexperienced
|
||||
with the soldering iron better have someone solder it for
|
||||
you. Display modules are sensitive to electro static
|
||||
discharges, so touch an earthed surface (computer case,
|
||||
water pipes...) before you handle these.
|
||||
Wiring errors can easily be made.
|
||||
If you are unexperienced with the soldering iron better have someone solder
|
||||
it for you.
|
||||
Display modules are sensitive to electrostatic discharges, so touch an
|
||||
earthed surface (computer case, water pipes...) before you handle these.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-power">
|
||||
<title>Power Source Unregulated / Noisy</title>
|
||||
|
||||
<para>
|
||||
Make sure your power supply delivers steady 5 Volts with-
|
||||
out noise or interruptions. The bare wall plug in trans-
|
||||
former is not suitable, though you can make it stabilized
|
||||
by adding an 7805 and a few capacitors.
|
||||
Some noise induced in the supply lines my be tricky to
|
||||
track, even if you have an oscilloscope.
|
||||
Make sure your power supply delivers steady 5 Volts without noise or
|
||||
interruptions.
|
||||
The bare wall plug-in transformer is often not suitable, though you can
|
||||
make it stabilized by adding an 7805 and a few capacitors.
|
||||
Some noise induced in the supply lines my be tricky to track, even if
|
||||
you have an oscilloscope.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-GND-lift">
|
||||
<title>Ground Lift</title>
|
||||
|
||||
<para>
|
||||
The power supply wires and especially the GND wires should
|
||||
be a little thicker than the other wires. If GND is not
|
||||
thick enough (or not existent, see 1) the resistance of the
|
||||
The power supply wires and especially the GND wires should be a little thicker
|
||||
than the other wires.
|
||||
If GND is not thick enough (or not existent, see 1) the resistance of the
|
||||
wire may cause differing GND potentials in the circuit.
|
||||
This may lead to strange display behaviour. It may also be
|
||||
wise to solder a 100nF capacitor directly to the GND and
|
||||
V<subscript>CC</subscript> pins of the display.
|
||||
This may lead to strange display behaviour. It may also be wise to solder
|
||||
a 100nF capacitor directly to the GND and V<subscript>CC</subscript> pins
|
||||
of the display.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-latchup">
|
||||
<title>Latchup</title>
|
||||
|
||||
<para>
|
||||
Never let the supply voltage get much below the io signal
|
||||
voltage. It may lead to a latchup condition which will
|
||||
destroy the controller chip on the display.
|
||||
Never let the supply voltage get much below the io signal voltage.
|
||||
It may lead to a latchup condition which will destroy the controller
|
||||
chip on the display.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-contrast">
|
||||
<title>Contrast</title>
|
||||
|
||||
<para>
|
||||
If you don't see anything on your display it may be that
|
||||
your contrast voltage is set wrong. Turn your contrast
|
||||
potentiometer all the way to the end connected to GND.
|
||||
If you don't see anything on your display it may be that your contrast voltage
|
||||
is set wrong. Turn your contrast potentiometer all the way to the end connected
|
||||
to GND.
|
||||
Contrast is highest then.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<title>Beware</title>
|
||||
<para>
|
||||
The module you got so ultra cheap may be an
|
||||
enhanced temperature model which needs a negative
|
||||
contrast voltage for sufficient contrast - see chapter
|
||||
The module you got so ultra cheap may be an enhanced temperature model which
|
||||
needs a negative contrast voltage for sufficient contrast - see chapter
|
||||
99 on how to make negative voltage.
|
||||
</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-voltage">
|
||||
<title>Parallel Port Voltage</title>
|
||||
|
||||
<para>
|
||||
Many modern mainboards and especially notebooks will not
|
||||
nearly output 5V for a logic H as the older parallel ports
|
||||
did, because the operating voltage of computers is lower than
|
||||
5V these days. I have measured voltages between 2.5V and 4V
|
||||
for logic H, which is barely within specification of the
|
||||
HD44780. If you account RCL of your cable, this may not be
|
||||
enough and can cause unreliable operation.
|
||||
Many modern mainboards and especially notebooks will not nearly output 5V for
|
||||
a logic H as the older parallel ports did, because the operating voltage of
|
||||
computers is lower than 5V these days.
|
||||
I have measured voltages between 2.5V and 4V for logic H, which is barely
|
||||
within specification of the HD44780.
|
||||
If you account RCL of your cable, this may not be enough and can cause
|
||||
unreliable operation.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-signal-rise-timing">
|
||||
<title>Enable Signal Rise Time</title>
|
||||
|
||||
<para>
|
||||
If you ever read the HD44780 datasheet you will notice that
|
||||
somewhere in the 'signal timing' table is written: 'Enable
|
||||
Signal Rise Time max. 20nS'. That means the Voltage on the
|
||||
HD44780 pin called 'Enable' has to rise from 0 Volts to 5
|
||||
Volts within 20 Nanoseconds and the other way round. They
|
||||
should better print that in big fat red letters, because
|
||||
most HD44780s are really picky about the enable signal rise
|
||||
time.
|
||||
If you ever read the HD44780 datasheet you will notice that somewhere in the
|
||||
'signal timing' table is written: 'Enable Signal Rise Time max. 20nS'.
|
||||
That means the Voltage on the HD44780 pin called 'Enable' has to rise
|
||||
from 0 Volts to 5 Volts within 20 Nanoseconds and the other way round.
|
||||
They should better print that in big fat red letters, because most HD44780s
|
||||
are really picky about the enable signal rise time.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
That is a Problem: If you count together the bad driving
|
||||
characteristics of the parallel port combined with the
|
||||
capacitance of flat ribbon cable you may easily get an
|
||||
order of magnitude slower rise time.
|
||||
Therefore you should only use really short cable ( shorter
|
||||
than 50cm) for connecting the display to the parallel port.
|
||||
It may also be useful to use pull-up resistors on the display
|
||||
module or a schmitt-trigger.
|
||||
That is a Problem: If you count together the bad driving characteristics
|
||||
of the parallel port combined with the capacitance of flat ribbon cable
|
||||
you may easily get an order of magnitude slower rise time.
|
||||
Therefore you should only use really short cable (shorter than 50cm)
|
||||
for connecting the display to the parallel port.
|
||||
It may also be useful to use pull-up resistors on the display module
|
||||
or a schmitt-trigger.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
The rise time of a digital output can (usually) not be
|
||||
altered by Software.
|
||||
The rise time of a digital output can (usually) not be altered by Software.
|
||||
</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-emi">
|
||||
<title>EMI</title>
|
||||
|
||||
<para>
|
||||
The cable from the parallel port to the display may
|
||||
be sensible to electromagnetic interference and may emit
|
||||
electromagnetic radiation. If you place your cellphone near
|
||||
the cable, you may get unexpected display readings, on
|
||||
the other hand your house neighbour may not be able to listen
|
||||
to his/her favourite radio station any more - so better use
|
||||
shielded cable and put the display in a metallic case, perhaps
|
||||
a computer case.
|
||||
The cable from the parallel port to the display may be sensible to
|
||||
electromagnetic interference and may emit electromagnetic radiation.
|
||||
If you place your cellphone near the cable, you may get unexpected display
|
||||
readings, on the other hand your house neighbour may not be able to listen
|
||||
to his/her favourite radio station any more - so better use shielded cable
|
||||
and put the display in a metallic case, perhaps a computer case.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-black-lines">
|
||||
<title>One or Two Black Lines</title>
|
||||
|
||||
<para>
|
||||
If you see one or two black lines on the display it means
|
||||
nothing more than that the display is powered and contrast
|
||||
voltage is present. If one or two black lines appear the
|
||||
controller has not been reset properly by the on chip power
|
||||
on reset generator. No need to worry - it will be reset by
|
||||
the <application>LCDd</application> software. But if the
|
||||
black line will not disappear
|
||||
although the wiring is working, the controller on the display
|
||||
may be defective.
|
||||
If you see one or two black lines on the display it means nothing more than
|
||||
that the display is powered and contrast voltage is present.
|
||||
If one or two black lines appear the controller has not been reset properly
|
||||
by the on chip power on reset generator. No need to worry - it will be reset by
|
||||
the <application>LCDd</application> software.
|
||||
But if the black line will not disappear although the wiring is working,
|
||||
the controller on the display may be defective.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-too-fast">
|
||||
<title>Software Too Fast</title>
|
||||
|
||||
<para>
|
||||
If you have a super GHz computer it may happen that the signal
|
||||
timing generated by <application>LCDd</application> is too fast.
|
||||
Adjust DELAYMULT in the
|
||||
source file to a bigger value. Parallel port wirings usually
|
||||
don't permit to read back the busy flag of the controller chip,
|
||||
so timing must be adjust so that the controller never is busy.
|
||||
If you have a super GHz computer it may happen that the signal timing generated
|
||||
by <application>LCDd</application> is too fast.
|
||||
Adjust DELAYMULT in the source file to a bigger value.
|
||||
Parallel port wirings usually don't permit to read back the busy flag of the
|
||||
controller chip, so timing must be adjust so that the controller never is busy.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-backlight">
|
||||
<title>LED Backlight</title>
|
||||
|
||||
<para>
|
||||
Check whether you need a resistor for your LED Backlight and
|
||||
which value it should have. If you forget the required resistor
|
||||
the backlighting LEDs might become hot and draw excessive
|
||||
current.
|
||||
Check whether you need a resistor for your LED Backlight and which value
|
||||
it should have.
|
||||
If you forget the required resistor the backlighting LEDs might become hot
|
||||
and draw excessive current.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-hd44780-compatible">
|
||||
<title>HD44780 Compatible</title>
|
||||
|
||||
<para>
|
||||
The original HD44780 controller that we advertise to support
|
||||
has become the industry standard for alphanumeric character
|
||||
displays. The original HD44780 is out of production. It has
|
||||
many successors from many manufactures, which sometimes won't
|
||||
tell you that their chips are 'compatible'.
|
||||
The original HD44780 controller that we advertise to support has become the
|
||||
industry standard for alphanumeric character displays.
|
||||
The original HD44780 is out of production. It has many successors from many
|
||||
manufactures, which sometimes won't tell you that their chips are 'compatible'.
|
||||
</para>
|
||||
<para>
|
||||
To name a few: KS 0066, KS 0070, KS 0076, LC 7985, NT 3881,
|
||||
SED 1278, ST 7066 ...
|
||||
To name a few: KS0066, KS0070, KS0076, LC7985, NT3881, SED1278, ST7066 ...
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="ppt-misc">
|
||||
<title>Miscellania</title>
|
||||
<para>
|
||||
|
||||
Reference in New Issue
Block a user