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