290 lines
8.3 KiB
Plaintext
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"><-></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"><-></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
|
|
"68 family MPU" style. In this mode E1 and E2 lines are cycled to
|
|
write the data. If you use <literal>80</literal> (the default),
|
|
"80 family MPU" 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> = ¶meters.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>
|