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);
 | |
| } |