# The sed1520 Driver

This section talks about using LCDproc with LCD displays that use the SED1520 chipset.

Currently the driver supports 122x32 pixel graphic displays based on the SED1520 controller connected to the parallel port.

Those SED1520 displays are the most troublesome I have ever used. You should probably avoid using them and get a 20x4 text display instead.

## Connections

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!

Here here some of the options I encountered:

- 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).

- Reset circuit: Some display modules have an R/C-combination on-board selecting an MCU interface if the pin is not connected.

- 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.

- 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!

- No pin numbers are given in the tables below. You have to figure out those yourself from the datasheet for your display!

That said here some wirings:

### 80-style connection style

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 (SED1520 LPT Port).

### SED1520 80-style wiring schematic

Parallel port | <-> | LCD
name | pin | name | pin
D0-D7 | 2-9 |  | DB0-DB7 | *
nSTRB | 1 |  | /WR | *
nLF | 14 |  | /CS1 | *
INIT | 16 |  | /CS2 | *
nSEL | 17 |  | A0 | *
|  | VDD | /RD | *
|  | GND | RESET/IF | *
|  | 2 kHz clock | CL | *

### 68-style connection style

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.

### SED1520 68-style wiring schematic

Parallel port | <-> | LCD
name | pin | name | pin
D0-D7 | 2-9 |  | DB0-DB7 | *
nSTRB | 1 |  | R/-W | *
nLF | 14 |  | E1 | *
INIT | 16 |  | E2 | *
nSEL | 17 |  | A0 | *
|  | VDD | RESET/IF | *

## Configuration in LCDd.conf

### [sed1520]

`Port` = ``PORT``

- Specify the address of the parallel port the LCD is connected to. Common values for `PORT` are `0x278`, `0x378` and `0x3BC`. The default value is `0x378`.

`InterfaceType` = ``INTERFACE``

- 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).

  Use value `68` 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 `80` (the default), "80 family MPU" style is selected and the /WR line is cycled and /CS1 and /CS2 lines are required.

`DelayMult` = ``DELAY``

- 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 `1` already slows down communication a lot, larger value should likely be avoided.

`haveInverter` = ¶meters.yesdefno;

- The original wiring by Robin used an inverter to drive the control lines. If you do not use an inverter set this to `no`.