RAiO
RA8875
Character/Graphic
TFT LCD Controller
Application Note
Version 1.5
June, 28, 2013
RAiO Technology Inc.
©Copyright RaiO Technology Inc. 2011
RAiO TECHNOLOGY INC. 1/19 www.raio.com.tw
RA8875
Version 1.1 Application Note
Version
1.0
1.1
1.2
1.3
1.4
1.5
Date
May, 03, 2011
May,09,2011
June,22,2011
July,11,2011
Nov,30,2011
June,28,2013
Update History
First Release
Description
Schematic 2 update ,initial code update
Schematic 2 update
Add chapter 6.appendix
All schematic update, add serial IF,serial flash program circuit.
Schematic 3 update ,initial code update
RAiO TECHNOLOGY INC. 2/19 www.raio.com.tw
RA8875
Version 1.1 Application Note
Chapter
Contents
Page
1. Application Circuit................................................................................... 4
2. Initial Code................................................................................................ 7
3. Display on Sequence............................................................................. 15
4. Sleep Mode Sequence........................................................................... 16
5. Display RAM pure data write example................................................. 18
6. Appendix ................................................................................................ 19
RAiO TECHNOLOGY INC. 3/19 www.raio.com.tw
RA8875
Version 1.1 Application Note
1. Application Circuit
Figure 1-1
RAiO TECHNOLOGY INC. 4/19 www.raio.com.tw
RA8875
Version 1.1 Application Note
)
a
i
x
d
n
e
p
p
a
e
h
t
o
t
r
e
e
r
f
e
s
a
e
P
※
(
l
Figure 1-2
RAiO TECHNOLOGY INC. 5/19 www.raio.com.tw
RA8875
Version 1.1 Application Note
Figure 1-3
RAiO TECHNOLOGY INC. 6/19 www.raio.com.tw
RA8875
Version 1.1 Application Note
2. Initial Code
void RA8875_PLL_ini(void)
{ //Base on 20MHz crystal
#ifdef P320x240 //system clock = 20*(10+1)/(2^2) = 55MHz
LCD_CmdWrite(0x88);
LCD_DataWrite(0x0a);
Delay1ms(1);
LCD_CmdWrite(0x89);
LCD_DataWrite(0x02);
Delay1ms(1);
#endif
#ifdef P480x272 //system clock = 20*(10+1)/(2^2) = 55MHz
LCD_CmdWrite(0x88);
LCD_DataWrite(0x0a);
Delay1ms(1);
LCD_CmdWrite(0x89);
LCD_DataWrite(0x02);
Delay1ms(1);
#endif
#ifdef P640x480 //system clock = 20*(11+1)/(2^2) = 60MHz
LCD_CmdWrite(0x88);
LCD_DataWrite(0x0b);
Delay1ms(1);
LCD_CmdWrite(0x89);
LCD_DataWrite(0x02);
Delay1ms(1);
#endif
#ifdef P800x480 //system clock = 20*(11+1)/(2^2) = 60MHz
LCD_CmdWrite(0x88);
LCD_DataWrite(0x0b);
Delay1ms(1);
LCD_CmdWrite(0x89);
LCD_DataWrite(0x02);
Delay1ms(1);
RAiO TECHNOLOGY INC. 7/19 www.raio.com.tw
RA8875
Version 1.1 Application Note
#endif
}
//------------------------------------------//
void LCD_Initial(void)
{
RA8875_PLL_ini();
LCD_CmdWrite(0x10); //SYSR bit[4:3]=00 256 color bit[2:1]= 00 8bit MPU interface
LCD_DataWrite(0x0c); // if 8bit MCU interface and 65k color display
//LCD_DataWrite(0x0F); // if 16bit MCU interface and 65k color display
#ifdef P320x240
//============== Display Window 320x240 ==================
LCD_CmdWrite(0x04); //set PCLK invers
LCD_DataWrite(0x03); //PCLK = system clock/(2^3) = 55/8 = 6.875MHz
Delay1ms(1);
//Horizontal set
LCD_CmdWrite(0x14); //HDWR//Horizontal Display Width Setting Bit[6:0]
LCD_DataWrite(0x27);//Horizontal display width(pixels) = (HDWR + 1)*8
LCD_CmdWrite(0x15); //Horizontal Non-Display Period Fine Tuning Option Register (HNDFTR)
LCD_DataWrite(0x00);//Horizontal Non-Display Period Fine Tuning(HNDFT) [3:0]
LCD_CmdWrite(0x16); //HNDR//Horizontal Non-Display Period Bit[4:0]
LCD_DataWrite(0x05);//Horizontal Non-Display Period (pixels) = (HNDR + 1)*8
LCD_CmdWrite(0x17); //HSTR//HSYNC Start Position[4:0]
LCD_DataWrite(0x04);//HSYNC Start Position(PCLK) = (HSTR + 1)*8
LCD_CmdWrite(0x18); //HPWR//HSYNC Polarity ,The period width of HSYNC.
LCD_DataWrite(0x03);//HSYNC Width [4:0] HSYNC Pulse width(PCLK) = (HPWR + 1)*8
//Vertical set
LCD_CmdWrite(0x19); //VDHR0 //Vertical Display Height Bit [7:0]
LCD_DataWrite(0xef);//Vertical pixels = VDHR + 1
LCD_CmdWrite(0x1A); //VDHR1 //Vertical Display Height Bit [8]
LCD_DataWrite(0x00);//Vertical pixels = VDHR + 1
LCD_CmdWrite(0x1B); //VNDR0 //Vertical Non-Display Period Bit [7:0]
LCD_DataWrite(0x05);//Vertical Non-Display area = (VNDR + 1)
LCD_CmdWrite(0x1C); //VNDR1 //Vertical Non-Display Period Bit [8]
LCD_DataWrite(0x00);//Vertical Non-Display area = (VNDR + 1)
LCD_CmdWrite(0x1D); //VSTR0 //VSYNC Start Position[7:0]
LCD_DataWrite(0x0e);//VSYNC Start Position(PCLK) = (VSTR + 1)
LCD_CmdWrite(0x1E); //VSTR1 //VSYNC Start Position[8]
LCD_DataWrite(0x00);//VSYNC Start Position(PCLK) = (VSTR + 1)
RAiO TECHNOLOGY INC. 8/19 www.raio.com.tw