update docs

This commit is contained in:
marschap
2007-11-11 18:41:53 +00:00
parent 7ba838c65e
commit 6a314f562e
2 changed files with 231 additions and 109 deletions
+130 -24
View File
@@ -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&amp;task=view&amp;id=43&amp;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&amp;task=view&amp;id=43&amp;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>
+101 -85
View File
@@ -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>