Files
lcdproc/docs/lcdproc-user/drivers/sed1520.docbook
T

290 lines
8.3 KiB
Plaintext

<sect1 id="sed1520-howto">
<title>The sed1520 Driver</title>
<para>
This section talks about using LCDproc with LCD displays that use the
SED1520 chipset.
</para>
<para>Currently the driver supports 122x32 pixel graphic displays based on
the SED1520 controller connected to the parallel port.</para>
<note>
<para>Those SED1520 displays are the most troublesome I have ever used. You
should probably avoid using them and get a 20x4 text display instead.</para>
</note>
<sect2 id="sed1520-connections">
<title>Connections</title>
<!-- Insert schematic here -->
<warning>
<para>Displays using SED1520 come in a wide variety of configurations. It is
possible to cause harm to your display (e.g. connecting negative voltage
incorrectly. Be sure to check your datasheet! Do not try to use a display
without having a datasheet to check against!</para>
<para>Here here some of the options I encountered:</para>
<itemizedlist>
<listitem><para>Negative voltage: The chip requires negative voltage for
driving the display. Some display modules have a negative voltage converter
on-board. On those that don't you have to supply about -7 V (will not
show how to do this).</para></listitem>
<listitem><para>Reset circuit: Some display modules have an R/C-combination
on-board selecting an MCU interface if the pin is not connected.</para></listitem>
<listitem><para>Frequency generator: The SED1520 is manufactured in several
versions. Some contain an on-chip frequency generator, others require an external
clock of 2 kHz (won't show this here). Note that display modules with an
on-chip generator do not have a /CS (chip select) line.</para></listitem>
<listitem><para>Incorrect datasheets: I have seen display datasheets
incorrectly naming pins, missing some of the commands, missing pages from the
chip description and other odds. Be warned!</para></listitem>
<listitem><para>No pin numbers are given in the tables below. You have to
figure out those yourself from the datasheet for your display!</para></listitem>
</itemizedlist>
</warning>
<para>That said here some wirings:</para>
<sect3 id="sed1520-80">
<title>80-style connection style</title>
<para>This mode of operation is selected if the RESET line is wired to
ground. The wiring used by this driver in 80-style mode assumes you have
/CS1 and /CS2 lines available (thus you must have an external clock
generator) and toggles the /RW line. This is the original wiring by Robin Adams
(<ulink url="http://www.usblcd.de/lcdproc/sed1520.php4">SED1520 LPT Port</ulink>).
</para>
<table id="sed1520-connections-80-mapping">
<title>SED1520 80-style wiring schematic</title>
<tgroup cols="5" align="left">
<colspec colname="lpt1"/>
<colspec colname="lpt2" align="right"/>
<colspec colname="base" align="center"/>
<colspec colname="lcd1"/>
<colspec colname="lcd2"/>
<thead>
<row>
<entry namest="lpt1" nameend="lpt2" align="center">Parallel port</entry>
<entry morerows="1">&lt;-&gt;</entry>
<entry namest="lcd1" nameend="lcd2" align="center">LCD</entry>
</row>
<row>
<entry>name</entry>
<entry>pin</entry>
<entry>name</entry>
<entry>pin</entry>
</row>
</thead>
<tbody>
<row>
<entry>D0-D7</entry>
<entry>2-9</entry>
<entry></entry>
<entry>DB0-DB7</entry>
<entry>*</entry>
</row>
<row>
<entry>nSTRB</entry>
<entry>1</entry>
<entry></entry>
<entry>/WR</entry>
<entry>*</entry>
</row>
<row>
<entry>nLF</entry>
<entry>14</entry>
<entry></entry>
<entry>/CS1</entry>
<entry>*</entry>
</row>
<row>
<entry>INIT</entry>
<entry>16</entry>
<entry></entry>
<entry>/CS2</entry>
<entry>*</entry>
</row>
<row>
<entry>nSEL</entry>
<entry>17</entry>
<entry></entry>
<entry>A0</entry>
<entry>*</entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>VDD</entry>
<entry>/RD</entry>
<entry>*</entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>GND</entry>
<entry>RESET/IF</entry>
<entry>*</entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>2 kHz clock</entry>
<entry>CL</entry>
<entry>*</entry>
</row>
</tbody>
</tgroup>
</table>
</sect3>
<sect3 id="sed1520-68">
<title>68-style connection style</title>
<para>This mode of operation is selected if the RESET line is wired to VDD.
For this wiring the display is required to have an on-board frequency generator
(something you really want to have) and the display module has an E1 and E2
line. Writing is controlled by toggling the E1 and E2 line while /RW is low.
</para>
<table id="sed1520-connections-68-mapping">
<title>SED1520 68-style wiring schematic</title>
<tgroup cols="5" align="left">
<colspec colname="lpt1"/>
<colspec colname="lpt2" align="right"/>
<colspec colname="base" align="center"/>
<colspec colname="lcd1"/>
<colspec colname="lcd2"/>
<thead>
<row>
<entry namest="lpt1" nameend="lpt2" align="center">Parallel port</entry>
<entry morerows="1">&lt;-&gt;</entry>
<entry namest="lcd1" nameend="lcd2" align="center">LCD</entry>
</row>
<row>
<entry>name</entry>
<entry>pin</entry>
<entry>name</entry>
<entry>pin</entry>
</row>
</thead>
<tbody>
<row>
<entry>D0-D7</entry>
<entry>2-9</entry>
<entry></entry>
<entry>DB0-DB7</entry>
<entry>*</entry>
</row>
<row>
<entry>nSTRB</entry>
<entry>1</entry>
<entry></entry>
<entry>R/-W</entry>
<entry>*</entry>
</row>
<row>
<entry>nLF</entry>
<entry>14</entry>
<entry></entry>
<entry>E1</entry>
<entry>*</entry>
</row>
<row>
<entry>INIT</entry>
<entry>16</entry>
<entry></entry>
<entry>E2</entry>
<entry>*</entry>
</row>
<row>
<entry>nSEL</entry>
<entry>17</entry>
<entry></entry>
<entry>A0</entry>
<entry>*</entry>
</row>
<row>
<entry></entry>
<entry></entry>
<entry>VDD</entry>
<entry>RESET/IF</entry>
<entry>*</entry>
</row>
</tbody>
</tgroup>
</table>
</sect3>
</sect2>
<!-- ## Seiko Epson 1520 driver ## -->
<sect2 id="sed1520-config">
<title>Configuration in LCDd.conf</title>
<sect3 id="sed1520-config-section">
<title>[sed1520]</title>
<variablelist>
<varlistentry>
<term>
<property>Port</property> =
<parameter><replaceable>PORT</replaceable></parameter>
</term>
<listitem><para>
Specify the address of the parallel port the LCD is connected to.
Common values for <replaceable>PORT</replaceable> are <literal>0x278</literal>,
<literal>0x378</literal> and <literal>0x3BC</literal>.
The default value is <literal>0x378</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term>
<property>InterfaceType</property> =
<parameter><replaceable>INTERFACE</replaceable></parameter>
</term>
<listitem><para>
The SED1520 chip can be driven with one of two interface types selected by
the level of the RESET line: 68-style MCU interface (high level) or
80-style MCU interface (low level).
</para><para>
Use value <literal>68</literal> if your display is connected using
&quot;68 family MPU&quot; style. In this mode E1 and E2 lines are cycled to
write the data. If you use <literal>80</literal> (the default),
&quot;80 family MPU&quot; style is selected and the /WR line is cycled and
/CS1 and /CS2 lines are required.
</para></listitem>
</varlistentry>
<varlistentry>
<term>
<property>DelayMult</property> =
<parameter><replaceable>DELAY</replaceable></parameter>
</term>
<listitem><para>
This value adds an additional delay to each write, in microseconds. For
the 80-style connection type actual two delays are added each. The
default value of <literal>1</literal> already slows down communication a
lot, larger value should likely be avoided.
</para></listitem>
</varlistentry>
<varlistentry>
<term>
<property>haveInverter</property> = &parameters.yesdefno;
</term>
<listitem><para>
The original wiring by Robin used an inverter to drive the control lines.
If you do not use an inverter set this to <literal>no</literal>.
</para></listitem>
</varlistentry>
</variablelist>
</sect3>
</sect2>
</sect1>