This is the final version of Mini Gateway for Automation and Security desgined for Renesas GR Peach Design Contest

Dependencies:   GR-PEACH_video GraphicsFramework HTTPServer R_BSP mbed-rpc mbed-rtos Socket lwip-eth lwip-sys lwip FATFileSystem

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
vipinranka
Date:
Wed Jan 11 11:41:30 2017 +0000
Revision:
12:9a20164dcc47
This is the final version MGAS Project for Renesas GR Peach Design Contest

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vipinranka 12:9a20164dcc47 1 /* mbed UniGraphic library - Device specific class
vipinranka 12:9a20164dcc47 2 * Copyright (c) 2015 Giuliano Dianda
vipinranka 12:9a20164dcc47 3 * Released under the MIT License: http://mbed.org/license/mit
vipinranka 12:9a20164dcc47 4 */
vipinranka 12:9a20164dcc47 5 #include "Protocols.h"
vipinranka 12:9a20164dcc47 6 #include "S6D04D1.h"
vipinranka 12:9a20164dcc47 7
vipinranka 12:9a20164dcc47 8 //////////////////////////////////////////////////////////////////////////////////
vipinranka 12:9a20164dcc47 9 // display settings ///////////////////////////////////////////////////////
vipinranka 12:9a20164dcc47 10 /////////////////////////////////////////////////////////////////////////
vipinranka 12:9a20164dcc47 11
vipinranka 12:9a20164dcc47 12 // put in constructor
vipinranka 12:9a20164dcc47 13 //#define LCDSIZE_X 240 // display X pixels, TFTs are usually portrait view
vipinranka 12:9a20164dcc47 14 //#define LCDSIZE_Y 400 // display Y pixels
vipinranka 12:9a20164dcc47 15
vipinranka 12:9a20164dcc47 16
vipinranka 12:9a20164dcc47 17
vipinranka 12:9a20164dcc47 18 S6D04D1::S6D04D1(proto_t displayproto, PortName port, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const char *name , unsigned int LCDSIZE_X, unsigned int LCDSIZE_Y)
vipinranka 12:9a20164dcc47 19 : TFT(displayproto, port, CS, reset, DC, WR, RD, LCDSIZE_X, LCDSIZE_Y, name)
vipinranka 12:9a20164dcc47 20 {
vipinranka 12:9a20164dcc47 21 hw_reset();
vipinranka 12:9a20164dcc47 22 BusEnable(true);
vipinranka 12:9a20164dcc47 23 identify(); // will collect tftID, set mipistd flag
vipinranka 12:9a20164dcc47 24 init();
vipinranka 12:9a20164dcc47 25 auto_gram_read_format();// try to get read gram pixel format, could be 16bit or 18bit, RGB or BGR. Will set flags accordingly
vipinranka 12:9a20164dcc47 26 // scrollbugfix=1; // when scrolling 1 line, the last line disappears, set to 1 to fix it, for ili9481 is set automatically in identify()
vipinranka 12:9a20164dcc47 27 set_orientation(0);
vipinranka 12:9a20164dcc47 28 FastWindow(true); // most but not all controllers support this, even if datasheet tells they should. Give a try
vipinranka 12:9a20164dcc47 29 cls();
vipinranka 12:9a20164dcc47 30 locate(0,0);
vipinranka 12:9a20164dcc47 31 }
vipinranka 12:9a20164dcc47 32 S6D04D1::S6D04D1(proto_t displayproto, PinName* buspins, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const char *name , unsigned int LCDSIZE_X, unsigned int LCDSIZE_Y)
vipinranka 12:9a20164dcc47 33 : TFT(displayproto, buspins, CS, reset, DC, WR, RD, LCDSIZE_X, LCDSIZE_Y, name)
vipinranka 12:9a20164dcc47 34 {
vipinranka 12:9a20164dcc47 35 hw_reset();
vipinranka 12:9a20164dcc47 36 BusEnable(true);
vipinranka 12:9a20164dcc47 37 identify(); // will collect tftID, set mipistd flag
vipinranka 12:9a20164dcc47 38 init();
vipinranka 12:9a20164dcc47 39 auto_gram_read_format();// try to get read gram pixel format, could be 16bit or 18bit, RGB or BGR. Will set flags accordingly
vipinranka 12:9a20164dcc47 40 // scrollbugfix=1; // when scrolling 1 line, the last line disappears, set to 1 to fix it, for ili9481 is set automatically in identify()
vipinranka 12:9a20164dcc47 41 set_orientation(0);
vipinranka 12:9a20164dcc47 42 FastWindow(true); // most but not all controllers support this, even if datasheet tells they should. Give a try
vipinranka 12:9a20164dcc47 43 cls();
vipinranka 12:9a20164dcc47 44 locate(0,0);
vipinranka 12:9a20164dcc47 45 }
vipinranka 12:9a20164dcc47 46 S6D04D1::S6D04D1(proto_t displayproto, int Hz, PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC, const char *name , unsigned int LCDSIZE_X , unsigned int LCDSIZE_Y )
vipinranka 12:9a20164dcc47 47 : TFT(displayproto, Hz, mosi, miso, sclk, CS, reset, DC, LCDSIZE_X, LCDSIZE_Y, name)
vipinranka 12:9a20164dcc47 48 {
vipinranka 12:9a20164dcc47 49 hw_reset(); //TFT class forwards to Protocol class
vipinranka 12:9a20164dcc47 50 BusEnable(true); //TFT class forwards to Protocol class
vipinranka 12:9a20164dcc47 51 identify(); // will collect tftID and set mipistd flag
vipinranka 12:9a20164dcc47 52 init(); // per display custom init cmd sequence, implemented here
vipinranka 12:9a20164dcc47 53 auto_gram_read_format();// try to get read gram pixel format, could be 16bit or 18bit, RGB or BGR. Will set flags accordingly
vipinranka 12:9a20164dcc47 54 // scrollbugfix=1; // when scrolling 1 line, the last line disappears, set to 1 to fix it, for ili9481 is set automatically in identify()
vipinranka 12:9a20164dcc47 55 set_orientation(0); //TFT class does for MIPI standard and some ILIxxx
vipinranka 12:9a20164dcc47 56 FastWindow(true); // most but not all controllers support this, even if datasheet tells they should. Give a try
vipinranka 12:9a20164dcc47 57 cls();
vipinranka 12:9a20164dcc47 58 locate(0,0);
vipinranka 12:9a20164dcc47 59 }
vipinranka 12:9a20164dcc47 60 // reset and init the lcd controller
vipinranka 12:9a20164dcc47 61 void S6D04D1::init()
vipinranka 12:9a20164dcc47 62 {
vipinranka 12:9a20164dcc47 63 /**********************************************
vipinranka 12:9a20164dcc47 64 TFT1P CODE Initialization of Truly
vipinranka 12:9a20164dcc47 65
vipinranka 12:9a20164dcc47 66 ************************************************
vipinranka 12:9a20164dcc47 67 Panel:3.0 240400
vipinranka 12:9a20164dcc47 68 Driver IC:S6D04D1X21-BAF8
vipinranka 12:9a20164dcc47 69
vipinranka 12:9a20164dcc47 70 ************************************************/
vipinranka 12:9a20164dcc47 71 wr_cmd8(0xE0);
vipinranka 12:9a20164dcc47 72 wr_data8(0x01);
vipinranka 12:9a20164dcc47 73
vipinranka 12:9a20164dcc47 74 wr_cmd8(0x11);
vipinranka 12:9a20164dcc47 75 wait_ms(150);
vipinranka 12:9a20164dcc47 76
vipinranka 12:9a20164dcc47 77 wr_cmd8(0xF3);
vipinranka 12:9a20164dcc47 78 wr_data8(0x01);
vipinranka 12:9a20164dcc47 79 wr_data8(0x00);
vipinranka 12:9a20164dcc47 80 wr_data8(0x00);
vipinranka 12:9a20164dcc47 81 wr_data8(0x0C);//Do not set any higher VCI1 level than VCI -0.15V. 0C 0A
vipinranka 12:9a20164dcc47 82 wr_data8(0x03);//VGH和VGL 01 02VGH=6VCI1,VGL=-4VCI1.
vipinranka 12:9a20164dcc47 83 wr_data8(0x75);
vipinranka 12:9a20164dcc47 84 wr_data8(0x75);
vipinranka 12:9a20164dcc47 85 wr_data8(0x30);
vipinranka 12:9a20164dcc47 86
vipinranka 12:9a20164dcc47 87 wr_cmd8(0xF4);
vipinranka 12:9a20164dcc47 88 wr_data8(0x4C);
vipinranka 12:9a20164dcc47 89 wr_data8(0x4C);
vipinranka 12:9a20164dcc47 90 wr_data8(0x44);
vipinranka 12:9a20164dcc47 91 wr_data8(0x44);
vipinranka 12:9a20164dcc47 92 wr_data8(0x22);
vipinranka 12:9a20164dcc47 93
vipinranka 12:9a20164dcc47 94 wr_cmd8(0xF5);
vipinranka 12:9a20164dcc47 95 wr_data8(0x10);
vipinranka 12:9a20164dcc47 96 wr_data8(0x22);
vipinranka 12:9a20164dcc47 97 wr_data8(0x05);
vipinranka 12:9a20164dcc47 98 wr_data8(0xF0);
vipinranka 12:9a20164dcc47 99 wr_data8(0x70);
vipinranka 12:9a20164dcc47 100 wr_data8(0x1F);
vipinranka 12:9a20164dcc47 101 wait_ms(30);
vipinranka 12:9a20164dcc47 102
vipinranka 12:9a20164dcc47 103 wr_cmd8(0xF3);
vipinranka 12:9a20164dcc47 104 wr_data8(0x03);
vipinranka 12:9a20164dcc47 105 wait_ms(30);
vipinranka 12:9a20164dcc47 106 wr_cmd8(0xF3);
vipinranka 12:9a20164dcc47 107 wr_data8(0x07);
vipinranka 12:9a20164dcc47 108 wait_ms(30);
vipinranka 12:9a20164dcc47 109 wr_cmd8(0xF3);
vipinranka 12:9a20164dcc47 110 wr_data8(0x0F);
vipinranka 12:9a20164dcc47 111 wait_ms(30);
vipinranka 12:9a20164dcc47 112 wr_cmd8(0xF3);
vipinranka 12:9a20164dcc47 113 wr_data8(0x1F);
vipinranka 12:9a20164dcc47 114 wait_ms(30);
vipinranka 12:9a20164dcc47 115 wr_cmd8(0xF3);
vipinranka 12:9a20164dcc47 116 wr_data8(0x7F);
vipinranka 12:9a20164dcc47 117 wait_ms(30);
vipinranka 12:9a20164dcc47 118
vipinranka 12:9a20164dcc47 119
vipinranka 12:9a20164dcc47 120 wr_cmd8(0xF7);
vipinranka 12:9a20164dcc47 121 wr_data8(0x80);
vipinranka 12:9a20164dcc47 122 wr_data8(0x00);
vipinranka 12:9a20164dcc47 123 wr_data8(0x00);
vipinranka 12:9a20164dcc47 124 wr_data8(0x05);
vipinranka 12:9a20164dcc47 125 wr_data8(0x0D);
vipinranka 12:9a20164dcc47 126 wr_data8(0x1F);
vipinranka 12:9a20164dcc47 127 wr_data8(0x26);
vipinranka 12:9a20164dcc47 128 wr_data8(0x2D);
vipinranka 12:9a20164dcc47 129 wr_data8(0x14);
vipinranka 12:9a20164dcc47 130 wr_data8(0x15);
vipinranka 12:9a20164dcc47 131 wr_data8(0x26);
vipinranka 12:9a20164dcc47 132 wr_data8(0x20);
vipinranka 12:9a20164dcc47 133 wr_data8(0x01);
vipinranka 12:9a20164dcc47 134 wr_data8(0x22);
vipinranka 12:9a20164dcc47 135 wr_data8(0x22);
vipinranka 12:9a20164dcc47 136
vipinranka 12:9a20164dcc47 137 wr_cmd8(0xF8);
vipinranka 12:9a20164dcc47 138 wr_data8(0x80);
vipinranka 12:9a20164dcc47 139 wr_data8(0x00);
vipinranka 12:9a20164dcc47 140 wr_data8(0x00);
vipinranka 12:9a20164dcc47 141 wr_data8(0x00);
vipinranka 12:9a20164dcc47 142 wr_data8(0x07);
vipinranka 12:9a20164dcc47 143 wr_data8(0x1E);
vipinranka 12:9a20164dcc47 144 wr_data8(0x2A);
vipinranka 12:9a20164dcc47 145 wr_data8(0x32);
vipinranka 12:9a20164dcc47 146 wr_data8(0x10);
vipinranka 12:9a20164dcc47 147 wr_data8(0x16);
vipinranka 12:9a20164dcc47 148 wr_data8(0x36);
vipinranka 12:9a20164dcc47 149 wr_data8(0x3C);
vipinranka 12:9a20164dcc47 150 wr_data8(0x3B);
vipinranka 12:9a20164dcc47 151 wr_data8(0x22);
vipinranka 12:9a20164dcc47 152 wr_data8(0x22);
vipinranka 12:9a20164dcc47 153
vipinranka 12:9a20164dcc47 154 wr_cmd8(0xF9);
vipinranka 12:9a20164dcc47 155 wr_data8(0x80);
vipinranka 12:9a20164dcc47 156 wr_data8(0x00);
vipinranka 12:9a20164dcc47 157 wr_data8(0x00);
vipinranka 12:9a20164dcc47 158 wr_data8(0x05);
vipinranka 12:9a20164dcc47 159 wr_data8(0x0D);
vipinranka 12:9a20164dcc47 160 wr_data8(0x1F);
vipinranka 12:9a20164dcc47 161 wr_data8(0x26);
vipinranka 12:9a20164dcc47 162 wr_data8(0x2D);
vipinranka 12:9a20164dcc47 163 wr_data8(0x14);
vipinranka 12:9a20164dcc47 164 wr_data8(0x15);
vipinranka 12:9a20164dcc47 165 wr_data8(0x26);
vipinranka 12:9a20164dcc47 166 wr_data8(0x20);
vipinranka 12:9a20164dcc47 167 wr_data8(0x01);
vipinranka 12:9a20164dcc47 168 wr_data8(0x22);
vipinranka 12:9a20164dcc47 169 wr_data8(0x22);
vipinranka 12:9a20164dcc47 170
vipinranka 12:9a20164dcc47 171
vipinranka 12:9a20164dcc47 172 wr_cmd8(0xFA);
vipinranka 12:9a20164dcc47 173 wr_data8(0x80);
vipinranka 12:9a20164dcc47 174 wr_data8(0x00);
vipinranka 12:9a20164dcc47 175 wr_data8(0x00);
vipinranka 12:9a20164dcc47 176 wr_data8(0x00);
vipinranka 12:9a20164dcc47 177 wr_data8(0x07);
vipinranka 12:9a20164dcc47 178 wr_data8(0x1E);
vipinranka 12:9a20164dcc47 179 wr_data8(0x2A);
vipinranka 12:9a20164dcc47 180 wr_data8(0x32);
vipinranka 12:9a20164dcc47 181 wr_data8(0x10);
vipinranka 12:9a20164dcc47 182 wr_data8(0x16);
vipinranka 12:9a20164dcc47 183 wr_data8(0x36);
vipinranka 12:9a20164dcc47 184 wr_data8(0x3C);
vipinranka 12:9a20164dcc47 185 wr_data8(0x3B);
vipinranka 12:9a20164dcc47 186 wr_data8(0x22);
vipinranka 12:9a20164dcc47 187 wr_data8(0x22);
vipinranka 12:9a20164dcc47 188
vipinranka 12:9a20164dcc47 189
vipinranka 12:9a20164dcc47 190 wr_cmd8(0xFB);
vipinranka 12:9a20164dcc47 191 wr_data8(0x80);
vipinranka 12:9a20164dcc47 192 wr_data8(0x00);
vipinranka 12:9a20164dcc47 193 wr_data8(0x00);
vipinranka 12:9a20164dcc47 194 wr_data8(0x05);
vipinranka 12:9a20164dcc47 195 wr_data8(0x0D);
vipinranka 12:9a20164dcc47 196 wr_data8(0x1F);
vipinranka 12:9a20164dcc47 197 wr_data8(0x26);
vipinranka 12:9a20164dcc47 198 wr_data8(0x2D);
vipinranka 12:9a20164dcc47 199 wr_data8(0x14);
vipinranka 12:9a20164dcc47 200 wr_data8(0x15);
vipinranka 12:9a20164dcc47 201 wr_data8(0x26);
vipinranka 12:9a20164dcc47 202 wr_data8(0x20);
vipinranka 12:9a20164dcc47 203 wr_data8(0x01);
vipinranka 12:9a20164dcc47 204 wr_data8(0x22);
vipinranka 12:9a20164dcc47 205 wr_data8(0x22);
vipinranka 12:9a20164dcc47 206
vipinranka 12:9a20164dcc47 207 wr_cmd8(0xFC);
vipinranka 12:9a20164dcc47 208 wr_data8(0x80);
vipinranka 12:9a20164dcc47 209 wr_data8(0x00);
vipinranka 12:9a20164dcc47 210 wr_data8(0x00);
vipinranka 12:9a20164dcc47 211 wr_data8(0x00);
vipinranka 12:9a20164dcc47 212 wr_data8(0x07);
vipinranka 12:9a20164dcc47 213 wr_data8(0x1E);
vipinranka 12:9a20164dcc47 214 wr_data8(0x2A);
vipinranka 12:9a20164dcc47 215 wr_data8(0x32);
vipinranka 12:9a20164dcc47 216 wr_data8(0x10);
vipinranka 12:9a20164dcc47 217 wr_data8(0x16);
vipinranka 12:9a20164dcc47 218 wr_data8(0x36);
vipinranka 12:9a20164dcc47 219 wr_data8(0x3C);
vipinranka 12:9a20164dcc47 220 wr_data8(0x3B);
vipinranka 12:9a20164dcc47 221 wr_data8(0x22);
vipinranka 12:9a20164dcc47 222 wr_data8(0x22);
vipinranka 12:9a20164dcc47 223
vipinranka 12:9a20164dcc47 224 //wr_cmd8(0x35);
vipinranka 12:9a20164dcc47 225 wr_cmd8(0x34); // tearing effect line off
vipinranka 12:9a20164dcc47 226
vipinranka 12:9a20164dcc47 227 wr_cmd8(0x36);
vipinranka 12:9a20164dcc47 228 wr_data8(0x48);//08
vipinranka 12:9a20164dcc47 229
vipinranka 12:9a20164dcc47 230 wr_cmd8(0x3A);
vipinranka 12:9a20164dcc47 231 wr_data8(0x05);
vipinranka 12:9a20164dcc47 232
vipinranka 12:9a20164dcc47 233 wr_cmd8(0xF2);
vipinranka 12:9a20164dcc47 234 wr_data8(0x17);
vipinranka 12:9a20164dcc47 235 wr_data8(0x17);
vipinranka 12:9a20164dcc47 236 wr_data8(0x0F);
vipinranka 12:9a20164dcc47 237 wr_data8(0x08);
vipinranka 12:9a20164dcc47 238 wr_data8(0x08);
vipinranka 12:9a20164dcc47 239 wr_data8(0x00);
vipinranka 12:9a20164dcc47 240 wr_data8(0x00);
vipinranka 12:9a20164dcc47 241 wr_data8(0x00);
vipinranka 12:9a20164dcc47 242 wr_data8(0x00);
vipinranka 12:9a20164dcc47 243 wr_data8(0x13);
vipinranka 12:9a20164dcc47 244 wr_data8(0x00);
vipinranka 12:9a20164dcc47 245
vipinranka 12:9a20164dcc47 246 wr_cmd8(0xF6);
vipinranka 12:9a20164dcc47 247 wr_data8(0x00);
vipinranka 12:9a20164dcc47 248 wr_data8(0x08);
vipinranka 12:9a20164dcc47 249 wr_data8(0x00);
vipinranka 12:9a20164dcc47 250 wr_data8(0x00);
vipinranka 12:9a20164dcc47 251
vipinranka 12:9a20164dcc47 252 wr_cmd8(0xFD);
vipinranka 12:9a20164dcc47 253 wr_data8(0x02);
vipinranka 12:9a20164dcc47 254 wr_data8(0x01);//240*400
vipinranka 12:9a20164dcc47 255
vipinranka 12:9a20164dcc47 256 wait_ms(20);
vipinranka 12:9a20164dcc47 257 wr_cmd8(0x29); // display on
vipinranka 12:9a20164dcc47 258 wait_ms(20);
vipinranka 12:9a20164dcc47 259
vipinranka 12:9a20164dcc47 260 }