/******************************************************************************* @Company Focus LCDs @Author Focus LCDs www.focuslcds.com @File Name E35RB-FS450-N_3SPI_init.txt @Version Version 1.0.0 @Description This source file provides initialization for the Focus LCDs E35RB-FS450-N TFT display. /*******************************************************************************/ NOTE:VCI=3.3V,IOVCC=1.8V-3.3V. //************************************* void SPI_SendData(unsigned char i) { unsigned char n; for(n=0; n<8; n++) { if(i&0x80) sdi=1; else sdi=0; sclb=0; sclb=1; i<<= 1; } } void write_command(unsigned int i) { csb=0; SPI_SendData(0x70); //high 8bit SPI_SendData(i>>8); SPI_SendData(i); csb=1; } void write_data(unsigned int i) { csb=0; SPI_SendData(0x72); //high 8bit SPI_SendData(i>>8); //low 8bit SPI_SendData(i); csb=1; } /*************************************************/ void initi(void) { res=1; delay(1); res=0; delay(10); res=1; delay(120); /*************************/ //GAMMA SETTING write_command(0x0046);write_data(0x0044); write_command(0x0047);write_data(0x0044); write_command(0x0048);write_data(0x0045); write_command(0x0049);write_data(0x0025); write_command(0x004A);write_data(0x0023); write_command(0x004B);write_data(0x0045); write_command(0x004C);write_data(0x0025); write_command(0x004D);write_data(0x0023); write_command(0x004E);write_data(0x0050); write_command(0x004F);write_data(0x0000); write_command(0x0050);write_data(0x0050); write_command(0x0051);write_data(0x0000); //240x320 window setting write_command(0x0002);write_data(0x0000); // Column address start2 write_command(0x0003);write_data(0x0000); // Column address start1 write_command(0x0004);write_data(0x0000); // Column address end2 write_command(0x0005);write_data(0x00EF); // Column address end1 write_command(0x0006);write_data(0x0000); // Row address start2 write_command(0x0007);write_data(0x0000); // Row address start1 write_command(0x0008);write_data(0x0001); // Row address end2 write_command(0x0009);write_data(0x003F); // Row address end1 // Display Setting write_command(0x0016);write_data(0x0008); // 48 MY=0);write_data( MX=0);write_data( MV=0);write_data( ML=1);write_data( BGR=0);write_data( TEON=0 write_command(0x0038);write_data(0x0000); // RGB_EN=0);write_data( use MPU Interface) write_command(0x0023);write_data(0x0095); // N_DC=1001 0101 write_command(0x0024);write_data(0x0095); // PI_DC=1001 0101 write_command(0x0025);write_data(0x00FF); // I_DC=1111 1111 write_command(0x0027);write_data(0x0002); // N_BP=0000 0010 write_command(0x0028);write_data(0x0002); // N_FP=0000 0010 write_command(0x0029);write_data(0x0002); // PI_BP=0000 0010 write_command(0x002A);write_data(0x0002); // PI_FP=0000 0010 write_command(0x002C);write_data(0x0002); // I_BP=0000 0010 write_command(0x002D);write_data(0x0002); // I_FP=0000 0010 write_command(0x003A);write_data(0x00A1); // N_RTN=0000);write_data( N_NW=001 write_command(0x003B);write_data(0x00A1); // PI_RTN=0000);write_data( PI_NW=000 write_command(0x003C);write_data(0x00A0); // I_RTN=1111);write_data( I_NW=000 write_command(0x003D);write_data(0x0000); // DIV=00 delay(20); // Power Supply Setting write_command(0x0019);write_data(0x0049); // CADJ=0100);write_data( CUADJ=100(FR:60Hz));write_data();write_data( OSD_EN=1 write_command(0x0093);write_data(0x000F); // RADJ=1111);write_data( 100% delay(10); write_command(0x0020);write_data(0x0010); // BT=0100 write_command(0x001D);write_data(0x0001); // VC1=111 write_command(0x001E);write_data(0x0006); // VC3=000 write_command(0x001F);write_data(0x000C); // VRH=0100 // VCOM Setting for Panel write_command(0x0044);write_data(0x0050); // VCM write_command(0x0045);write_data(0x0010); // VDV=1 0001 write_command(0x001C);write_data(0x0004); // AP=100 delay(20); write_command(0x001B);write_data(0x0008); // GASENB=0);write_data( PON=1);write_data( DK=1);write_data( XDK=0);write_data( VLCD_TRI=0);write_data( STB=0 delay(40); write_command(0x001B);write_data(0x0014); // GASENB=0);write_data( PON=1);write_data( DK=0);write_data( XDK=0);write_data( VLCD_TRI=0);write_data( STB=0 delay(40); write_command(0x0043);write_data(0x0080); //Set VCOMG=1 delay(100); // Display ON Setting write_command(0x0090);write_data(0x00F0); // SAP=0111 1111 write_command(0x0026);write_data(0x0024); //GON=0);write_data( DTE=0);write_data( D=01 delay(40); write_command(0x0026);write_data(0x0024); //GON=1);write_data( DTE=0);write_data( D=01 write_command(0x0026);write_data(0x002C); //GON=1);write_data( DTE=0);write_data( D=11 delay(40); write_command(0x0026);write_data(0x003C); //GON=1);write_data( DTE=1);write_data( D=11 //Cycle Control write_command(0x0035);write_data(0x0038); // EQS=38h write_command(0x0036);write_data(0x0078); // EQP=78h write_command(0x003E);write_data(0x0038); // SON=38h write_command(0x0040);write_data(0x000F); // GDON=0Fh //Display Control write_command(0x0041);write_data(0x00F0); // GDOFF // Internal register setting write_command(0x0095);write_data(0x0001); // Set Display clock and Pumping clock to synchronize //RGB Interface Control,RGB polarity(HS,VS,DE,DOTCLK) //write_command(0x0038);write_data(0x0010); //RGB Interface ON //Internal Use write_command(0x0070);write_data(0x0066); //Internal Use // TEST MODE Control write_command(0x0096);write_data(0x0001); //Data format } //********************************************************** void LCD_Enter_Standby(void) { write_command(0x0007);write_data( 0x0131); // Set D1=0);write_data( D0=1 delay(10); write_command(0x0007);write_data( 0x0130); // Set D1=0);write_data( D0=0 delay(10); write_command(0x0007);write_data( 0x0000); // display OFF //************* Power OFF sequence ************** write_command(0x0010);write_data( 0x0080); // SAP);write_data( BT[3:0]);write_data( APE);write_data( AP);write_data( DSTB);write_data( SLP write_command(0x0011);write_data( 0x0000); // DC1[2:0]);write_data( DC0[2:0]);write_data( VC[2:0] write_command(0x0012);write_data( 0x0000); // VREG1OUT voltage write_command(0x0013);write_data( 0x0000); // VDV[4:0] for VCOM amplitude delay(200); // Dis-charge capacitor power voltage write_command(0x0010);write_data( 0x0082); // SAP);write_data( BT[3:0]);write_data( APE);write_data( AP);write_data( DSTB);write_data( SLP } void LCD_Exit_Standby (void) { //*************Power On sequence ****************** write_command(0x0010);write_data( 0x0080); // SAP);write_data( BT[3:0]);write_data( AP);write_data( DSTB);write_data( SLP write_command(0x0011);write_data( 0x0000); // DC1[2:0]);write_data( DC0[2:0]);write_data( VC[2:0] write_command(0x0012);write_data( 0x0000); // VREG1OUT voltage write_command(0x0013);write_data( 0x0000); // VDV[4:0] for VCOM amplitude write_command(0x0007);write_data( 0x0001); delay(200); // Dis-charge capacitor power voltage write_command(0x0010);write_data( 0x1490); // SAP);write_data( BT[3:0]);write_data( AP);write_data( DSTB);write_data( SLP);write_data( STB write_command(0x0011);write_data( 0x0227); // R11h=0x0221 at VCI=3.3V DC1[2:0]);write_data( DC0[2:0]);write_data( VC[2:0] delay(50); // Delay 50ms write_command(0x0012);write_data( 0x008C); // External reference voltage =Vci; delay(50); // Delay 50ms write_command(0x0013);write_data( 0x1800); // R13h=0x1200 when R12=009D VDV[4:0] for VCOM amplitude write_command(0x0029);write_data( 0x0025); // R29h=0x000C when R12=009D VCM[5:0] for VCOMH delay(50); // Delay 50ms write_command(0x0007);write_data( 0x0133); // 262K color and display ON }