Add 'raspberrypi' connection type to HD44780 driver (by P. Corner).

This commit is contained in:
mmdolze
2013-01-27 11:44:42 +00:00
parent 48b1c1ee40
commit 96502bcfdf
8 changed files with 715 additions and 21 deletions
+198 -18
View File
@@ -155,6 +155,12 @@ Last but not least, for special purposes, there are even more connection types:
<link linkend="hd44780-ethlcd">ethlcd</link>:
Display connected via TCP to PoE powered ethlcd device (<ulink url="http://manio.skyboo.net/ethlcd/"></ulink>)
</para></listitem>
<listitem><para>
<link linkend="hd44780-raspberrypi">raspberrypi</link>:
LCD connected to the GPIO header of a Raspberry Pi
</para></listitem>
</itemizedlist>
@@ -2953,6 +2959,161 @@ software adjustable contrast and brightness (backlight).
</sect3>
<sect3 id="hd44780-raspberrypi">
<title>Raspberry Pi</title>
<para>This connection type supports a single LCD connected to the GPIO header P1
on a Raspberry Pi.</para>
<para>It supports a switchable backlight connected to pin P1-11 by default. Use
the switch circuit as described in <xref linkend="hd44780-ftdi-backlight"/>.</para>
<warning>
<para>The signal level on the GPIO pins is 3.3 V and they are said not to
be 5 V tolerant. Therefore the R/W pin of the display <emphasis>must
</emphasis> be wired to GND to prevent 5V logic appearing on the GPIO
pins. For the same reason the backlight cicuit from <xref linkend=
"hd44780-connections-backlight.circuit"/> <emphasis>must not</emphasis> be
used.</para>
<para>Powering a LCD that uses 5 V from pin P1-02 will work. Powering a
LCD from 3.3 V (pin P1-01) will only work if it is designed for 3.3 V
operation.</para>
</warning>
<table id="hd44780-raspberrypi.pin-mapping">
<title>HD44780: Default pin mapping for Raspberry Pi</title>
<tgroup cols="5" align="left">
<colspec colname="rp1"/>
<colspec colname="rpi2" align="right"/>
<colspec colname="base" align="center"/>
<colspec colname="lcd1"/>
<colspec colname="lcd2"/>
<thead>
<row>
<entry namest="rpi1" nameend="rpi2" align="center">Connector</entry>
<entry morerows="1">&lt;-&gt;</entry>
<entry namest="lcd1" nameend="lcd2" align="center">LCD</entry>
</row>
<row>
<entry>Pin Name</entry>
<entry>Pin Number</entry>
<entry>Name</entry>
<entry>Pin</entry>
</row>
</thead>
<tbody>
<row>
<entry>GPIO18</entry>
<entry>P1-12</entry>
<entry></entry>
<entry>D7</entry>
<entry>14</entry>
</row>
<row>
<entry>GPIO23</entry>
<entry>P1-16</entry>
<entry></entry>
<entry>D6</entry>
<entry>13</entry>
</row>
<row>
<entry>GPIO24</entry>
<entry>P1-18</entry>
<entry></entry>
<entry>D5</entry>
<entry>12</entry>
</row>
<row>
<entry>GPIO25</entry>
<entry>P1-22</entry>
<entry></entry>
<entry>D4</entry>
<entry>11</entry>
</row>
<row>
<entry>GPIO08</entry>
<entry>P1-24</entry>
<entry></entry>
<entry>EN</entry>
<entry>6</entry>
</row>
<row>
<entry>GPIO07</entry>
<entry>P1-26</entry>
<entry></entry>
<entry>RS</entry>
<entry>4</entry>
</row>
<row>
<entry>GND</entry>
<entry>P1-06</entry>
<entry></entry>
<entry>RW</entry>
<entry>5</entry>
</row>
<row>
<entry>GPIO17</entry>
<entry>P1-11</entry>
<entry></entry>
<entry>BL</entry>
<entry>Backlight (optional)</entry>
</row>
</tbody>
</tgroup>
</table>
<para>GPIO07 and GPIO08 used for RS and EN signal are also used by the SPI
bus. If you loaded the SPI driver you will need to assign them to a different
GPIO, e.g. GPIO04 and GPIO22.</para>
<sect4 id="hd44780-raspberrypi-config">
<title>Special Raspberry Pi configuration options</title>
<para>This connection driver can be configured to use other pins than the
one described in <link linkend="hd44780-raspberrypi.pin-mapping">the table
above</link>. Using the <literal> pin_<replaceable>&lt;name&gt;
</replaceable></literal> configuration option, any LCD pin can be assigned
to any GPIO pin.</para>
<important>
<para>The values for the <literal>pin_<replaceable>&lt;name&gt;
</replaceable></literal> configuration option are the number part from the
GPIO signal name, not the pin number from the header connector! To find
out which signal is routed to which connector pin refer to the <ulink url=
"http://elinux.org/RPi_Low-level_peripherals">RPi Low-level peripherals</ulink>
description.</para>
</important>
<para>The connection driver contains a check for possible signal names. You
will receive an error message if you try to assign a pin to a signal that is
not available on connector P1 or P5.</para>
<example id="hd44780-raspberrypi-config.example">
<title>HD44780: Alternate configuration for Raspberry Pi GPIO pins</title>
<screen>
<![CDATA[
[hd44780]
ConnectionType=raspberrypi
Backlight=yes
Size=16x2
pin_D4=25
pin_D5=24
pin_D6=23
pin_D7=18
pin_EN=8
pin_RS=7
pin_BL=17
]]>
</screen>
</example>
</sect4>
</sect3>
</sect2>
@@ -3008,6 +3169,7 @@ This can be done by specifying <option>--enable-drivers=all</option> or by inclu
<term>
<property>ConnectionType</property> =
{
<!-- Keep this list sorted according to the table in hd44780-drivers.h -->
<emphasis><parameter><literal>4bit</literal></parameter></emphasis> |
<parameter><literal>8bit</literal></parameter> |
<parameter><literal>winamp</literal></parameter> |
@@ -3018,14 +3180,18 @@ This can be done by specifying <option>--enable-drivers=all</option> or by inclu
<parameter><literal>vdr-lcd</literal></parameter> |
<parameter><literal>vdr-wakeup</literal></parameter> |
<parameter><literal>pertelian</literal></parameter> |
<parameter><literal>bwctusb</literal></parameter> |
<parameter><literal>lcd2usb</literal></parameter> |
<parameter><literal>usb4all</literal></parameter> |
<parameter><literal>lis2</literal></parameter> |
<parameter><literal>mplay</literal></parameter> |
<parameter><literal>i2c</literal></parameter> |
<parameter><literal>usblcd</literal></parameter> |
<parameter><literal>bwctusb</literal></parameter> |
<parameter><literal>lcd2usb</literal></parameter> |
<parameter><literal>usbtiny</literal></parameter> |
<parameter><literal>uss720</literal></parameter> |
<parameter><literal>usb4all</literal></parameter> |
<parameter><literal>ftdi</literal></parameter> |
<parameter><literal>usblcd</literal></parameter>
<parameter><literal>i2c</literal></parameter> |
<parameter><literal>ethlcd</literal></parameter> |
<parameter><literal>raspberrypi</literal></parameter>
}
</term>
<listitem>
@@ -3079,11 +3245,23 @@ 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>
</row>
<!-- USB -->
<row>
<entry><literal><link linkend="hd44780-lis2">lis2</link></literal></entry>
<entry>LIS2 from VLSystem (<ulink url="http://www.vlsys.co.kr"></ulink>)</entry>
</row>
<row>
<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-usblcd">usblcd</link></literal></entry>
<entry>USBLCD adapter from Adams IT Services (<ulink url="http://www.usblcd.de/"></ulink>)</entry>
</row>
<row>
<entry><literal><link linkend="hd44780-bwctusb">bwctusb</link></literal></entry>
<entry>BWCT USB device "bwctusb" (<ulink url="http://www.bwct.de/lcd.html"></ulink>)</entry>
@@ -3092,35 +3270,37 @@ This can be done by specifying <option>--enable-drivers=all</option> or by inclu
<entry><literal><link linkend="hd44780-lcd2usb">lcd2usb</link></literal></entry>
<entry>Till Harbaum's LCD2USB (<ulink url="http://www.harbaum.org/till/lcd2usb/"></ulink>)</entry>
</row>
<row>
<entry><literal><link linkend="hd44780-usb4all">USB-4-all</link></literal></entry>
<entry>The USB-4-all controller board from Sprut (<ulink url="http://www.sprut.de/electronic/pic/projekte/usb4all/usb4all.htm"></ulink>)</entry>
</row>
<row>
<entry><literal><link linkend="hd44780-usbtiny">usbtiny</link></literal></entry>
<entry>Dick Streefland's USBtiny (<ulink url="http://www.xs4all.nl/~dicks/avr/usbtiny/"></ulink>)</entry>
</row>
<row>
<entry><literal><link linkend="hd44780-lis2">lis2</link></literal></entry>
<entry>LIS2 from VLSystem (<ulink url="http://www.vlsys.co.kr"></ulink>)</entry>
<entry><literal><link linkend="hd44780-uss720">uss720</link></literal></entry>
<entry>Belkin USS-720 USB-to-IEEE 1284 Bridge</entry>
</row>
<row>
<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><literal><link linkend="hd44780-usb4all">USB-4-all</link></literal></entry>
<entry>The USB-4-all controller board from Sprut (<ulink url="http://www.sprut.de/electronic/pic/projekte/usb4all/usb4all.htm"></ulink>)</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>
<row>
<entry><literal><link linkend="hd44780-usblcd">usblcd</link></literal></entry>
<entry>USBLCD adapter from Adams IT Services (<ulink url="http://www.usblcd.de/"></ulink>)</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>
<!-- Ethernet -->
<row>
<entry><literal><link linkend="hd44780-ethlcd">ethlcd</link></literal></entry>
<entry>ethlcd device (<ulink url="http://manio.skyboo.net/ethlcd/"></ulink>)</entry>
</row>
<!-- Other -->
<row>
<entry><literal><link linkend="hd44780-raspberrypi">raspberrypi</link></literal></entry>
<entry>LCD connected to the GPIO header of a Raspberry Pi</entry>
</row>
</tbody>
</tgroup>
</informaltable>