mirror of
https://github.com/Bodmer/TFT_eSPI.git
synced 2024-09-21 10:27:11 +00:00
555 lines
11 KiB
C
555 lines
11 KiB
C
|
|
// This is the command sequence that initialises the ILI9481 driver
|
|
//
|
|
// This setup information uses simple 8 bit SPI writecommand() and writedata() functions
|
|
//
|
|
// See ST7735_Setup.h file for an alternative format
|
|
|
|
#define ILI9481_INIT_1 // Original default
|
|
//#define ILI9481_INIT_2 // CPT29
|
|
//#define ILI9481_INIT_3 // PVI35
|
|
//#define ILI9481_INIT_4 // AUO317
|
|
//#define ILI9481_INIT_5 // CMO35 *****
|
|
//#define ILI9481_INIT_6 // RGB
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
#ifdef ILI9481_INIT_1
|
|
// Configure ILI9481 display
|
|
|
|
writecommand(TFT_SLPOUT);
|
|
delay(20);
|
|
|
|
writecommand(0xD0);
|
|
writedata(0x07);
|
|
writedata(0x42);
|
|
writedata(0x18);
|
|
|
|
writecommand(0xD1);
|
|
writedata(0x00);
|
|
writedata(0x07);
|
|
writedata(0x10);
|
|
|
|
writecommand(0xD2);
|
|
writedata(0x01);
|
|
writedata(0x02);
|
|
|
|
writecommand(0xC0);
|
|
writedata(0x10);
|
|
writedata(0x3B);
|
|
writedata(0x00);
|
|
writedata(0x02);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC5);
|
|
writedata(0x03);
|
|
|
|
writecommand(0xC8);
|
|
writedata(0x00);
|
|
writedata(0x32);
|
|
writedata(0x36);
|
|
writedata(0x45);
|
|
writedata(0x06);
|
|
writedata(0x16);
|
|
writedata(0x37);
|
|
writedata(0x75);
|
|
writedata(0x77);
|
|
writedata(0x54);
|
|
writedata(0x0C);
|
|
writedata(0x00);
|
|
|
|
writecommand(TFT_MADCTL);
|
|
writedata(0x0A);
|
|
|
|
writecommand(0x3A);
|
|
#if defined (TFT_PARALLEL_8_BIT) || defined (RPI_DISPLAY_TYPE)
|
|
writedata(0x55); // 16 bit colour interface
|
|
#else
|
|
writedata(0x66); // 18 bit colour interface
|
|
#endif
|
|
|
|
#ifndef TFT_PARALLEL_8_BIT
|
|
writecommand(TFT_INVON);
|
|
#endif
|
|
|
|
writecommand(TFT_CASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0x3F);
|
|
|
|
writecommand(TFT_PASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0xDF);
|
|
|
|
delay(120);
|
|
writecommand(TFT_DISPON);
|
|
|
|
delay(25);
|
|
// End of ILI9481 display configuration
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
#elif defined (ILI9481_INIT_2)
|
|
// Configure ILI9481 display
|
|
|
|
writecommand(TFT_SLPOUT);
|
|
delay(20);
|
|
|
|
writecommand(0xD0);
|
|
writedata(0x07);
|
|
writedata(0x41);
|
|
writedata(0x1D);
|
|
|
|
writecommand(0xD1);
|
|
writedata(0x00);
|
|
writedata(0x2B);
|
|
writedata(0x1F);
|
|
|
|
writecommand(0xD2);
|
|
writedata(0x01);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC0);
|
|
writedata(0x10);
|
|
writedata(0x3B);
|
|
writedata(0x00);
|
|
writedata(0x02);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC5);
|
|
writedata(0x03);
|
|
|
|
writecommand(0xC8);
|
|
writedata(0x00);
|
|
writedata(0x14);
|
|
writedata(0x33);
|
|
writedata(0x10);
|
|
writedata(0x00);
|
|
writedata(0x16);
|
|
writedata(0x44);
|
|
writedata(0x36);
|
|
writedata(0x77);
|
|
writedata(0x00);
|
|
writedata(0x0F);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB0);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xE4);
|
|
writedata(0xA0);
|
|
|
|
writecommand(0xF0);
|
|
writedata(0x01);
|
|
|
|
writecommand(0xF3);
|
|
writedata(0x02);
|
|
writedata(0x1A);
|
|
|
|
writecommand(TFT_MADCTL);
|
|
writedata(0x0A);
|
|
|
|
writecommand(0x3A);
|
|
#if defined (TFT_PARALLEL_8_BIT) || defined (RPI_DISPLAY_TYPE)
|
|
writedata(0x55); // 16 bit colour interface
|
|
#else
|
|
writedata(0x66); // 18 bit colour interface
|
|
#endif
|
|
|
|
#ifndef TFT_PARALLEL_8_BIT
|
|
writecommand(TFT_INVON);
|
|
#endif
|
|
|
|
writecommand(TFT_CASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0x3F);
|
|
|
|
writecommand(TFT_PASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0xDF);
|
|
|
|
delay(120);
|
|
writecommand(TFT_DISPON);
|
|
|
|
delay(25);
|
|
// End of ILI9481 display configuration
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
#elif defined (ILI9481_INIT_3)
|
|
// Configure ILI9481 display
|
|
|
|
writecommand(TFT_SLPOUT);
|
|
delay(20);
|
|
|
|
writecommand(0xD0);
|
|
writedata(0x07);
|
|
writedata(0x41);
|
|
writedata(0x1D);
|
|
|
|
writecommand(0xD1);
|
|
writedata(0x00);
|
|
writedata(0x2B);
|
|
writedata(0x1F);
|
|
|
|
writecommand(0xD2);
|
|
writedata(0x01);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC0);
|
|
writedata(0x10);
|
|
writedata(0x3B);
|
|
writedata(0x00);
|
|
writedata(0x02);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC5);
|
|
writedata(0x03);
|
|
|
|
writecommand(0xC8);
|
|
writedata(0x00);
|
|
writedata(0x14);
|
|
writedata(0x33);
|
|
writedata(0x10);
|
|
writedata(0x00);
|
|
writedata(0x16);
|
|
writedata(0x44);
|
|
writedata(0x36);
|
|
writedata(0x77);
|
|
writedata(0x00);
|
|
writedata(0x0F);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB0);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xE4);
|
|
writedata(0xA0);
|
|
|
|
writecommand(0xF0);
|
|
writedata(0x01);
|
|
|
|
writecommand(0xF3);
|
|
writedata(0x40);
|
|
writedata(0x0A);
|
|
|
|
writecommand(TFT_MADCTL);
|
|
writedata(0x0A);
|
|
|
|
writecommand(0x3A);
|
|
#if defined (TFT_PARALLEL_8_BIT) || defined (RPI_DISPLAY_TYPE)
|
|
writedata(0x55); // 16 bit colour interface
|
|
#else
|
|
writedata(0x66); // 18 bit colour interface
|
|
#endif
|
|
|
|
#ifndef TFT_PARALLEL_8_BIT
|
|
writecommand(TFT_INVON);
|
|
#endif
|
|
|
|
writecommand(TFT_CASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0x3F);
|
|
|
|
writecommand(TFT_PASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0xDF);
|
|
|
|
delay(120);
|
|
writecommand(TFT_DISPON);
|
|
|
|
delay(25);
|
|
// End of ILI9481 display configuration
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
#elif defined (ILI9481_INIT_4)
|
|
// Configure ILI9481 display
|
|
|
|
writecommand(TFT_SLPOUT);
|
|
delay(20);
|
|
|
|
writecommand(0xD0);
|
|
writedata(0x07);
|
|
writedata(0x40);
|
|
writedata(0x1D);
|
|
|
|
writecommand(0xD1);
|
|
writedata(0x00);
|
|
writedata(0x18);
|
|
writedata(0x13);
|
|
|
|
writecommand(0xD2);
|
|
writedata(0x01);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC0);
|
|
writedata(0x10);
|
|
writedata(0x3B);
|
|
writedata(0x00);
|
|
writedata(0x02);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC5);
|
|
writedata(0x03);
|
|
|
|
writecommand(0xC8);
|
|
writedata(0x00);
|
|
writedata(0x44);
|
|
writedata(0x06);
|
|
writedata(0x44);
|
|
writedata(0x0A);
|
|
writedata(0x08);
|
|
writedata(0x17);
|
|
writedata(0x33);
|
|
writedata(0x77);
|
|
writedata(0x44);
|
|
writedata(0x08);
|
|
writedata(0x0C);
|
|
|
|
writecommand(0xB0);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xE4);
|
|
writedata(0xA0);
|
|
|
|
writecommand(0xF0);
|
|
writedata(0x01);
|
|
|
|
writecommand(TFT_MADCTL);
|
|
writedata(0x0A);
|
|
|
|
writecommand(0x3A);
|
|
#if defined (TFT_PARALLEL_8_BIT) || defined (RPI_DISPLAY_TYPE)
|
|
writedata(0x55); // 16 bit colour interface
|
|
#else
|
|
writedata(0x66); // 18 bit colour interface
|
|
#endif
|
|
|
|
#ifndef TFT_PARALLEL_8_BIT
|
|
writecommand(TFT_INVON);
|
|
#endif
|
|
|
|
writecommand(TFT_CASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0x3F);
|
|
|
|
writecommand(TFT_PASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0xDF);
|
|
|
|
delay(120);
|
|
writecommand(TFT_DISPON);
|
|
|
|
delay(25);
|
|
// End of ILI9481 display configuration
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
#elif defined (ILI9481_INIT_5)
|
|
// Configure ILI9481 display
|
|
|
|
writecommand(TFT_SLPOUT);
|
|
delay(20);
|
|
|
|
writecommand(0xD0);
|
|
writedata(0x07);
|
|
writedata(0x41);
|
|
writedata(0x1D);
|
|
|
|
writecommand(0xD1);
|
|
writedata(0x00);
|
|
writedata(0x1C);
|
|
writedata(0x1F);
|
|
|
|
writecommand(0xD2);
|
|
writedata(0x01);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC0);
|
|
writedata(0x10);
|
|
writedata(0x3B);
|
|
writedata(0x00);
|
|
writedata(0x02);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC5);
|
|
writedata(0x03);
|
|
|
|
writecommand(0xC6);
|
|
writedata(0x83);
|
|
|
|
writecommand(0xC8);
|
|
writedata(0x00);
|
|
writedata(0x26);
|
|
writedata(0x21);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x1F);
|
|
writedata(0x65);
|
|
writedata(0x23);
|
|
writedata(0x77);
|
|
writedata(0x00);
|
|
writedata(0x0F);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB0);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xE4);
|
|
writedata(0xA0);
|
|
|
|
writecommand(0xF0);
|
|
writedata(0x01);
|
|
|
|
writecommand(TFT_MADCTL);
|
|
writedata(0x0A);
|
|
|
|
writecommand(0x3A);
|
|
#if defined (TFT_PARALLEL_8_BIT) || defined (RPI_DISPLAY_TYPE)
|
|
writedata(0x55); // 16 bit colour interface
|
|
#else
|
|
writedata(0x66); // 18 bit colour interface
|
|
#endif
|
|
|
|
#ifndef TFT_PARALLEL_8_BIT
|
|
writecommand(TFT_INVON);
|
|
#endif
|
|
|
|
writecommand(TFT_CASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0x3F);
|
|
|
|
writecommand(TFT_PASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0xDF);
|
|
|
|
delay(120);
|
|
writecommand(TFT_DISPON);
|
|
|
|
delay(25);
|
|
// End of ILI9481 display configuration
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
#elif defined (ILI9481_INIT_6)
|
|
// Configure ILI9481 display
|
|
|
|
writecommand(TFT_SLPOUT);
|
|
delay(20);
|
|
|
|
writecommand(0xD0);
|
|
writedata(0x07);
|
|
writedata(0x41);
|
|
writedata(0x1D);
|
|
|
|
writecommand(0xD1);
|
|
writedata(0x00);
|
|
writedata(0x2B);
|
|
writedata(0x1F);
|
|
|
|
writecommand(0xD2);
|
|
writedata(0x01);
|
|
writedata(0x11);
|
|
|
|
writecommand(0xC0);
|
|
writedata(0x10);
|
|
writedata(0x3B);
|
|
writedata(0x00);
|
|
writedata(0x02);
|
|
writedata(0x11);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xC5);
|
|
writedata(0x03);
|
|
|
|
writecommand(0xC6);
|
|
writedata(0x80);
|
|
|
|
writecommand(0xC8);
|
|
writedata(0x00);
|
|
writedata(0x14);
|
|
writedata(0x33);
|
|
writedata(0x10);
|
|
writedata(0x00);
|
|
writedata(0x16);
|
|
writedata(0x44);
|
|
writedata(0x36);
|
|
writedata(0x77);
|
|
writedata(0x00);
|
|
writedata(0x0F);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xB0);
|
|
writedata(0x00);
|
|
|
|
writecommand(0xE4);
|
|
writedata(0xA0);
|
|
|
|
writecommand(0xF0);
|
|
writedata(0x08);
|
|
|
|
writecommand(0xF3);
|
|
writedata(0x40);
|
|
writedata(0x0A);
|
|
|
|
writecommand(0xF6);
|
|
writedata(0x84);
|
|
|
|
writecommand(0xF7);
|
|
writedata(0x80);
|
|
|
|
writecommand(0xB3);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0x06);
|
|
writedata(0x30);
|
|
|
|
writecommand(0xB4);
|
|
writedata(0x00);
|
|
|
|
writecommand(0x0C);
|
|
writedata(0x00);
|
|
writedata(0x55);
|
|
|
|
writecommand(TFT_MADCTL);
|
|
writedata(0x0A);
|
|
|
|
writecommand(0x3A);
|
|
#if defined (TFT_PARALLEL_8_BIT) || defined (RPI_DISPLAY_TYPE)
|
|
writedata(0x55); // 16 bit colour interface
|
|
#else
|
|
writedata(0x66); // 18 bit colour interface
|
|
#endif
|
|
|
|
#ifndef TFT_PARALLEL_8_BIT
|
|
writecommand(TFT_INVON);
|
|
#endif
|
|
|
|
writecommand(TFT_CASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0x3F);
|
|
|
|
writecommand(TFT_PASET);
|
|
writedata(0x00);
|
|
writedata(0x00);
|
|
writedata(0x01);
|
|
writedata(0xDF);
|
|
|
|
delay(120);
|
|
writecommand(TFT_DISPON);
|
|
|
|
delay(25);
|
|
// End of ILI9481 display configuration
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
#endif |