document i2c sub-driver of the HD44780 driver - provided by Matthias Goebl

This commit is contained in:
marschap
2006-02-17 18:52:06 +00:00
parent cf0e82ddf7
commit 4142f8d8dd
+111 -1
View File
@@ -17,8 +17,12 @@ parallel port:
<listitem><para>serial LPT</para></listitem>
</itemizedlist>
<para>
And supports a PIC-an-LCD or LCD serializer connected to a serial port.
It also supports the following connections:
</para>
<itemizedlist>
<listitem><para>A PIC-an-LCD or LCD serializer connected to a serial port</para></listitem>
<listitem><para>A I2C port expander connected to an I2C port</para></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
@@ -1223,6 +1227,112 @@ specifying which one (of multiple BWCT LCD devices) is wanted using the
</sect3>
<sect3 id="hd44780-i2c">
<title>I2C with Port-Expander</title>
<para>
If you have an I2C port available that is supported by your kernel (through /dev/i2c*),
you can add a I2C port expander there (PCF8574P in this example).
</para>
<figure>
<title>HD44780: PCF8574P port expander on I2C bus</title>
<screen>
<![CDATA[
IC1
-----------
| PCF8574P |
| I2C-Port- | HD44780
| Expander | display
| |4
| P0|----------------------------o 11 D4
| |5
I2C-Bus 14| P1|----------------------------o 12 D5
SCL o-------------------------|SCL |6
| P2|----------------------------o 13 D6
15| |7
SDA o-------------------------|SDA P3|----------------------------o 14 D7
| |9
|1 P4|----------------------------o 4 RS
Set I2C-Address +-----|A0 |10
here: | |2 P5|----------------------------o 5 RW
GND: Bit:=0 +-----|A1 |11
VCC: Bit:=1 | |3 P6|----------------------------o 6 EN
+-----|A1 | ___
Here: 0x00 | | | +---|___|--o 15 backlight
=== | | |c 10R
| |12 ___ b|/
|13 P7|-----|___|-----|
-|INT | 1k |\
| | bc557 |e
----------- |
|
+5V o-----------+------------------+---------------------+--+----------o 2 VCC
| | |
| | |
|10uF O 16 .-.
--- IC1 | |<-----------o 3 Vlcd
--- O 8 | |10k
| | '-'
| | |
GND o-----------+-------+----------+---------------------+-------+-----o 1 GND
| |
=== GND +-----o 16 GND Backlight
]]>
</screen>
</figure>
<sect4 id="hd44780-i2c-config">
<title>Configuration</title>
<figure>
<title>HD44780: Configuration for I2C with port expander</title>
<screen>
<![CDATA[
[HD44780]
ConnectionType=i2c
Device=/dev/i2c-0
Port=0x20
Backlight=yes
Size=40x2
DelayBus=false
DelayMult=1
Keypad=no
]]>
</screen>
</figure>
<para>
Device is the device file for your I2C bus (here /dev/i2c-0).
You have to load the kernel standard module i2c-dev and
the bus driver, but NO i2c chip modules (e.g. pcf8574)!
</para>
<para>
Port contains the i2c address of the i2c port expander
(here 0x20, the PCF8574 from the example above, with all address bits set to 0).
Bit 8 of the address (normally 0 in I2C addresses) given in port is special:
It tells the driver to treat the device as PCA9554 or similar,
a device that needs a 2-byte command, and it will be stripped
off the address.
</para>
<figure>
<title>HD44780: Examples of I2C port expander adresses</title>
<screen>
<![CDATA[
port=0x20..0x27 PCF8574 with A[012]=0..7
port=0x38..0x3f PCF8574A with A[012]=0..7
port=0xa0..0xa7 PCA9554 with A[012]=0..7
port=0xa0..0xa7 PCA9554A with A[012]=0..7
]]>
</screen>
</figure>
</sect4>
</sect3>
</sect2>
<sect2 id="hd44780-compiling">