/******************************************************************************* E45RA-I-MW450-C MIPI DSI TFT Display Driver File Created on June 27, 2023, 9:25 AM @Company Focus LCDs @Author KLO @File Name E45RA-I-MW450-C-init.txt @Summary This is the driver source file for the TFT Display Display: 4.5" TFT LCD 480 x 854 Controller Chip: ILI9806E Interface: MIPI DSI 2-Lane MCU/MPU: Generic @Version Version 1.0.0 (Semantic Versioning 2.0.0) @Description This source file provides initialization for the Focus LCDs E45RA-I-MW450-C TFT display. *******************************************************************************/ /******************************************************************************* (c) 2023 Focus LCDs and its subsidiaries. You may use this software and any derivatives exclusively with Focus LCDs products. THIS SOFTWARE IS SUPPLIED BY FOCUS LCDS "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH FOCUS LCDS PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. IN NO EVENT WILL FOCUS LCDS BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF FOCUS LCDS HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, FOCUS LCDS' TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO FOCUS LCDS FOR THIS SOFTWARE. FOCUS LCDS PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE TERMS. *******************************************************************************/ NOTE:VCI=3.3V,IOVCC=1.8V Display resolution:480*854 params->vertical_sync_active=4 params->vertical_backporch=30 params->vertical_frontporch=20 params->horizontal_sync_active=4 params->horizontal_backporch=30 params->horizontal_frontporch=18 params->RGB.PLL_CLOCK=(29)M Frame Rate=60HZ /**********************LCD***************************/ void initi(void) { res=1; delay(1); res=0; delay(10); res=1; delay(200); //***************************************************************//LCD SETING //****************************** Page 1 Command ******************************// //****************************************************************************// write_command(0xFF); write_data(0xFF); write_data(0x98); write_data(0x06); write_data(0x04); write_data(0x01); // Change to Page 1 write_command(0x08); write_data(0x10); // output SDA write_command(0x21); write_data(0x01); // DE = 1 Active write_command(0x30); write_data(0x01); // 480 X 854 write_command(0x31); write_data(0x00); // 2-dot Inversion write_command(0x40); write_data(0x18); // DDVDH/DDVDL write_command(0x41); write_data(0x33); // DDVDH/DDVDL CP write_command(0x42); write_data(0x03); // VGH/VGL write_command(0x43); write_data(0x09); // VGH CP write_command(0x44); write_data(0x07); // VGL CP write_command(0x50); write_data(0x88); // VGMP write_command(0x51); write_data(0x88); // VGMN write_command(0x52); write_data(0x00); //Flicker write_command(0x53); write_data(0x51); //Flicker 41 write_command(0x55); write_data(0x51); //Flicker 41 write_command(0x60); write_data(0x07); // SDTI write_command(0x61); write_data(0x00); // CRTI write_command(0x62); write_data(0x08); // EQTI write_command(0x63); write_data(0x00); // PCTI //++++++++++++++++++ Gamma Setting ++++++++++++++++++// write_command(0xA0); write_data(0x00); // Gamma 0 write_command(0xA1); write_data(0x0B); // Gamma 4 write_command(0xA2); write_data(0x12); // Gamma 8 write_command(0xA3); write_data(0x0D); // Gamma 16 write_command(0xA4); write_data(0x04); // Gamma 24 write_command(0xA5); write_data(0x09); // Gamma 52 write_command(0xA6); write_data(0x06); // Gamma 80 write_command(0xA7); write_data(0x03); // Gamma 108 write_command(0xA8); write_data(0x09); // Gamma 147 write_command(0xA9); write_data(0x0C); // Gamma 175 write_command(0xAA); write_data(0x14); // Gamma 203 write_command(0xAB); write_data(0x09); // Gamma 231 write_command(0xAC); write_data(0x11); // Gamma 239 write_command(0xAD); write_data(0x17); // Gamma 247 write_command(0xAE); write_data(0x0D); // Gamma 251 write_command(0xAF); write_data(0x00); // Gamma 255 ///==============Nagitive write_command(0xC0); write_data(0x00); // Gamma 0 write_command(0xC1); write_data(0x0C); // Gamma 4 write_command(0xC2); write_data(0x12); // Gamma 8 write_command(0xC3); write_data(0x0D); // Gamma 16 write_command(0xC4); write_data(0x08); // Gamma 24 write_command(0xC5); write_data(0x08); // Gamma 52 write_command(0xC6); write_data(0x06); // Gamma 80 write_command(0xC7); write_data(0x04); // Gamma 108 write_command(0xC8); write_data(0x08); // Gamma 147 write_command(0xC9); write_data(0x0C); // Gamma 175 write_command(0xCA); write_data(0x12); // Gamma 203 write_command(0xCB); write_data(0x06); // Gamma 231 write_command(0xCC); write_data(0x0C); // Gamma 239 write_command(0xCD); write_data(0x18); // Gamma 247 write_command(0xCE); write_data(0x0D); // Gamma 251 write_command(0xCF); write_data(0x00); // Gamma 255 //****************************************************************************// //****************************** Page 6 Command ******************************// //****************************************************************************// write_command(0xFF); write_data(0xFF); write_data(0x98); write_data(0x06); write_data(0x04); write_data(0x06); // Change to Page 6 write_command(0x00); write_data(0x21); write_command(0x01); write_data(0x09); write_command(0x02); write_data(0x00); write_command(0x03); write_data(0x00); write_command(0x04); write_data(0x01); write_command(0x05); write_data(0x01); write_command(0x06); write_data(0x80); write_command(0x07); write_data(0x05); write_command(0x08); write_data(0x02); write_command(0x09); write_data(0x80); write_command(0x0A); write_data(0x00); write_command(0x0B); write_data(0x00); write_command(0x0C); write_data(0x0A); write_command(0x0D); write_data(0x0A); write_command(0x0E); write_data(0x00); write_command(0x0F); write_data(0x00); write_command(0x10); write_data(0xE0); write_command(0x11); write_data(0xE4); write_command(0x12); write_data(0x04); write_command(0x13); write_data(0x00); write_command(0x14); write_data(0x00); write_command(0x15); write_data(0xC0); write_command(0x16); write_data(0x08); write_command(0x17); write_data(0x00); write_command(0x18); write_data(0x00); write_command(0x19); write_data(0x00); write_command(0x1A); write_data(0x00); write_command(0x1B); write_data(0x00); write_command(0x1C); write_data(0x00); write_command(0x1D); write_data(0x00); write_command(0x20); write_data(0x01); write_command(0x21); write_data(0x23); write_command(0x22); write_data(0x45); write_command(0x23); write_data(0x67); write_command(0x24); write_data(0x01); write_command(0x2); write_data(0x23); write_command(0x26); write_data(0x45); write_command(0x27); write_data(0x67); write_command(0x30); write_data(0x01); write_command(0x31); write_data(0x11); write_command(0x32); write_data(0x00); write_command(0x33); write_data(0xEE); write_command(0x34); write_data(0xFF); write_command(0x35); write_data(0xBB); write_command(0x36); write_data(0xCA); write_command(0x37); write_data(0xDD); write_command(0x38); write_data(0xAC); write_command(0x39); write_data(0x76); write_command(0x3A); write_data(0x67); write_command(0x3B); write_data(0x22); write_command(0x3C); write_data(0x22); write_command(0x3D); write_data(0x22); write_command(0x3E); write_data(0x22); write_command(0x3F); write_data(0x22); write_command(0x40); write_data(0x22); write_command(0x53); write_data(0x10); //53=10=VGLO=VGL,53=12=VGLO=VGL_REG write_command(0x54); write_data(0x13); write_command(0xFF); write_data(0xFF); write_data(0x98); write_data(0x06); write_data(0x04); write_data(0x07); // Change to Page 7 write_command(0x06); write_data(0x11); write_command(0x17); write_data(0x22); //17=22=VGLO=VGL,17=32=VGLO=VGL_REG write_command(0xE1); write_data(0x79); write_command(0xB3); write_data(0x10); write_command(0x02); write_data(0x77); write_command(0x26); write_data(0xB2); //****************************************************************************// write_command(0xFF); write_data(0xFF); write_data(0x98); write_data(0x06); write_data(0x04); write_data(0x00); // Change to Page 0 write_command(0x36); write_data(0x00); write_command(0x11); //OUT SLEEP delay_ms(120); write_command(0x29); } //******************************************* void EnterSleep (void) { write_command(0x28); delay(10); write_command(0x10); } //********************************************************* void ExitSleep (void) { write_command(0x11); delay(120); write_command(0x29); }