#if defined (SSD1963_480_DRIVER) writecommand(0xE2); //PLL multiplier, set PLL clock to 120M writedata(0x23); //N=0x36 for 6.5M, 0x23 for 10M crystal writedata(0x02); writedata(0x54); writecommand(0xE0); // PLL enable writedata(0x01); delay(10); writecommand(0xE0); writedata(0x03); delay(10); writecommand(0x01); // software reset delay(100); writecommand(0xE6); //PLL setting for PCLK, depends on resolution writedata(0x01); writedata(0x1F); writedata(0xFF); writecommand(0xB0); //LCD SPECIFICATION writedata(0x20); writedata(0x00); writedata(0x01); //Set HDP 479 writedata(0xDF); writedata(0x01); //Set VDP 271 writedata(0x0F); writedata(0x00); writecommand(0xB4); //HSYNC writedata(0x02); //Set HT 531 writedata(0x13); writedata(0x00); //Set HPS 8 writedata(0x08); writedata(0x2B); //Set HPW 43 writedata(0x00); //Set LPS 2 writedata(0x02); writedata(0x00); writecommand(0xB6); //VSYNC writedata(0x01); //Set VT 288 writedata(0x20); writedata(0x00); //Set VPS 4 writedata(0x04); writedata(0x0c); //Set VPW 12 writedata(0x00); //Set FPS 2 writedata(0x02); writecommand(0xBA); writedata(0x0F); //GPIO[3:0] out 1 writecommand(0xB8); writedata(0x07); //GPIO3=input, GPIO[2:0]=output writedata(0x01); //GPIO0 normal writecommand(0x36); //rotation writedata(0x2A); writecommand(0xF0); //pixel data interface writedata(0x00); //8 bit bus delay(1); writecommand(0xB8); writedata(0x0f); //GPIO is controlled by host GPIO[3:0]=output GPIO[0]=1 LCD ON GPIO[0]=1 LCD OFF writedata(0x01); //GPIO0 normal writecommand(0xBA); writedata(0x01); //GPIO[0] out 1 --- LCD display on/off control PIN writecommand(0x2A); writedata(0); writedata(0); writedata((271 & 0xFF00)>>8); writedata(271 & 0xFF); writecommand(0x2B); writedata(0); writedata(0); writedata((479 & 0xFF00)>>8); writedata(479 & 0xFF); writecommand(0x2C); writecommand(0x29); //display on writecommand(0xBE); //set PWM for B/L writedata(0x06); writedata(0xf0); writedata(0x01); writedata(0xf0); writedata(0x00); writedata(0x00); writecommand(0xd0); writedata(0x0d); writecommand(0x2C); #elif defined (SSD1963_800_DRIVER) writecommand(0xE2); //PLL multiplier, set PLL clock to 120M writedata(0x1E); //N=0x36 for 6.5M, 0x23 for 10M crystal writedata(0x02); writedata(0x54); writecommand(0xE0); // PLL enable writedata(0x01); delay(10); writecommand(0xE0); writedata(0x03); delay(10); writecommand(0x01); // software reset delay(100); writecommand(0xE6); //PLL setting for PCLK, depends on resolution writedata(0x03); writedata(0xFF); writedata(0xFF); writecommand(0xB0); //LCD SPECIFICATION writedata(0x20); writedata(0x00); writedata(0x03); //Set HDP 799 writedata(0x1F); writedata(0x01); //Set VDP 479 writedata(0xDF); writedata(0x00); writecommand(0xB4); //HSYNC writedata(0x03); //Set HT 928 writedata(0xA0); writedata(0x00); //Set HPS 46 writedata(0x2E); writedata(0x30); //Set HPW 48 writedata(0x00); //Set LPS 15 writedata(0x0F); writedata(0x00); writecommand(0xB6); //VSYNC writedata(0x02); //Set VT 525 writedata(0x0D); writedata(0x00); //Set VPS 16 writedata(0x10); writedata(0x10); //Set VPW 16 writedata(0x00); //Set FPS 8 writedata(0x08); writecommand(0xBA); writedata(0x0F); //GPIO[3:0] out 1 writecommand(0xB8); writedata(0x07); //GPIO3=input, GPIO[2:0]=output writedata(0x01); //GPIO0 normal writecommand(0x36); //rotation writedata(0x2A); writecommand(0xF0); //pixel data interface writedata(0x00); //8 bit bus delay(1); writecommand(0xB8); writedata(0x0f); //GPIO is controlled by host GPIO[3:0]=output GPIO[0]=1 LCD ON GPIO[0]=1 LCD OFF writedata(0x01); //GPIO0 normal writecommand(0xBA); writedata(0x01); //GPIO[0] out 1 --- LCD display on/off control PIN writecommand(0x2A); writedata(0); writedata(0); writedata((479 & 0xFF00)>>8); writedata(479 & 0xFF); writecommand(0x2B); writedata(0); writedata(0); writedata((799 & 0xFF00)>>8); writedata(799 & 0xFF); writecommand(0x2C); writecommand(0x29); //display on writecommand(0xBE); //set PWM for B/L writedata(0x06); writedata(0xf0); writedata(0x01); writedata(0xf0); writedata(0x00); writedata(0x00); writecommand(0xd0); writedata(0x0d); writecommand(0x2C); #elif defined (SSD1963_800ALT_DRIVER) writecommand(0xE2); //PLL multiplier, set PLL clock to 120M writedata(0x23); //N=0x36 for 6.5M, 0x23 for 10M crystal writedata(0x02); writedata(0x04); writecommand(0xE0); // PLL enable writedata(0x01); delay(10); writecommand(0xE0); writedata(0x03); delay(10); writecommand(0x01); // software reset delay(100); writecommand(0xE6); //PLL setting for PCLK, depends on resolution writedata(0x04); writedata(0x93); writedata(0xE0); writecommand(0xB0); //LCD SPECIFICATION writedata(0x00); // 0x24 writedata(0x00); writedata(0x03); //Set HDP 799 writedata(0x1F); writedata(0x01); //Set VDP 479 writedata(0xDF); writedata(0x00); writecommand(0xB4); //HSYNC writedata(0x03); //Set HT 928 writedata(0xA0); writedata(0x00); //Set HPS 46 writedata(0x2E); writedata(0x30); //Set HPW 48 writedata(0x00); //Set LPS 15 writedata(0x0F); writedata(0x00); writecommand(0xB6); //VSYNC writedata(0x02); //Set VT 525 writedata(0x0D); writedata(0x00); //Set VPS 16 writedata(0x10); writedata(0x10); //Set VPW 16 writedata(0x00); //Set FPS 8 writedata(0x08); writecommand(0xBA); writedata(0x05); //GPIO[3:0] out 1 writecommand(0xB8); writedata(0x07); //GPIO3=input, GPIO[2:0]=output writedata(0x01); //GPIO0 normal writecommand(0x36); //rotation writedata(0x22); // -- Set to 0x21 to rotate 180 degrees writecommand(0xF0); //pixel data interface writedata(0x00); //8 bit bus delay(10); writecommand(0x2A); writedata(0); writedata(0); writedata((479 & 0xFF00)>>8); writedata(479 & 0xFF); writecommand(0x2B); writedata(0); writedata(0); writedata((799 & 0xFF00)>>8); writedata(799 & 0xFF); writecommand(0x2C); writecommand(0x29); //display on writecommand(0xBE); //set PWM for B/L writedata(0x06); writedata(0xF0); writedata(0x01); writedata(0xF0); writedata(0x00); writedata(0x00); writecommand(0xD0); writedata(0x0D); writecommand(0x2C); #endif