Samsung S6B0108 (Winstar WG12864F)

Top  Previous  Next

Controller: Samsung S6B0108.

Panel: Winstar WG12864F and similar panels.

Type: LCD with blue backlight/white dots, monochrome (1 bit/pixel), vertical pixel packing.

Locking: Supported, but the display image is not visible when the display is locked. This causes a noticeable "glitch" on the display when the lock/unlock is performed.

Test hardware: TEV-LB0 test board. This board is a part of the EM1000-TEV development system. See Programmable Hardware Manual for details.

I/O mapping for WG12864F

This panel requires 6 I/O lines and an 8-bit data bus. Control lines are RST, EN, CS1, CS2, D/I, and R/W. Each control line can be connected to any I/O pin of your device, and each such I/O pin must be configured as an output (if your device requires explicit I/O line buffer configuration). The data bus can be connected to any 8-bit port. DO NOT configure this port for output.

The value of the lcd.iomapping property must be set correctly for the display to work (see Preparing the Display for Operation). For this particular display, the mapping string consists of 7 comma-separated decimal values:

1.Number of the I/O line connected to RST.

2.Number of the I/O line connected to EN.

3.Number of the I/O line connected to CS1.

4.Number of the I/O line connected to CS2.

5.Number of the I/O line connected to D/I.

6.Number of the I/O line connected to R/W.

7.Number of the I/O port connected to DATA7-0.

 

I/O line numbers are from the pl_io_num enum. Port number is from the pl_io_port_num enum. Line and port numbers are platform-specific. See the list of pl_io_num and pl_io_port_num constants in the platform specifications.

For the TEV-LB0 board, the lcd.iomapping property should be set to "44,46,40,41,43,42,4".

Code example — TEV-LB0

This code will properly setup and enable this controller/panel (we assume that the testing is done using the TEV-LB0 board):

 

 

lcd.iomapping="44,46,40,41,43,42,4" 'RST,EN,CS1,CS2,D/I,R/W,DATA7-0

 

'configure control lines as outputs

io.num=PL_IO_NUM_46 'EN

io.enabled=YES

io.num=PL_IO_NUM_44 'RST

io.enabled=YES

io.num=PL_IO_NUM_40 'CS1

io.enabled=YES

io.num=PL_IO_NUM_41 'CS2

io.enabled=YES

io.num=PL_IO_NUM_42 'R/W

io.enabled=YES

io.num=PL_IO_NUM_43 'D/I

io.enabled=YES

 

'set resolution

lcd.width=128

lcd.height=64

 

'optionally set lcd.rotated here

 

lcd.enabled=YES 'done!

 

'turn on the backlight (strictly speaking, this is not related to the LCD control, but we still show it here)

io.num=PL_IO_NUM_47

io.enabled=YES

io.state=HIGH

 

set_lcd_contrast(11) 'this is for external contrast control circuit

 

 

Contrast control

This is not a part of the panel itself, but we are still providing the code that will work on the TEV-LB0:

 

 

Sub set_lcd_contrast(level As Byte)

  'enable port, output data

  io.portnum=PL_IO_PORT_NUM_4

  io.portenabled=255

  io.portstate=level

 

  'generate strobe for the data register (on the LCD PCB)

  io.num=PL_IO_NUM_48

  io.enabled=YES

  io.state=HIGH

  io.state=LOW

 

  'disable port

  io.portenabled=0

End Sub

 

 

You can design your own contrast control circuit, of course.