Segger Logo Embedded Software Solutions
Software productsHardware productsDownloadsPricesCustomersOur PartnersSitemapForumAbout us
emWin: List of supported LCD controllers
| Samples | Simulation | Font Converter | Bitmap Converter | Memory devices | Window Manager | Widgets | Dialogs | Multiple Layer/Displays | VNC Support | Touch Screen | Antialiasing | Drivers | Starter Boards | Virtual Screen Support | emWin Applications | PC Evaluation Versions |

The following table lists the available drivers and which LCD controllers are supported by each:

Driver Driver Value for macro
LCD_CONTROLLER
LCD Controller Supported bits/pixel
LCDColorOnMono 444 Passive color display connected to an LCD controller with linear memory operating in monochrome mode.
Example: Cirrus Logic EP7312
12
LCDFujitsu 8720
8721
Fujitsu MB87J2020 (Jasmine)
Fujitsu MB87J2120 (Lavender)
1, 2, 4, 8, 16
LCDLin 1300










1301
1304
1352
1353
1354
1356
1374
1375
1376
1386
3200

32168


Any LCD-Controller with linear video memory in 1, 2, 4, 8 and 16 bits/pixel mode, built- in
LCD controllers such as:
Sharp 79531.
Epson S1D13700 (direct interface)
Solomon SSD1905
Fujitsu MB86276 (Lime)
Fujitsu MB86290A (Cremson)
Fujitsu MB86291 (Scarlet)
Fujitsu MB86292 (Orchid)
Fujitsu MB86293 (Coral Q)
Fujitsu MB86294 (Coral B)
Fujitsu MB86295 (Coral P)
Toshiba Capricorn 2
Epson S1D13A03, S1D13A04, S1D13A05
Epson SED1352, S1D13502
Epson SED1353, S1D13503
Epson SED1354, S1D13504
Epson SED1356, S1D13506
Epson SED1374, S1D13704
Epson SED1375, S1D13705
Epson SED1376, S1D13706
Epson SED1386, S1D13806
Any display controller with linear video memory (ARM or MIPS CPUs such asLH754xx, LH795x, LH7A40x, Motorola Dragonball or NEC VR4181A) which should be accessed only in 32 bit mode.
Any display controller with linear video mem-
ory which should be accessed in 8, 16 or 32
bit mode in dependence of the required oper-
ation.
1, 2, 4, 8, 16
LCDMem 0 No controller, writes into main memory
Requires ISR or special hardware to refresh LCD
(monochrome displays)
1, 2
LCDMemC 0 No controller, writes into main memory
Requires ISR or special hardware to refresh LCD
(color displays)
3, 6
LCDNoritake 9000 Noritake display GU256X128C-3900 1
LCDPage1bpp 1501
1501
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1510
1510
1510
1511
1512
1520
1560
1565
1565
1565
1565
1565
1565
1566
1567
1568
1569
1575
Samsung KS0713, S6B0713
Samsung KS0724, S6B0724
UltraChip UC1601, UC1606
Samsung KS0108B, S6B0108B
Hitachi HD61202
Philips PCF8810, PCF8811
Philips PCF8535
New Japan Radio Company NJU6679
Philips PCD8544
Epson S1D15710
Solomon SSD1303 OLED controller
Samsung S6B0719
Sitronix ST7522
Solomon SSD1805
UltraChip UC1608
Epson S1D15721
Epson S1D15E05, S1D15E06
Epson SED1520
Epson SED1560
Epson SED1565, S1D10605
Novatek NT7502
Samsung S6B1713
Solomon SSD1815
Sitronix ST7565
Sunplus SPLC501C
Epson SED1566
Epson SED1567
Epson SED1568
Epson SED1569
Epson SED1575, S1D15705
1
LCDPage4bpp 7528 Sitronix ST7528 4
LCDSLin 6901
6901
6901
6901
6902
6963
Epson SED1330
Epson SED1335
Epson S1D13700 (indirect interface)
RAIO 8835
RAIO 8822/8803
Toshiba T6963
1
LCDVesa 8600 Any VESA compatible hardware 8,16
LCDXylon 9101 FPGA based display controller from Xylon 8
LCD0323 323 Solomon SSD0323 OLED controller 4
LCD07X1 701
701
702
711
741
741
741
Solomon SSD1854
Novatek NT7506
STMicroelectronics STE2010
Samsung KS0711, S6B0711
Samsung KS0741, S6B0741
Sitronix ST7541
Tomato TL0350A
2
LCD1200 1200
1201
Toppoly C0C0
Toppoly C0E0
16
LCD13700 13700
13702
13703
Epson S1D13700
UltraChip UC1617
Solomon SSD1848
2
LCD13701 13800 Epson S1D13701 OLED controller 9,12
LCD13748 13900 Epson S1D13748 Controller 16
LCD159A 1601
1601
Epson SED159A
Sitronix ST7632
8
LCD1611 1701
1702
1800
1801
Epson S1D15E05, S1D15E06
Epson S1D15719
UltraChip UC1611
UltraChip UC1610
2
2
4
2
LCD161620 180 NEC µPD161620 12
LCD1781 1781
1781
Solomon SSD1781
Solomon SSD1783
16
LCD501 501 Leadis LDS501 8
LCD6331 6331 Samsung S6B33B0X, Samsung S6B33B1X, Samsung S6B33B2X 16
LCD6642X 66420
66421
Hitachi HD66420
Hitachi HD66421
2
LCD667XX 66700
66701
66701
66702
66703
66704
66705
66706
66707
66708
66708
66709
66709
66710
66766
66766
66766
66772
66772
66772
66772
66772
66789

Sharp LR38825
Renesas R63401
Renesas R61509
Solomon SSD1289
Toshiba JBT6K71
Sharp LCY-A06003
Samsung S6D0129
MagnaChip D54E4PA7551
Himax HX8312
Ilitec ILI09320
OriseTech SPFD5408
Novatek NT39122
Sitronix ST7628
Novatek NT7573
Hitachi HD66766
Samsung S6D0110A
Ilitec ILI9161
Hitachi HD66772
Samsung S6D0117
Sitronix ST7712
Himax HX8301
Ilitec ILI9220
Hitachi HD66789

16
LCD66750 66800
66801
Hitachi HD66750
Hitachi HD66753
2
LCD7529 7529 Sitronix ST7529 5
LCD7920 7920 Sitronix ST7920 1
LCD8822 8822 Raio RA8822 2

CPU / Display controller interface

Different display controllers have different CPU interfaces. The most common ones are the following:

  • Full bus interface
  • Simple bus interface
  • 4 pin SPI interface
  • 3 pin SPI interface
  • I2C bus interface

Full bus interface

Some LCD controllers (especially those for displays with higher resolution) require a full-address bus, which means they are connected to at least 14 address bits. In a full bus interface configuration, video memory is directly accessible by the CPU; the full-address bus is connected to the LCD controller. The only knowledge required when configuring a full bus interface is information about the address range (which will generate a CHIP-SELECT signal for the LCD controller) and whether 8- or 16-bit accesses should be used (bus-width to the LCD controller). In other words, you need to know the following:

  • Base address for video memory access
  • Base address for register access
  • Distance between adjacent video memory locations (usually 1/2/4-byte)
  • Distance between adjacent register locations (usually 1/2/4-byte)
  • Type of access (8/16/32-bit) for video memory
  • Type of access (8/16/32-bit) for registers

Typical block diagram for LCD controllers with full bus interface

Macros used by a full bus interface

The following table shows the used hardware access macros:

Type Macro Explanation
F LCD_READ_MEM Reads the video memory of the LCD controller.
F LCD_WRITE_MEM Writes data to the video memory of the LCD controller.
F LCD_READ_REG Reads the register of the LCD controller.
F LCD_WRITE_REG Writes data to a specified register of the LCD controller.

Simple bus interface

Most LCD controllers for smaller displays (usually up to 240*128 or 320*240) use a simple bus interface to connect to the CPU. With a simple bus, only one address bit (usually A0) is connected to the LCD controller. Some of these controllers are very slow, so that the hardware designer may decide to connect it to input/output (I/O) pins instead of the address bus.

Typical block diagram for LCD controllers with simple bus interface

8 (16) data bits, one address bit and 2 or 3 control lines are used to connect the CPU and one LCD controller. Four macros inform the LCD driver how to access each controller used. If the LCD controller(s) is connected directly to the address bus of the CPU, configuration is simple and usually consists of no more than one line per macro. If the LCD controller(s) is connected to I/O pins, the bus interface must be simulated, which takes about 5-10 lines of program per macro (or a function call to a rou- tine which simulates the bus interface). The signal A0 is also called C/D (Command/ Data), D/I (Data/Instruction) or RS (Register select), depending on the display controller.

The following table shows the used hardware access macros:

Type Macro Explanation
F LCD_READ_A0 Reads a byte from LCD controller with A0 - line low.
F LCD_READ_A1 Reads a byte from LCD controller with A0 - line high.
F LCD_WRITE_A0 Writes a byte to LCD controller with A0 - line low.
F LCD_WRITE_A1 Writes a byte to LCD controller with A0 - line high.
F LCD_WRITEM_A1 Writes several bytes to the LCD controller with A0 - line high.

4 pin SPI interface

Using a 4 pin SPI interface is very similar to a simple bus interface. To connect a LCD display using 4 pin SPI interface the lines A0, CLK, DATA, and CS must be connected to the CPU.

Typical block diagram for LCD controllers with 4 pin SPI interface

Macros used by a 4 pin SPI interface

The following table shows the used hardware access macros:

Type Macro Explanation
F LCD_WRITE_A0 Writes a byte to LCD controller with A0 (C/D) - line low.
F LCD_WRITE_A1 Writes a byte to LCD controller with A0 (C/D) - line high.
F LCD_WRITEM_A1 Writes several bytes to the LCD controller with A0 (C/D) - line high.

3 pin SPI interface

Typical block diagram for LCD controllers with 3 pin SPI interface

Macros used by a 3 pin SPI interface

The following table shows the used hardware access macros:

Type Macro Explanation
F LCD_WRITE Writes a byte to LCD controller.
F LCD_WRITEM Writes several bytes to the LCD controller.

I2C bus interface

Typical block diagram for LCD controllers with I2C bus interface

Macros used by a 3 pin SPI interface

Type Macro Explanation
F LCD_READ_A0 Reads a status byte from LCD controller.
F LCD_READ_A1 Reads a data byte from LCD controller.
F LCD_WRITE_A0 Writes a instruction byte to LCD controller.
F LCD_WRITE_A1 Writes a data byte to LCD controller.
F LCD_WRITEM_A1 Writes several data bytes to the LCD controller.

Copyright SEGGER Microcontroller GmbH & Co.KG. All rights reserved.
For more information, please visit our web site www.segger.com or contact us at info@segger.com
Last update: January 8, 2008