예제 #1
0
void init_bp070wx1_lcd(void)
{
	printf("bp070wx1 lcd\n");
Delay_ms(20);


GP_COMMAD_PA(3);SPI_WriteData(0xF0);SPI_WriteData(0x5A);SPI_WriteData(0x5A);
GP_COMMAD_PA(3);SPI_WriteData(0xF1);SPI_WriteData(0x5A);SPI_WriteData(0x5A);
GP_COMMAD_PA(3);SPI_WriteData(0xFC);SPI_WriteData(0xA5);SPI_WriteData(0xA5);
GP_COMMAD_PA(2);SPI_WriteData(0xB1);SPI_WriteData(0x10);
GP_COMMAD_PA(5);SPI_WriteData(0xB2);SPI_WriteData(0x14);SPI_WriteData(0x22);SPI_WriteData(0x2F);SPI_WriteData(0x04);
GP_COMMAD_PA(3);SPI_WriteData(0xD0);SPI_WriteData(0x00);SPI_WriteData(0x10);
GP_COMMAD_PA(6);SPI_WriteData(0xF2);SPI_WriteData(0x02);SPI_WriteData(0x08);SPI_WriteData(0x08);SPI_WriteData(0x40);SPI_WriteData(0x10);
GP_COMMAD_PA(2);SPI_WriteData(0xB0);SPI_WriteData(0x03);
GP_COMMAD_PA(3);SPI_WriteData(0xFD);SPI_WriteData(0x23);SPI_WriteData(0x09);
GP_COMMAD_PA(11);SPI_WriteData(0xF3);SPI_WriteData(0x01);SPI_WriteData(0xD7);SPI_WriteData(0xE2);SPI_WriteData(0x62);SPI_WriteData(0xF4);SPI_WriteData(0xF7);SPI_WriteData(0x77);SPI_WriteData(0x3C);SPI_WriteData(0x26);SPI_WriteData(0x00);
GP_COMMAD_PA(46);SPI_WriteData(0xF4);SPI_WriteData(0x00);SPI_WriteData(0x02);SPI_WriteData(0x03);SPI_WriteData(0x26);SPI_WriteData(0x03);SPI_WriteData(0x02);SPI_WriteData(0x09);SPI_WriteData(0x00);SPI_WriteData(0x07);SPI_WriteData(0x16);SPI_WriteData(0x16);SPI_WriteData(0x03);SPI_WriteData(0x00);SPI_WriteData(0x08);SPI_WriteData(0x08);SPI_WriteData(0x03);SPI_WriteData(0x0E);SPI_WriteData(0x0F);SPI_WriteData(0x12);SPI_WriteData(0x1C);SPI_WriteData(0x1D);SPI_WriteData(0x1E);SPI_WriteData(0x0C);SPI_WriteData(0x09);SPI_WriteData(0x01);SPI_WriteData(0x04);SPI_WriteData(0x02);SPI_WriteData(0x61);SPI_WriteData(0x74);SPI_WriteData(0x75);SPI_WriteData(0x72);SPI_WriteData(0x83);SPI_WriteData(0x80);SPI_WriteData(0x80);SPI_WriteData(0xB0);SPI_WriteData(0x00);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x28);SPI_WriteData(0x04);SPI_WriteData(0x03);SPI_WriteData(0x28);SPI_WriteData(0x01);SPI_WriteData(0xD1);SPI_WriteData(0x32);
GP_COMMAD_PA(27);SPI_WriteData(0xF5);SPI_WriteData(0x8C);SPI_WriteData(0x2F);SPI_WriteData(0x2F);SPI_WriteData(0x3A);SPI_WriteData(0xAB);SPI_WriteData(0x98);SPI_WriteData(0x52);SPI_WriteData(0x0F);SPI_WriteData(0x33);SPI_WriteData(0x43);SPI_WriteData(0x04);SPI_WriteData(0x59);SPI_WriteData(0x54);SPI_WriteData(0x52);SPI_WriteData(0x05);SPI_WriteData(0x40);SPI_WriteData(0x60);SPI_WriteData(0x4E);SPI_WriteData(0x60);SPI_WriteData(0x40);SPI_WriteData(0x27);SPI_WriteData(0x26);SPI_WriteData(0x52);SPI_WriteData(0x25);SPI_WriteData(0x6D);SPI_WriteData(0x18);
GP_COMMAD_PA(9);SPI_WriteData(0xEE);SPI_WriteData(0x22);SPI_WriteData(0x00);SPI_WriteData(0x22);SPI_WriteData(0x00);SPI_WriteData(0x22);SPI_WriteData(0x00);SPI_WriteData(0x22);SPI_WriteData(0x00);
GP_COMMAD_PA(9);SPI_WriteData(0xEF);SPI_WriteData(0x12);SPI_WriteData(0x12);SPI_WriteData(0x43);SPI_WriteData(0x43);SPI_WriteData(0xA0);SPI_WriteData(0x04);SPI_WriteData(0x24);SPI_WriteData(0x81);
GP_COMMAD_PA(33);SPI_WriteData(0xF7);SPI_WriteData(0x0A);SPI_WriteData(0x0A);SPI_WriteData(0x08);SPI_WriteData(0x08);SPI_WriteData(0x0B);SPI_WriteData(0x0B);SPI_WriteData(0x09);SPI_WriteData(0x09);SPI_WriteData(0x04);SPI_WriteData(0x05);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x0A);SPI_WriteData(0x0A);SPI_WriteData(0x08);SPI_WriteData(0x08);SPI_WriteData(0x0B);SPI_WriteData(0x0B);SPI_WriteData(0x09);SPI_WriteData(0x09);SPI_WriteData(0x04);SPI_WriteData(0x05);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x01);SPI_WriteData(0x01);
GP_COMMAD_PA(4);SPI_WriteData(0xBC);SPI_WriteData(0x01);SPI_WriteData(0x4E);SPI_WriteData(0x0A);
GP_COMMAD_PA(6);SPI_WriteData(0xE1);SPI_WriteData(0x03);SPI_WriteData(0x10);SPI_WriteData(0x1C);SPI_WriteData(0xA0);SPI_WriteData(0x10);
GP_COMMAD_PA(7);SPI_WriteData(0xF6);SPI_WriteData(0x60);SPI_WriteData(0x25);SPI_WriteData(0xA6);SPI_WriteData(0x00);SPI_WriteData(0x00);SPI_WriteData(0x00);
GP_COMMAD_PA(7);SPI_WriteData(0xFE);SPI_WriteData(0x00);SPI_WriteData(0x0D);SPI_WriteData(0x03);SPI_WriteData(0x21);SPI_WriteData(0x00);SPI_WriteData(0x78);
GP_COMMAD_PA(18);SPI_WriteData(0xFA);SPI_WriteData(0x00);SPI_WriteData(0x35);SPI_WriteData(0x0A);SPI_WriteData(0x12);SPI_WriteData(0x0B);SPI_WriteData(0x11);SPI_WriteData(0x17);SPI_WriteData(0x16);SPI_WriteData(0x19);SPI_WriteData(0x21);SPI_WriteData(0x24);SPI_WriteData(0x24);SPI_WriteData(0x25);SPI_WriteData(0x25);SPI_WriteData(0x24);SPI_WriteData(0x23);SPI_WriteData(0x2B);
GP_COMMAD_PA(18);SPI_WriteData(0xFB);SPI_WriteData(0x00);SPI_WriteData(0x35);SPI_WriteData(0x0A);SPI_WriteData(0x12);SPI_WriteData(0x0A);SPI_WriteData(0x11);SPI_WriteData(0x16);SPI_WriteData(0x16);SPI_WriteData(0x19);SPI_WriteData(0x21);SPI_WriteData(0x24);SPI_WriteData(0x24);SPI_WriteData(0x25);SPI_WriteData(0x25);SPI_WriteData(0x24);SPI_WriteData(0x23);SPI_WriteData(0x2B);
Delay_ms(10);
GP_COMMAD_PA(4);SPI_WriteData(0xC3);SPI_WriteData(0x40);SPI_WriteData(0x00);SPI_WriteData(0x28);
Delay_ms(120);
GP_COMMAD_PA(2);SPI_WriteData(0x35);SPI_WriteData(0x00);
GP_COMMAD_PA(1);SPI_WriteData(0x11);
Delay_ms(200);
GP_COMMAD_PA(1);SPI_WriteData(0x29);
}
예제 #2
0
void Init_SSD2805_SPI(void)
{
	
 	SPI_Init();
	Delay_ms(10);
	Set_RST(0);// ( rGPFDAT &= (~(1<<3))) ;
	Delay_ms(50);
	Set_RST(1);//  ( rGPFDAT |= (1<<3) ) ;
	Delay_ms(10);

	
	//void SPI_2825_WrCmd(U8)
	//void SPI_2825_WrReg(U8 c,U16 value)
	//Initial code 1: SSD2825 initialization
	//RGB interface configuration 
	SPI_2825_WrReg(0xb1,(LCD_HSPW<<8)|LCD_VSPW);	//Vertical sync and horizontal sync active period 
	SPI_2825_WrReg(0xb2,(LCD_HBPD<<8)|LCD_VBPD);	//Vertical and horizontal back porch period  
	SPI_2825_WrReg(0xb3,(LCD_HFPD<<8)|LCD_VFPD);	//Vertical and horizontal front porch period 
	SPI_2825_WrReg(0xb4, LCD_XSIZE_TFT);		//Horizontal active period 
	SPI_2825_WrReg(0xb5, LCD_YSIZE_TFT);		//Vertical active period
	//SPI_2825_WrReg(0xb6, 0x2007);				//Video mode and video pixel format 888
	SPI_2825_WrReg(0xb6, 0x2004);				//Video mode and video pixel format       565	
	//MIPI lane configuration
	//00 - 1 lane mode 
	//01 - 2 lane mode 
	//10 - 3 lane mode 
	//11 - 4 lane mode 
	SPI_2825_WrReg(0xde, 0x0001);				//MIPI lane select 
	//SPI_2825_WrReg(0xDD, (LCD_HFPD<<8)|LCD_VFPD);
	//SPI_2825_WrReg(0xd6, 0x0004);				//Color order and endianess	BGR
	SPI_2825_WrReg(0xd6, 0x0005);				//Color order and endianess	RGB
	SPI_2825_WrReg(0xb9, 0x0000);				//Disable PLL
	SPI_2825_WrReg(0xc4, 0x0001);				//BTA setting
	//CABC brightness setting 
	SPI_2825_WrReg(0xe9, 0xff2f);				//CABC control
	SPI_2825_WrReg(0xeb, 0x0100);				//CABC control
	//Communicate with LCD driver through MIPI 
	SPI_2825_WrReg(0xb7, 0x0342);				//DCS mode 0342
	SPI_2825_WrReg(0xb8, 0x0000);				//VC registe
	SPI_2825_WrReg(0xbc, 0x0000);				//Packet size 
	SPI_2825_WrCmd(0x11);					//LCD driver exit sleep mode
	Delay_ms(100);	
	SPI_2825_WrCmd(0x29);					//Set LCD driver display on 
//	PLL configuration 
	//SPI_2825_WrReg(0xba, 0x8334);				//PLL setting,8028 0x34--52*24/3=416M
	SPI_2825_WrReg(0xba, 0x8322);				//PLL setting,8028    0x27--39*24/3=312M
	
	SPI_2825_WrReg(0xbb, 0x0006);				//LP clock divider
	SPI_2825_WrReg(0xb9, 0x0001);				//PLL enable 
	SPI_2825_WrReg(0xb8, 0x0000);				//VC register 
//	SPI_2825_WrReg(0xb7, 0x030B);				//Generic mode, HS video mode
	
	Delay_ms(55);
	
	//Initial code 2: LCD driver initialization
	//MIPI lane and PLL configuration
	SPI_2825_WrReg(0xb9, 0x0001);				//PLL enable 
	SPI_2825_WrReg(0xb7, 0x0150);				//Generic mode, LP mode
	SPI_2825_WrReg(0xb8, 0x0000);				//VC register
	//Send command and data through MIPI 
	//------------------------------------------------------------------------------------------	
	//----------communicate with lcd driver through mipi----------------------------------------
	
	GP_COMMAD_PA(4);
	SPI_WriteData(0xBF);
	SPI_WriteData(0x91);
	SPI_WriteData(0x61);
	SPI_WriteData(0xF2); 

	GP_COMMAD_PA(3);
	SPI_WriteData(0xB3);
	SPI_WriteData(0x00);
	SPI_WriteData(0x77);

	GP_COMMAD_PA(3);
	SPI_WriteData(0xB4);
	SPI_WriteData(0x00);
	SPI_WriteData(0x77);

	GP_COMMAD_PA(7);
	SPI_WriteData(0xB8);
	SPI_WriteData(0x00);
	SPI_WriteData(0xA0);
	SPI_WriteData(0x01);
	SPI_WriteData(0x00);
	SPI_WriteData(0xA0);
	SPI_WriteData(0x01);

	GP_COMMAD_PA(4);
	SPI_WriteData(0xBA);
	SPI_WriteData(0x3E);
	SPI_WriteData(0x23);
	SPI_WriteData(0x00);


	GP_COMMAD_PA(2);
	SPI_WriteData(0xC3);
	SPI_WriteData(0x04);


	GP_COMMAD_PA(3);
	SPI_WriteData(0xC4);
	SPI_WriteData(0x30);
	SPI_WriteData(0x6A);

	GP_COMMAD_PA(39);
	SPI_WriteData(0xC8);
	SPI_WriteData(0x7E);
	SPI_WriteData(0x68);
	SPI_WriteData(0x57);
	SPI_WriteData(0x49);
	SPI_WriteData(0x43);
	SPI_WriteData(0x33);
	SPI_WriteData(0x35);
	SPI_WriteData(0x1C);
	SPI_WriteData(0x33);
	SPI_WriteData(0x2F);
	SPI_WriteData(0x2B);
	SPI_WriteData(0x43);
	SPI_WriteData(0x2C);
	SPI_WriteData(0x31);
	SPI_WriteData(0x20);
	SPI_WriteData(0x22);
	SPI_WriteData(0x1E);
	SPI_WriteData(0x1D);
	SPI_WriteData(0x03);
	SPI_WriteData(0x7E);
	SPI_WriteData(0x68);
	SPI_WriteData(0x57);
	SPI_WriteData(0x49);
	SPI_WriteData(0x43);
	SPI_WriteData(0x33);
	SPI_WriteData(0x35);
	SPI_WriteData(0x1C);
	SPI_WriteData(0x33);
	SPI_WriteData(0x2F);
	SPI_WriteData(0x2B);
	SPI_WriteData(0x43);
	SPI_WriteData(0x2C);
	SPI_WriteData(0x31);
	SPI_WriteData(0x20);
	SPI_WriteData(0x22);
	SPI_WriteData(0x1E);
	SPI_WriteData(0x1D);
	SPI_WriteData(0x03);

	GP_COMMAD_PA(10);
	SPI_WriteData(0xC7);
	SPI_WriteData(0x00);
	SPI_WriteData(0x01);
	SPI_WriteData(0x31);
	SPI_WriteData(0x05);
	SPI_WriteData(0x65);
	SPI_WriteData(0x2B);
	SPI_WriteData(0x12);
	SPI_WriteData(0xA5);
	SPI_WriteData(0xA5);

	GP_COMMAD_PA(17);
	SPI_WriteData(0xD4);
	SPI_WriteData(0x1E);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x17);
	SPI_WriteData(0x37);
	SPI_WriteData(0x06);
	SPI_WriteData(0x04);
	SPI_WriteData(0x0A);
	SPI_WriteData(0x08);
	SPI_WriteData(0x00);
	SPI_WriteData(0x02);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);

	GP_COMMAD_PA(17);
	SPI_WriteData(0xD5);
	SPI_WriteData(0x1E);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x17);
	SPI_WriteData(0x37);
	SPI_WriteData(0x07);
	SPI_WriteData(0x05);
	SPI_WriteData(0x0B);
	SPI_WriteData(0x09);
	SPI_WriteData(0x01);
	SPI_WriteData(0x03);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);

	GP_COMMAD_PA(17);
	SPI_WriteData(0xD6);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x13);
	SPI_WriteData(0x17);
	SPI_WriteData(0x17);
	SPI_WriteData(0x07);
	SPI_WriteData(0x09);
	SPI_WriteData(0x0B);
	SPI_WriteData(0x05);
	SPI_WriteData(0x03);
	SPI_WriteData(0x01);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);

	GP_COMMAD_PA(17);
	SPI_WriteData(0xD7);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1E);
	SPI_WriteData(0x17);
	SPI_WriteData(0x17);
	SPI_WriteData(0x06);
	SPI_WriteData(0x08);
	SPI_WriteData(0x0A);
	SPI_WriteData(0x04);
	SPI_WriteData(0x02);
	SPI_WriteData(0x00);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x1F);

	GP_COMMAD_PA(21);
	SPI_WriteData(0xD8);
	SPI_WriteData(0x20);
	SPI_WriteData(0x00);
	SPI_WriteData(0x00);
	SPI_WriteData(0x30);
	SPI_WriteData(0x03);
	SPI_WriteData(0x30);
	SPI_WriteData(0x01);
	SPI_WriteData(0x02);
	SPI_WriteData(0x00);
	SPI_WriteData(0x01);
	SPI_WriteData(0x02);
	SPI_WriteData(0x06);
	SPI_WriteData(0x70);
	SPI_WriteData(0x00);
	SPI_WriteData(0x00);
	SPI_WriteData(0x73);
	SPI_WriteData(0x07);
	SPI_WriteData(0x06);
	SPI_WriteData(0x70);
	SPI_WriteData(0x08);

	GP_COMMAD_PA(21);
	SPI_WriteData(0xD9);
	SPI_WriteData(0x00);
	SPI_WriteData(0x0A);
	SPI_WriteData(0x0A);
	SPI_WriteData(0x80);
	SPI_WriteData(0x00);
	SPI_WriteData(0x00);
	SPI_WriteData(0x06);
	SPI_WriteData(0x7B);
	SPI_WriteData(0x00);
	SPI_WriteData(0x80);
	SPI_WriteData(0x00);
	SPI_WriteData(0x33);
	SPI_WriteData(0x6A);
	SPI_WriteData(0x1F);
	SPI_WriteData(0x00);
	SPI_WriteData(0x00);
	SPI_WriteData(0x00);
	SPI_WriteData(0x03);
	SPI_WriteData(0x7B);

	GP_COMMAD_PA(2);
	SPI_WriteData(0x35);
	SPI_WriteData(0x00);

	GP_COMMAD_PA(2);
	SPI_WriteData(0x11);
	SPI_WriteData(0x00);   
	Delay_us(5);

	GP_COMMAD_PA(2);
	SPI_WriteData(0x29);
	SPI_WriteData(0x00);   
	Delay_us(1);
                  
	//------------------------------------------------------------------------------------------	
	 
	//Cmd code 3: Access video mode 
	//RGB interface configuration 
	SPI_2825_WrReg(0xb1,(LCD_HSPW<<8)|LCD_VSPW);	//Vertical sync and horizontal sync active period 
	SPI_2825_WrReg(0xb2,(LCD_HBPD<<8)|LCD_VBPD);	//Vertical and horizontal back porch period  
	SPI_2825_WrReg(0xb3,(LCD_HFPD<<8)|LCD_VFPD);	//Vertical and horizontal front porch period 
	SPI_2825_WrReg(0xb4, LCD_XSIZE_TFT);		//Horizontal active period 
	SPI_2825_WrReg(0xb5, LCD_YSIZE_TFT);		//Vertical active period
	//SPI_2825_WrReg(0xb6, 0x0007);		//2007		//Video mode and video pixel format 	888
	SPI_2825_WrReg(0xb6, 0x2004);		//2007		//Video mode and video pixel format 	565
	//MIPI lane configuration
	//00 - 1 lane mode 
	//01 - 2 lane mode 
	//10 - 3 lane mode 
	//11 - 4 lane mode
	SPI_2825_WrReg(0xde, 0x0001);				//MIPI lane select, 2chl
	SPI_2825_WrReg(0xd6, 0x0005);				//Color order and endianess
	SPI_2825_WrReg(0xb9, 0x0000);				//Disable PLL
	SPI_2825_WrReg(0xc4, 0x0001);				//BTA setting
	//CABC brightness setting 
	SPI_2825_WrReg(0xe9, 0xff2f);				//CABC control
	SPI_2825_WrReg(0xeb, 0x0100);				//CABC control
	
	Delay_ms(22);
	//PLL configuration
	//FR: bit15~14
	//00 每 62.5 < OUT f  < 125 
	//01 每 126 < OUT f  < 250 
	//10 每 251 < OUT f  < 500  
	//11 每 501 < OUT f  < 1000 
	
	//MS: bit12~8
	//Fpre = fin/MS
	
	//NS: bit7~0
	//Fout = Fpre*NS
	
	SPI_2825_WrReg(0xba, 0x8324);				//PLL setting,8028    
	SPI_2825_WrReg(0xbb, 0x0006);				//LP clock divider,煦けf/ㄗ1+1ㄘ,750MHZ/2 = 
	SPI_2825_WrReg(0xb9, 0x0001);				//PLL enable 
	SPI_2825_WrReg(0xb8, 0x0000);				//VC register 
	SPI_2825_WrReg(0xb7, 0x030B | 0x0020 );		//Generic mode, HS video mode	
}