AMOLED Microdisplay Instructions

Page view

 

AMOLED MicroDisplay Manual Guide

 

V0.2

For SVGA & SXGA Series

 

Yunnan OLiGHTEK Opto-Electronic Technology Co., LTD

Sept.30, 2017

 

 

INTRODCUTION

This document describes the register setting recommendations and adjustments for the SVGA and SXGA series microdisplays. This document must be used in conjunction with the latest Datasheet

1. Initialization

1.1. Reset circuit

A reliable and stable reset routine must be done before the initialization. The reset pin of display is recommended to pull-down by an external resister, as shown in Figure 1-1.

 

Figure 1-1 Recommended reset circuit

In this condition, the display will keep in reset status as default. The reset pin should be pulled-up to enable the display by MCU when required.

1.2. IIC

The IIC slave address deponds on the “SelAddr0” pin of display:

SelAddr0 is high → 0x1E (default)

SelAddr0 is low → 0x1C


The SCL and SDA are working at 1.8~3.3V CMOS standard. Both of them must be pulled-up to 1.8V~3.3V by an external resister. Please refer to Figure 1-2.

Figure 1-2 IIC Pull-up Circuits

NoteFor SVGA050, Pixel clock must be supplied at first.

 

1.3. Initialization Process

Figure 1-3 Initialization program flowchart

 

 

2.Functions

2.1. Brightness(Example:SVGA)

There are two types of brightness adjustment. One is “signal brightness” (register 08H), as shown in Figure 2-1. Another is “Vcom brightness”(register 19H), as shown in Figure 2-2.

Figure 2-1 Signal Brightness adjustment

Figure 2-2 Vcom Brightness adjustment

In normal conditions, the “Vcom brightness” adjustment is the proposed way to control the luminance of display. It can be interpreted as the backlight brightness of the LCD.

2.2.Display Window(Example:SVGA)

There are two groups of register use to set the position of the active display window whthin the 804×604 available pixels. Typical setting mothod is shown in Figure 2-3.

Name

Register Group

Default Value

Description

STARTPOS

11H,13H

02H,02H

Start position of active window

ENDPOS

12H,14H

02H,02H

End position of active window

window.Figure 2-3 Active display window settings

If the input resolution is A × B, the following equation must be satisfied when modify the display 

A = 804 – reg (11H) – reg (12H) → reg (11H) + reg (12H) = 804 – A

B = 604 – reg (13H) – reg (14H) → reg (13H) + reg (14H) = 604 – B

 

Another equation should be satisfied if center display is needed:

reg (11H) = reg (12H)

reg (13H) = reg (14H)

Note: For SVGA , the register 13H and 14H only can be set to even number if it works in interlaced scan mode.

Example:

  The input resolution is 768×576t:

reg (11H) + reg (12H) = 804 – 768 = 36

reg (13H) + reg (14H) = 604 – 576 = 28

  If center position is needed:

reg (11H) = reg (12H) = 36 ÷ 2 = 18 = 12H

reg (13H) = reg (14H) = 28 ÷ 2 = 14 = 0EH

  If another positioin is needed, such as the start position is (6,6), then:

reg (11H) = 06H,reg(12H) = 36 – reg(11H) = 30 = 1EH

reg (13H) = 06H,reg(14H) = 28 – reg(13H) = 22 = 16H

For SXGA, to modify the display position should use the same method as SVGA, but the register address must refer to the datasheet.

2.3.Gamma Correction Principle

The typical luminance gamma curves at γ=1 and γ=2.2 are shown in Figure 2-4, and the theory of gamma correction is base on the following formula

  i: the grey level number->SVGA (0-255), SXGA(0-1023)
  Lmax: the luminance of the maximum grey level ->SVGA(255), SXGA(1023)
  Li: the output luminance of the i gray level after gamma correction
  γ: gamma correction coefficient.
SVGA&SXGA use voltage drive architecture and the luminance with drive voltage of OLED are non-linear. For
this reason, the default gamma correction LUT setting is not good for display.Figure 2-5 shows the default gamma
properties of SVGA. The gray scale display effect after correction shown in

Figure 2-4 Typical Gamma Correction Curve Figure 2-5 Default Gamma Properties of SVGA

Figure 2-6 Gray Scale Display Effect with Gamma Correction

 

2.4. SVGA Gamma Correction

SVGA has a 17 points gamma look up table(LUT0~LUT16) which directly addressed from 20H to 42H. Each point is a 9 bit data that stored follow the Little-Endian format. The recommanded operating process refer to Figure 2-7.

 

Figure 2-7 SVGA gamma correction operating process

 

For SVGA series microdisplay, to get the base value should follow the method:

  1) Make the luminance of display meet the using requirements(@All White Image);

  2) Then make the display show an All-Black image;

  3) Adjust the LUT[0] to make the luminance meet the 0.1cd/m2, then the Base value is LUT[0]-10H;

Example code(C Programing language)

 

Data table:

BYTE LUT[16]={0,33,55,74,92,108,124,139,153,167,181,194,207,219,231,243};

Note: This table stores the intermediate data for the gamma calculation.

void Wr_Gamma(WORD Gamma_value)

{

  BYTE k, b;

  WORD tmp, cGamma, Remainder;

  for (k=0,b=0,tmp=Gamma_value, Remainder=0; k<16; k++,b=0)

 

{

  Wr_I2C (DISPADDR, 0x20 + k*2, LOW_BYTE (tmp)); Wr_I2C (DISPADDR, 0x20 + k*2+1, HIGH_BYTE (tmp));

  cGamma = (512-Gamma_value) * (LUT[k+1]-LUT[k]); Remainder + = cGamma%256;

  if(Remainder > = 256)

{

  Remainder - = 256; b=1;

}

  tmp + = (cGamma>>8)+b;

}

}

 

2.5. SXGA Gamma Correction

SXGA has three independent gamma look table for R, G, B data channels. There are 256 10-bit data in each table that indirect addressed in Big-Endian data mode. Register 11H/14H/17H are address-offset control registers.

Register (12H,13H)/(15H, 16H)/(18H, 19H) are data-caching registers. The operation diagram is shown in Figure 2-8.

Figure 2-8 SXGA Gamma operation diagram

 

After all the data is done, the Gamma update control bit for R\G\B should be set to enable the updating. The recommanded operating process refer to Figure 2-9.

For SXGA series microdisplay, to get the base value should follow the method:

  1) Make the luminance of display meet the using requirements(@All White Image);

  2) Then make the display show an All-Black image;

  3) Adjust the R-LUT[0]\G-LUT[0]\B-LUT[0] to make the luminance meet the 0.1cd/m2;

  4) then the Base value is R-LUT[0]-10H, B-LUT[0]-10H, B-LUT[0]-10H;

  5) Generally the R-Base= G-Base=B-Base;

Figure 2-9 SXGA Gamma correction opreating process

Example code(C programing language):

Data table:

BYTE LUT[256]={

0,   9,  13,  17,  21,  24,  26,  29,  31,  34,  36,  38,  40,  42,  44, 46,

 48,  50,  51,  53,  55,  57,  58,  60,  61,  63,  64,  66,  67,  69,  70, 72,

 73,  74,  76,  77,  78,  80,  81,  82,  83,  85,  86,  87,  88,  90,  91, 92,

 93, 94, 95,  97,  98,  99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110,

111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,

127, 128, 129, 130, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,

141, 142, 143, 144, 145, 146, 147, 148, 148, 149, 150, 151, 152, 153, 153, 154,

155, 156, 157, 158, 158, 159, 160, 161, 162, 163, 163, 164, 165, 166, 167, 167,

168, 169, 170, 170, 171, 172, 173, 174, 174, 175, 176, 177, 177, 178, 179, 180,

180, 181, 182, 183, 183, 184, 185, 186, 186, 187, 188, 189, 189, 190, 191, 192,

192, 193, 194, 194, 195, 196, 197, 197, 198, 199, 199, 200, 201, 202, 202, 203,

204, 204, 205, 206, 206, 207, 208, 208, 209, 210, 211, 211, 212, 213, 213, 214,

215, 215, 216, 217, 217, 218, 219, 219, 220, 221, 221, 222, 223, 223, 224, 225,

225, 226, 226, 227, 228, 228, 229, 230, 230, 231, 232, 232, 233, 234, 234, 235,

235, 236, 237, 237, 238, 239, 239, 240, 240, 241, 242, 242, 243, 244, 244, 245,

245, 246, 247, 247, 248, 248, 249, 250, 250, 251, 251, 252, 253, 253, 254, 255}

Note: This table stores the intermediate data for the gamma calculation.

 

void Wr_Gamma(BYTE CHAddr, WORD Gamma_value)

{

  WORD dGamma, cGamma; WORD Remainder;

  BYTE i, b;

  for(i=0, dGamma=Gamma_value,b=0,Remainder=0;i<0xff;i++,b=0)

  {

    Wr_I2C(DISPADDR,CHAddr,i);

    Wr_I2C(DISPADDR,CHAddr+1,HIGH_BYTE(dGamma));

    Wr_I2C(DISPADDR,CHAddr+2,LOW_BYTE(dGamma));

    cGamma=(1024-Gamma_value)*(LUT[i+1]-LUT[i]); Remainder+=cGamma%256;

    if(Remainder>=256)

    {

      Remainder-=256;

      b=1;

    }

    dGamma+=(cGamma>>8)+b;

  }

  Wr_I2C(DISPADDR,CHAddr,i);

  Wr_I2C(DISPADDR,CHAddr+1,0x03);

  Wr_I2C(DISPADDR,CHAddr+2,0xff);

}

 

2.6. Temperature compensation

The recommanded operation process refer to Figure 2-10. For more detailed please refer to datasheet.

Figure 2-10 Temperature compensation

There is a temperature compensation look up table for each type of display. To see the sample code for the arithmetic as follows.Figure 2-10 Temperature compensation

 

SVGA Temperature compensation table:

BYTE TC_Table[129]={

 -57,-56,-55,-54,-53,-52,-52,-51,-50,-49,-48,-48,-47,-46,-45,-44,

 -43,-43,-42,-41,-40,-39,-38,-38,-37,-36,-35,-34,-33,-33,-32,-32,

 -30,-29,-29,-28,-27,-26,-25,-24,-24,-23,-22,-21,-20,-19,-19,-18,

 -17,-16,-15,-15,-14,-13,-12,-11,-10,-10, -9, -8, -7, -6, -5, -5,

  -4, -3, -2, -1,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1, 1,

   1,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,  3,  3,  4,  4, 4,

   4,  4,  5,  5,  5,  5,  5,  5,  6,  6,  6,  6,  6,  6,  5, 5,

   4,  4,  4,  4,  4,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2, 2,

   2};

SXGA temperature compensation table:

BYTE TC_Table[129]={

-66,-66,-66,-65,-65,-65,-64,-64,-63,-62,-61,-60,-59,-58,-57,-56,

-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,

-39,-37,-35,-33,-31,-29,-28,-27,-25,-23,-22,-21,-20,-19,-19,-18,

-17,-16,-15,-15,-14,-13,-12,-11,-10,-10, -9, -8, -7, -6, -5, -5,

  0,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  3,  4, 4,

  4,  5,  5,  6,  6,  7,  7,  8,  8,  8,  9,  9,  9, 10, 10, 10,

 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18,

 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,

 20};

 

SVGA function(C programing language)

void disp_tc(UINT8 addr, UINT16 ref_vcom)
{
UINT8 current_temp;
current_temp = disp_get(addr, ADDR_TEMP_VALUE);
ref_vcom += array_disp_tc[current_temp >> 1];
if (ref_vcom > 0xff)
{
ref_vcom = 0xff;
}
else if (ref_vcom < 0x40)
{
ref_vcom = 0x40;
}
disp_set(addr, ADDR_VCOM_CTRL, ref_vcom);
}

SXGA function(C programing language):

void disp_tc(UINT8 addr, UINT16 ref_vcom)
{
UINT8 current_temp;
current_temp = disp_get(addr, ADDR_TEMP_VALUE);
ref_vcom += array_disp_tc[current_temp >> 1];
if (ref_vcom > 0x1ff)
{
ref_vcom = 0x1ff;
}
else if (ref_vcom < 0x40)
{
ref_vcom = 0x40;
}
disp_set(addr, ADDR_VCOM_CTRL, high_byte(ref_vcom));
disp_set(addr,ADDR_VCOM_CTRL+1,low_byte(ref_vcom));
}

 

2.7. 3D Application

SVGA and SXGA only support SBS(Side-By-Side) 3D near-to-eye application. Two same type pecies of OLED must be used. Please refer to Figure 2-11 and Figure 2-12.


Figure 2-11 Recommanded Side-By-Side 3D application diagram

Figure 2-12 Recommanded Side-By-Side 3D timing

 

3.Typical Settings

3.1. 24bit 444 RGB with DEnon-interlaced

SVGA,800×600@60Hz

SXGA,1280×1024@60Hz

RegAddr

Value

Notes

RegAddr

Value

Notes

01H

0x34

Input signal mode

01H

0x0F

Sync signal polarity①

02H

0x00

Sync signal polarity①

02H

0x43

Input signal mode

03H

0x00

Set Vblank②

03H

0x00

Set Vblank②

04H

0x00

Set Hblank②

04H

0x00

Set Hblank②

08H

0x80

Signal Brightness

0EH

0x80

Signal Brightness

09H

0x80

Signal Contrast

0FH

0x80

Signal Contrast

10H

0x40

Display orientation③

21H

0x00

Display orientation③

11H

0x02

 

 

 

Set display position

22H,23H④

0x002

 

 

 

Set display position

12H

0x02

24H,25H④

0x002

13H

0x02

26H,27H④

0x002

14H

0x02

28H,29H④

0x002

 

16H

0x0C

SVGA050

32H

0x0A

 

 

Recommended

0x80

SVGA060/SVGA097

36H

0x18

19H

0x80

Set Vcom

37H

0x32

10H

0x00

Turn on the display

 

14H,15H,16H

 

--

 

Set G Gamma LUTs

 

17H,18H,19H

 

--

 

Set B Gamma LUTs

10H

0x03

Update Gamma

34H,35H④

0x0A0

Set Vcom

21H

0x80

Turn on the display

Note:

① Sync signal polarity should mathc the video system.

② The Vblank&Hblank must be set if no DE input.

③ All the configurations should be set before turn on the display.

④ For double byte data, the high byte must be set first, then the low byte followed.

 

3.2. 16bit 422 YCbCr with DEnon-interlaced

SVGA,800×600@60Hz

SXGA,1280×1024@60Hz

RegAddr

Value

Notes

RegAddr

Value

Notes

01H

0x04

Input signal mode

01H

0x0F

Sync signal polarity

02H

0x00

Sync signal polarity

02H

0x40

Input signal mode

03H

0x00

Set Vblank

03H

0x00

Set Vblank

04H

0x00

Set Hblank

04H

0x00

Set Hblank

08H

0x80

Signal Brightness

0EH

0x80

Signal Brightness

09H

0x80

Signal Contrast

0FH

0x80

Signal Contrast

10H

0x40

Display orientation

21H

0x00

Display orientation

11H

0x02

 

 

 

Set display position

22H,23H

0x002

 

 

 

Set display position

12H

0x02

24H,25H

0x002

13H

0x02

26H,27H

0x002

14H

0x02

28H,29H

0x002

 

16H

0x0C

SVGA050

32H

0x0A

 

 

Recommended

0x80

SVGA060/SVGA097

36H

0x18

19H

0x80

Set Vcom

37H

0x32

10H

0x00

Turn on the display

 

14H,15H,16H

 

--

 

Set G Gamma LUTs

 

17H,18H,19H

 

--

 

Set B Gamma LUTs

10H

0x03

Update Gamma

34H,35H④

0x0A0

Set Vcom

21H

0x80

Turn on the display

3.3. 8bit 422 YCbCrembended syncinterlaced

SVGA, PAL 768×576

SXGA,1280×960

(NTSC 640×480 row&line×2 extended)

RegAddr

Value

Notes

RegAddr

Value

Notes

01H

0x41

Input signal mode

01H

0x00

Sync signal polarity

02H

0x00

Sync signal polarity

02H

0x64

Input signal mode

03H

0x00

Vblank 设置

03H

0x00

Vblank 设置

04H

0x00

Hblank 设置

04H

0x00

Hblank 设置

08H

0x80

Signal Brightness

0EH

0x80

Signal Brightness

09H

0x80

Signal Contrast

0FH

0x80

Signal Contrast

Display orientation Row&Line extend

11H

0x3E

 

 

 

Set display position

22H,23H

0x002

 

 

 

Set display position

12H

0x3E

24H,25H

0x002

13H

0x12

26H,27H

0x020

14H

0x12

28H,29H

0x020

 

16H

0x0C

SVGA050

32H

0x0A

 

 

Recommended

0x80

SVGA060/SVGA097

36H

0x18

19H

0x80

Set Vcom

37H

0x32

10H

0x00

Turn on the display

 

14H,15H,16H

 

--

 

Set G Gamma LUTs

 

17H,18H,19H

 

--

 

Set B Gamma LUTs

10H

0x03

Update Gamma

34H,35H④

0x0A0

Set Vcom

21H

0x80

Turn on the display