114 lines
3.8 KiB
C
114 lines
3.8 KiB
C
|
|
// This is the command sequence that initialises the ILI9225 driver
|
|
|
|
{
|
|
/* Start Initial Sequence */
|
|
|
|
//LCD Init For 2.2inch LCD Panel with ILI9225.
|
|
writecommand(ILI9225_POWER_CTRL1);
|
|
writedata(0x00);writedata(0x00); // Set SAP,DSTB,STB
|
|
writecommand(ILI9225_POWER_CTRL2);
|
|
writedata(0x00);writedata(0x00); // Set APON,PON,AON,VCI1EN,VC
|
|
writecommand(ILI9225_POWER_CTRL3);
|
|
writedata(0x00);writedata(0x00); // Set BT,DC1,DC2,DC3
|
|
writecommand(ILI9225_POWER_CTRL4);
|
|
writedata(0x00);writedata(0x00); // Set GVDD
|
|
writecommand(ILI9225_POWER_CTRL5);
|
|
writedata(0x00);writedata(0x00); // Set VCOMH/VCOML voltage
|
|
spi_end();
|
|
delay(40);
|
|
spi_begin();
|
|
|
|
// Power-on sequence
|
|
writecommand(ILI9225_POWER_CTRL2);
|
|
writedata(0x00);writedata(0x18); // Set APON,PON,AON,VCI1EN,VC
|
|
writecommand(ILI9225_POWER_CTRL3);
|
|
writedata(0x61);writedata(0x21); // Set BT,DC1,DC2,DC3
|
|
writecommand(ILI9225_POWER_CTRL4);
|
|
writedata(0x00);writedata(0x6F); // Set GVDD /*007F 0088 */
|
|
writecommand(ILI9225_POWER_CTRL5);
|
|
writedata(0x49);writedata(0x5F); // Set VCOMH/VCOML voltage
|
|
writecommand(ILI9225_POWER_CTRL1);
|
|
writedata(0x08);writedata(0x00); // Set SAP,DSTB,STB
|
|
spi_end();
|
|
delay(10);
|
|
spi_begin();
|
|
|
|
writecommand(ILI9225_POWER_CTRL2);
|
|
writedata(0x10);writedata(0x3B); // Set APON,PON,AON,VCI1EN,VC
|
|
spi_end();
|
|
delay(50);
|
|
spi_begin();
|
|
|
|
writecommand(ILI9225_LCD_AC_DRIVING_CTRL);
|
|
writedata(0x01);writedata(0x00); // set 1 line inversion
|
|
writecommand(ILI9225_DISP_CTRL1);
|
|
writedata(0x00);writedata(0x00); // Display off
|
|
writecommand(ILI9225_BLANK_PERIOD_CTRL1);
|
|
writedata(0x08);writedata(0x08); // set the back porch and front porch
|
|
writecommand(ILI9225_FRAME_CYCLE_CTRL);
|
|
writedata(0x11);writedata(0x00); // set the clocks number per line
|
|
writecommand(ILI9225_INTERFACE_CTRL);
|
|
writedata(0x00);writedata(0x00); // CPU interface
|
|
writecommand(ILI9225_OSC_CTRL);
|
|
writedata(0x0D);writedata(0x01); // Set Osc /*0e01*/
|
|
writecommand(ILI9225_VCI_RECYCLING);
|
|
writedata(0x00);writedata(0x20); // Set VCI recycling
|
|
writecommand(ILI9225_RAM_ADDR_SET1);
|
|
writedata(0x00);writedata(0x00); // RAM Address
|
|
writecommand(ILI9225_RAM_ADDR_SET2);
|
|
writedata(0x00);writedata(0x00); // RAM Address
|
|
|
|
/* Set GRAM area */
|
|
writecommand(ILI9225_GATE_SCAN_CTRL);
|
|
writedata(0x00);writedata(0x00);
|
|
writecommand(ILI9225_VERTICAL_SCROLL_CTRL1);
|
|
writedata(0x00);writedata(0xDB);
|
|
writecommand(ILI9225_VERTICAL_SCROLL_CTRL2);
|
|
writedata(0x00);writedata(0x00);
|
|
writecommand(ILI9225_VERTICAL_SCROLL_CTRL3);
|
|
writedata(0x00);writedata(0x00);
|
|
writecommand(ILI9225_PARTIAL_DRIVING_POS1);
|
|
writedata(0x00);writedata(0xDB);
|
|
writecommand(ILI9225_PARTIAL_DRIVING_POS2);
|
|
writedata(0x00);writedata(0x00);
|
|
writecommand(ILI9225_HORIZONTAL_WINDOW_ADDR1);
|
|
writedata(0x00);writedata(0xAF);
|
|
writecommand(ILI9225_HORIZONTAL_WINDOW_ADDR2);
|
|
writedata(0x00);writedata(0x00);
|
|
writecommand(ILI9225_VERTICAL_WINDOW_ADDR1);
|
|
writedata(0x00);writedata(0xDB);
|
|
writecommand(ILI9225_VERTICAL_WINDOW_ADDR2);
|
|
writedata(0x00);writedata(0x00);
|
|
|
|
/* Set GAMMA curve */
|
|
writecommand(ILI9225_GAMMA_CTRL1);
|
|
writedata(0x00);writedata(0x00);
|
|
writecommand(ILI9225_GAMMA_CTRL2);
|
|
writedata(0x08);writedata(0x08);
|
|
writecommand(ILI9225_GAMMA_CTRL3);
|
|
writedata(0x08);writedata(0x0A);
|
|
writecommand(ILI9225_GAMMA_CTRL4);
|
|
writedata(0x00);writedata(0x0A);
|
|
writecommand(ILI9225_GAMMA_CTRL5);
|
|
writedata(0x0A);writedata(0x08);
|
|
writecommand(ILI9225_GAMMA_CTRL6);
|
|
writedata(0x08);writedata(0x08);
|
|
writecommand(ILI9225_GAMMA_CTRL7);
|
|
writedata(0x00);writedata(0x00);
|
|
writecommand(ILI9225_GAMMA_CTRL8);
|
|
writedata(0x0A);writedata(0x00);
|
|
writecommand(ILI9225_GAMMA_CTRL9);
|
|
writedata(0x07);writedata(0x10);
|
|
writecommand(ILI9225_GAMMA_CTRL10);
|
|
writedata(0x07);writedata(0x10);
|
|
|
|
writecommand(ILI9225_DISP_CTRL1);
|
|
writedata(0x00);writedata(0x12);
|
|
|
|
spi_end();
|
|
delay(50);
|
|
spi_begin();
|
|
writecommand(ILI9225_DISP_CTRL1);
|
|
writedata(0x10);writedata(0x17);
|
|
} |