⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hw_hx8347.c

📁 RK27驱动
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************/
/*   Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File	:  hw_Ili9320.c
Desc	:  Mcupanel型号的Mcu驱动
		  
Author	:  nzy
Date	: 
Notes	: 

$Log	: 
*********************************************************************/

#include "hw_include.h"


#if(LCDPANEL == MCUIF_HX8347)


//#define	LCM_HX8346	4
						//1-->FPC-8346-01(NOPA); 
						//2-->FPC-FTM280C05N(飞洋8347)
						//3-->024-17(比亚迪8346)
						//4-->FTP240C09N;MFC-S07024 V02(优美视)
						
/*---------------------------------------------------------
Name  :  Mcupanel_PowerOnInit
Desc  :  Mcupanel上电初始化
Params:  
Return:
Author:  nzy
Date  :  
-----------------------------------------------------------*/
void Mcupanel_PowerOnInit(void)
{	
    UINT32 i,j;

	delay_nops(10);
	//******************************************************************************
#if	(LCM_HX8346 == 1)
	
	Mcupanel_RegSet(0x46,0x0034);
	Mcupanel_RegSet(0x47,0x0043);
	Mcupanel_RegSet(0x48,0x0044);
	Mcupanel_RegSet(0x49,0x0027);
	Mcupanel_RegSet(0x4a,0x0000);
	Mcupanel_RegSet(0x4b,0x0077);
	Mcupanel_RegSet(0x4c,0x0005);
	Mcupanel_RegSet(0x4d,0x0033);
	Mcupanel_RegSet(0x4e,0x0032);
	Mcupanel_RegSet(0x4f,0x0036);
	Mcupanel_RegSet(0x50,0x003C);
	Mcupanel_RegSet(0x51,0x0043);
	//***********************************240x320 window setting*******************************/

	Mcupanel_RegSet(0x02,0x0000); // Column address start2
	Mcupanel_RegSet(0x03,0x0000); // Column address start1
	Mcupanel_RegSet(0x04,0x0001); // Column address end2        
	Mcupanel_RegSet(0x05,0x003f); // Column address end1
	Mcupanel_RegSet(0x06,0x0000); // Row address start2
	Mcupanel_RegSet(0x07,0x0000); // Row address start1
	Mcupanel_RegSet(0x08,0x0000); // Row address end2
	Mcupanel_RegSet(0x09,0x00ef); // Row address end1   //240*320;

	//**************************************Display Setting*************************************/

	Mcupanel_RegSet(0x01,0x0006); // IDMON=0, INVON=1, NORON=1, PTLON=0
#ifdef		LCM_ROTAT_180
	Mcupanel_RegSet(0x16,0x00a0); // MY=0, MX=0, MV=0, ML=0, BGR=0, TEON=0
#else
	Mcupanel_RegSet(0x16,0x0060);
#endif

	//Mcupanel_RegSet(0x18,0x0000); // MY=0, MX=0, MV=0, ML=0, BGR=0, TEON=0

	Mcupanel_RegSet(0x23,0x0095); // N_DC=1001 0101
	Mcupanel_RegSet(0x24,0x0095); // P_DC=1001 0101
	Mcupanel_RegSet(0x25,0x00ee); // I_DC=1111 1111

	Mcupanel_RegSet(0x28,0x0002); // N_BP=0000 0010
	Mcupanel_RegSet(0x29,0x0002); // N_FP=0000 0010
	Mcupanel_RegSet(0x2a,0x0002); // P_BP=0000 0010
	Mcupanel_RegSet(0x2b,0x0002); // P_FP=0000 0010
	Mcupanel_RegSet(0x2c,0x0002); // I_BP=0000 0010
	Mcupanel_RegSet(0x2d,0x0002); // I_FP=0000 0010
	Mcupanel_RegSet(0x3a,0x0001); // N_RTN=0000, N_NW=001
	Mcupanel_RegSet(0x3b,0x0001); // P_RTN=0000, P_NW=001
	Mcupanel_RegSet(0x3c,0x00f0); // I_RTN=1111, I_NW=000
	Mcupanel_RegSet(0x3d,0x0000); // DIV=00
	delay_nops(2);

	//*************************************Power Supply Setting***********************************
	Mcupanel_RegSet(0x19,0x007f); // OSCADJ=010000, OSD_EN=1;41
	delay_nops(10);
	//********************for the setting before power supply startup************
	//Mcupanel_RegSet(0x1d,0x0042);
	Mcupanel_RegSet(0x20,0x0080); // BT=0100;40
	Mcupanel_RegSet(0x21,0x0000);
	delay_nops(2);
	//Mcupanel_RegSet(0x21,0x0028);
	Mcupanel_RegSet(0x1d,0x0047); // VC2=100, VC1=100
	Mcupanel_RegSet(0x1e,0x0000); // VC3=000
	Mcupanel_RegSet(0x1f,0x0003); // VRH=0110
	Mcupanel_RegSet(0x44,0x0042); // VCM=101 1010,VCOMH=VREG1*0.845.20
	Mcupanel_RegSet(0x45,0x000f);// VDV=1 0001,VCOM=1.08*VREG1,0e
	delay_nops(1);

	//********************for power supply setting********************************

	Mcupanel_RegSet(0x1c,0x0004); // AP=100
	delay_nops(2);
	Mcupanel_RegSet(0x1b,0x0018); // GASENB=0, PON=1, DK=1, XDK=0, DDVDH_TRI=0, STB=0
	delay_nops(4);
	Mcupanel_RegSet(0x1b,0x0014); // GASENB=0, PON=1, DK=0, XDK=0, DDVDH_TRI=0, STB=0
	delay_nops(4);
	Mcupanel_RegSet(0x43,0x0080); // VCOMG=1
	delay_nops(1);

	//****** Display ON Setting******
	
	Mcupanel_RegSet(0x30,0x0008); // SAPS1=1000
	delay_nops(4);
	Mcupanel_RegSet(0x26,0x0004); //GON=0, DTE=0, D=01
	delay_nops(4);
	Mcupanel_RegSet(0x26,0x0024); //GON=1, DTE=0, D=01
	Mcupanel_RegSet(0x26,0x002c); //GON=1, DTE=0, D=11
	delay_nops(4);
	Mcupanel_RegSet(0x26,0x003c); //GON=1, DTE=1, D=11
	
	//Mcupanel_RegSet(0x57,0x0002);//TEST_Mode=1:into TEST mode
	//Mcupanel_RegSet(0x56,0x0005);//tune the memory timing
	//Mcupanel_RegSet(0x57,0x0000);//TEST_MODE=0,exit TEST mode
	//LcdBackLightOn();
	Mcupanel_Command(0x22);
#endif

//******************************************************************************
#if	(LCM_HX8346 == 2)

	Mcupanel_RegSet(0x0046,0x0095);
	Mcupanel_RegSet(0x0047,0x0051);
	Mcupanel_RegSet(0x0048,0x0000);
	Mcupanel_RegSet(0x0049,0x0036);
	Mcupanel_RegSet(0x004A,0x0011);
	Mcupanel_RegSet(0x004B,0x0066);
	Mcupanel_RegSet(0x004C,0x0014);
	Mcupanel_RegSet(0x004D,0x0077);
	Mcupanel_RegSet(0x004E,0x0013);
	Mcupanel_RegSet(0x004F,0x004C);
	Mcupanel_RegSet(0x0050,0x0046);
	Mcupanel_RegSet(0x0051,0x0046);
		//240x320 window setting
	Mcupanel_RegSet(0x0002,0x0000); // Column address start2
	Mcupanel_RegSet(0x0003,0x0000); // Column address start1
	Mcupanel_RegSet(0x0004,0x0001); // Column address end2
	Mcupanel_RegSet(0x0005,0x003F); // Column address end1
	Mcupanel_RegSet(0x0006,0x0000); // Row address start2
	Mcupanel_RegSet(0x0007,0x0000); // Row address start1
	Mcupanel_RegSet(0x0008,0x0000); // Row address end2
	Mcupanel_RegSet(0x0009,0x00EF); // Row address end1
		// Display Setting
	Mcupanel_RegSet(0x0001,0x0006); // IDMON=0, INVON=1, NORON=1, PTLON=0
		
#ifdef		LCM_ROTAT_180
	Mcupanel_RegSet(0x0016,0x0068); // MY=0, MX=0, MV=0, ML=0, BGR=0, TEON=0
#else
	Mcupanel_RegSet(0x0016,0x00a8);
#endif
	Mcupanel_RegSet(0x0023,0x0095); // N_DC=1001 0101
	Mcupanel_RegSet(0x0024,0x0095); // P_DC=1001 0101
	Mcupanel_RegSet(0x0025,0x00FF); // I_DC=1111 1111
	Mcupanel_RegSet(0x0027,0x0006); // N_BP=0000 0110
	Mcupanel_RegSet(0x0028,0x0006); // N_FP=0000 0110
	Mcupanel_RegSet(0x0029,0x0006); // P_BP=0000 0110
	Mcupanel_RegSet(0x002A,0x0006); // P_FP=0000 0110
	Mcupanel_RegSet(0x002C,0x0006); // I_BP=0000 0110
	Mcupanel_RegSet(0x002D,0x0006); // I_FP=0000 0110
	Mcupanel_RegSet(0x003A,0x0001); // N_RTN=0000, N_NW=001
	Mcupanel_RegSet(0x003B,0x0001); // P_RTN=0000, P_NW=001
	Mcupanel_RegSet(0x003C,0x00F0); // I_RTN=1111, I_NW=000
	Mcupanel_RegSet(0x003D,0x0000); // DIV=00
	delay_nops(20);
	Mcupanel_RegSet(0x0035,0x0038); // EQS=38h
	Mcupanel_RegSet(0x0036,0x0078); // EQP=78h
	Mcupanel_RegSet(0x003E,0x0038); // SON=38h
	Mcupanel_RegSet(0x0040,0x000F); // GDON=0Fh
	Mcupanel_RegSet(0x0041,0x00F0); // GDOFF
		// Power Supply Setting
	Mcupanel_RegSet(0x0019,0x0049); // OSCADJ=10 0000, OSD_EN=1 //60Hz
	Mcupanel_RegSet(0x0093,0x000C); // RADJ=1100
	delay_nops(10);
	Mcupanel_RegSet(0x0020,0x0040); // BT=0100
	Mcupanel_RegSet(0x001D,0x0007); // VC1=111
	Mcupanel_RegSet(0x001E,0x0000); // VC3=000
	Mcupanel_RegSet(0x001F,0x0004); // VRH=0100
		// VCOM Setting for CMO 2.8” Panel
	Mcupanel_RegSet(0x0044,0x0049); // VCM=101 0000
	Mcupanel_RegSet(0x0045,0x0012); // VDV=1 0001
	delay_nops(10);
	Mcupanel_RegSet(0x001C,0x0004); // AP=100
	delay_nops(20);
	Mcupanel_RegSet(0x001B,0x0018); // GASENB=0, PON=1, DK=1, XDK=0, DDVDH_TRI=0, STB=0
	delay_nops(40);
	Mcupanel_RegSet(0x001B,0x0010); // GASENB=0, PON=1, DK=0, XDK=0, DDVDH_TRI=0, STB=0
	delay_nops(40);
	Mcupanel_RegSet(0x0043,0x0080); //Set VCOMG=1
	delay_nops(100);
		// Display ON Setting
	Mcupanel_RegSet(0x0090,0x007F); // SAP=0111 1111
	Mcupanel_RegSet(0x0026,0x0004); //GON=0, DTE=0, D=01
	delay_nops(40);
	Mcupanel_RegSet(0x0026,0x0024); //GON=1, DTE=0, D=01
	Mcupanel_RegSet(0x0026,0x002C); //GON=1, DTE=0, D=11
	delay_nops(40);
	Mcupanel_RegSet(0x0026,0x003C); //GON=1, DTE=1, D=11
		// Set internal VDDD voltage
	Mcupanel_RegSet(0x0057,0x0002); //Test_Mode Enable
	Mcupanel_RegSet(0x0055,0x0000); //VDC_SEL=000, VDDD=1.95V
	Mcupanel_RegSet(0x00FE,0x005A); //For ESD protection
	Mcupanel_RegSet(0x0095,0x0001); // Set Display clock and Pumping clock to synchronize
	Mcupanel_RegSet(0x0057,0x0000); // Test_Mode Disable
	delay_nops(10);
	Mcupanel_Command(0x22);
#endif

//******************************************************************************
#if	(LCM_HX8346 == 3)

	Mcupanel_RegSet(0x46,0x0034);
	Mcupanel_RegSet(0x47,0x0043);
	Mcupanel_RegSet(0x48,0x0044);
	Mcupanel_RegSet(0x49,0x0027);
	Mcupanel_RegSet(0x4a,0x0000);
	Mcupanel_RegSet(0x4b,0x0077);
	Mcupanel_RegSet(0x4c,0x0005);
	Mcupanel_RegSet(0x4d,0x0033);
	Mcupanel_RegSet(0x4e,0x0032);
	Mcupanel_RegSet(0x4f,0x0036);
	Mcupanel_RegSet(0x50,0x003C);
	Mcupanel_RegSet(0x51,0x0043);
		//240x320 window setting
	Mcupanel_RegSet(0x0002,0x0000); // Column address start2
	Mcupanel_RegSet(0x0003,0x0000); // Column address start1
	Mcupanel_RegSet(0x0004,0x0001); // Column address end2
	Mcupanel_RegSet(0x0005,0x003F); // Column address end1
	Mcupanel_RegSet(0x0006,0x0000); // Row address start2
	Mcupanel_RegSet(0x0007,0x0000); // Row address start1
	Mcupanel_RegSet(0x0008,0x0000); // Row address end2
	Mcupanel_RegSet(0x0009,0x00EF); // Row address end1
		// Display Setting
	Mcupanel_RegSet(0x0001,0x0006); // IDMON=0, INVON=1, NORON=1, PTLON=0
		
#ifdef		LCM_ROTAT_180
	Mcupanel_RegSet(0x0016,0x0068); // MY=0, MX=0, MV=0, ML=0, BGR=0, TEON=0
#else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -