📄 hw_hx8347.c
字号:
/******************************************************************/
/* 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 + -