acid-drop- Hacking the planet from a LilyGo T-Deck using custom firmware |
git clone git://git.acid.vegas/acid-drop.git |
Log | Files | Refs | Archive | README | LICENSE |
ILI9481_Init.h (16716B)
1 2 // This is the command sequence that initialises the ILI9481 driver 3 // 4 // This setup information uses simple 8 bit SPI writecommand() and writedata() functions 5 // 6 // See ST7735_Setup.h file for an alternative format 7 8 #define ILI9481_INIT_1 // Original default 9 //#define ILI9481_INIT_2 // CPT29 10 //#define ILI9481_INIT_3 // PVI35 11 //#define ILI9481_INIT_4 // AUO317 12 //#define ILI9481_INIT_5 // CMO35 ***** 13 //#define ILI9481_INIT_6 // RGB 14 //#define ILI9481_INIT_7 // From #1774 15 //#define ILI9481_INIT_8 // From #1774 16 17 ///////////////////////////////////////////////////////////////////////////////////////// 18 #ifdef ILI9481_INIT_1 19 // Configure ILI9481 display 20 21 writecommand(TFT_SLPOUT); 22 delay(20); 23 24 writecommand(0xD0); 25 writedata(0x07); 26 writedata(0x42); 27 writedata(0x18); 28 29 writecommand(0xD1); 30 writedata(0x00); 31 writedata(0x07); 32 writedata(0x10); 33 34 writecommand(0xD2); 35 writedata(0x01); 36 writedata(0x02); 37 38 writecommand(0xC0); 39 writedata(0x10); 40 writedata(0x3B); 41 writedata(0x00); 42 writedata(0x02); 43 writedata(0x11); 44 45 writecommand(0xC5); 46 writedata(0x03); 47 48 writecommand(0xC8); 49 writedata(0x00); 50 writedata(0x32); 51 writedata(0x36); 52 writedata(0x45); 53 writedata(0x06); 54 writedata(0x16); 55 writedata(0x37); 56 writedata(0x75); 57 writedata(0x77); 58 writedata(0x54); 59 writedata(0x0C); 60 writedata(0x00); 61 62 writecommand(TFT_MADCTL); 63 writedata(0x0A); 64 65 writecommand(0x3A); 66 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) || defined (RPI_DISPLAY_TYPE) 67 writedata(0x55); // 16 bit colour interface 68 #else 69 writedata(0x66); // 18 bit colour interface 70 #endif 71 72 #if !defined (TFT_PARALLEL_8_BIT) && !defined (TFT_PARALLEL_16_BIT) 73 writecommand(TFT_INVON); 74 #endif 75 76 writecommand(TFT_CASET); 77 writedata(0x00); 78 writedata(0x00); 79 writedata(0x01); 80 writedata(0x3F); 81 82 writecommand(TFT_PASET); 83 writedata(0x00); 84 writedata(0x00); 85 writedata(0x01); 86 writedata(0xDF); 87 88 delay(120); 89 writecommand(TFT_DISPON); 90 91 delay(25); 92 // End of ILI9481 display configuration 93 ///////////////////////////////////////////////////////////////////////////////////////// 94 #elif defined (ILI9481_INIT_2) 95 // Configure ILI9481 display 96 97 writecommand(TFT_SLPOUT); 98 delay(20); 99 100 writecommand(0xD0); 101 writedata(0x07); 102 writedata(0x41); 103 writedata(0x1D); 104 105 writecommand(0xD1); 106 writedata(0x00); 107 writedata(0x2B); 108 writedata(0x1F); 109 110 writecommand(0xD2); 111 writedata(0x01); 112 writedata(0x11); 113 114 writecommand(0xC0); 115 writedata(0x10); 116 writedata(0x3B); 117 writedata(0x00); 118 writedata(0x02); 119 writedata(0x11); 120 121 writecommand(0xC5); 122 writedata(0x03); 123 124 writecommand(0xC8); 125 writedata(0x00); 126 writedata(0x14); 127 writedata(0x33); 128 writedata(0x10); 129 writedata(0x00); 130 writedata(0x16); 131 writedata(0x44); 132 writedata(0x36); 133 writedata(0x77); 134 writedata(0x00); 135 writedata(0x0F); 136 writedata(0x00); 137 138 writecommand(0xB0); 139 writedata(0x00); 140 141 writecommand(0xE4); 142 writedata(0xA0); 143 144 writecommand(0xF0); 145 writedata(0x01); 146 147 writecommand(0xF3); 148 writedata(0x02); 149 writedata(0x1A); 150 151 writecommand(TFT_MADCTL); 152 writedata(0x0A); 153 154 writecommand(0x3A); 155 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) || defined (RPI_DISPLAY_TYPE) 156 writedata(0x55); // 16 bit colour interface 157 #else 158 writedata(0x66); // 18 bit colour interface 159 #endif 160 161 #if !defined (TFT_PARALLEL_8_BIT) && !defined (TFT_PARALLEL_16_BIT) 162 writecommand(TFT_INVON); 163 #endif 164 165 writecommand(TFT_CASET); 166 writedata(0x00); 167 writedata(0x00); 168 writedata(0x01); 169 writedata(0x3F); 170 171 writecommand(TFT_PASET); 172 writedata(0x00); 173 writedata(0x00); 174 writedata(0x01); 175 writedata(0xDF); 176 177 delay(120); 178 writecommand(TFT_DISPON); 179 180 delay(25); 181 // End of ILI9481 display configuration 182 ///////////////////////////////////////////////////////////////////////////////////////// 183 #elif defined (ILI9481_INIT_3) 184 // Configure ILI9481 display 185 186 writecommand(TFT_SLPOUT); 187 delay(20); 188 189 writecommand(0xD0); 190 writedata(0x07); 191 writedata(0x41); 192 writedata(0x1D); 193 194 writecommand(0xD1); 195 writedata(0x00); 196 writedata(0x2B); 197 writedata(0x1F); 198 199 writecommand(0xD2); 200 writedata(0x01); 201 writedata(0x11); 202 203 writecommand(0xC0); 204 writedata(0x10); 205 writedata(0x3B); 206 writedata(0x00); 207 writedata(0x02); 208 writedata(0x11); 209 210 writecommand(0xC5); 211 writedata(0x03); 212 213 writecommand(0xC8); 214 writedata(0x00); 215 writedata(0x14); 216 writedata(0x33); 217 writedata(0x10); 218 writedata(0x00); 219 writedata(0x16); 220 writedata(0x44); 221 writedata(0x36); 222 writedata(0x77); 223 writedata(0x00); 224 writedata(0x0F); 225 writedata(0x00); 226 227 writecommand(0xB0); 228 writedata(0x00); 229 230 writecommand(0xE4); 231 writedata(0xA0); 232 233 writecommand(0xF0); 234 writedata(0x01); 235 236 writecommand(0xF3); 237 writedata(0x40); 238 writedata(0x0A); 239 240 writecommand(TFT_MADCTL); 241 writedata(0x0A); 242 243 writecommand(0x3A); 244 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) || defined (RPI_DISPLAY_TYPE) 245 writedata(0x55); // 16 bit colour interface 246 #else 247 writedata(0x66); // 18 bit colour interface 248 #endif 249 250 #if !defined (TFT_PARALLEL_8_BIT) && !defined (TFT_PARALLEL_16_BIT) 251 writecommand(TFT_INVON); 252 #endif 253 254 writecommand(TFT_CASET); 255 writedata(0x00); 256 writedata(0x00); 257 writedata(0x01); 258 writedata(0x3F); 259 260 writecommand(TFT_PASET); 261 writedata(0x00); 262 writedata(0x00); 263 writedata(0x01); 264 writedata(0xDF); 265 266 delay(120); 267 writecommand(TFT_DISPON); 268 269 delay(25); 270 // End of ILI9481 display configuration 271 ///////////////////////////////////////////////////////////////////////////////////////// 272 #elif defined (ILI9481_INIT_4) 273 // Configure ILI9481 display 274 275 writecommand(TFT_SLPOUT); 276 delay(20); 277 278 writecommand(0xD0); 279 writedata(0x07); 280 writedata(0x40); 281 writedata(0x1D); 282 283 writecommand(0xD1); 284 writedata(0x00); 285 writedata(0x18); 286 writedata(0x13); 287 288 writecommand(0xD2); 289 writedata(0x01); 290 writedata(0x11); 291 292 writecommand(0xC0); 293 writedata(0x10); 294 writedata(0x3B); 295 writedata(0x00); 296 writedata(0x02); 297 writedata(0x11); 298 299 writecommand(0xC5); 300 writedata(0x03); 301 302 writecommand(0xC8); 303 writedata(0x00); 304 writedata(0x44); 305 writedata(0x06); 306 writedata(0x44); 307 writedata(0x0A); 308 writedata(0x08); 309 writedata(0x17); 310 writedata(0x33); 311 writedata(0x77); 312 writedata(0x44); 313 writedata(0x08); 314 writedata(0x0C); 315 316 writecommand(0xB0); 317 writedata(0x00); 318 319 writecommand(0xE4); 320 writedata(0xA0); 321 322 writecommand(0xF0); 323 writedata(0x01); 324 325 writecommand(TFT_MADCTL); 326 writedata(0x0A); 327 328 writecommand(0x3A); 329 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) || defined (RPI_DISPLAY_TYPE) 330 writedata(0x55); // 16 bit colour interface 331 #else 332 writedata(0x66); // 18 bit colour interface 333 #endif 334 335 #if !defined (TFT_PARALLEL_8_BIT) && !defined (TFT_PARALLEL_16_BIT) 336 writecommand(TFT_INVON); 337 #endif 338 339 writecommand(TFT_CASET); 340 writedata(0x00); 341 writedata(0x00); 342 writedata(0x01); 343 writedata(0x3F); 344 345 writecommand(TFT_PASET); 346 writedata(0x00); 347 writedata(0x00); 348 writedata(0x01); 349 writedata(0xDF); 350 351 delay(120); 352 writecommand(TFT_DISPON); 353 354 delay(25); 355 // End of ILI9481 display configuration 356 ///////////////////////////////////////////////////////////////////////////////////////// 357 #elif defined (ILI9481_INIT_5) 358 // Configure ILI9481 display 359 360 writecommand(TFT_SLPOUT); 361 delay(20); 362 363 writecommand(0xD0); 364 writedata(0x07); 365 writedata(0x41); 366 writedata(0x1D); 367 368 writecommand(0xD1); 369 writedata(0x00); 370 writedata(0x1C); 371 writedata(0x1F); 372 373 writecommand(0xD2); 374 writedata(0x01); 375 writedata(0x11); 376 377 writecommand(0xC0); 378 writedata(0x10); 379 writedata(0x3B); 380 writedata(0x00); 381 writedata(0x02); 382 writedata(0x11); 383 384 writecommand(0xC5); 385 writedata(0x03); 386 387 writecommand(0xC6); 388 writedata(0x83); 389 390 writecommand(0xC8); 391 writedata(0x00); 392 writedata(0x26); 393 writedata(0x21); 394 writedata(0x00); 395 writedata(0x00); 396 writedata(0x1F); 397 writedata(0x65); 398 writedata(0x23); 399 writedata(0x77); 400 writedata(0x00); 401 writedata(0x0F); 402 writedata(0x00); 403 404 writecommand(0xB0); 405 writedata(0x00); 406 407 writecommand(0xE4); 408 writedata(0xA0); 409 410 writecommand(0xF0); 411 writedata(0x01); 412 413 writecommand(TFT_MADCTL); 414 writedata(0x0A); 415 416 writecommand(0x3A); 417 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) || defined (RPI_DISPLAY_TYPE) 418 writedata(0x55); // 16 bit colour interface 419 #else 420 writedata(0x66); // 18 bit colour interface 421 #endif 422 423 #if !defined (TFT_PARALLEL_8_BIT) && !defined (TFT_PARALLEL_16_BIT) 424 writecommand(TFT_INVON); 425 #endif 426 427 writecommand(TFT_CASET); 428 writedata(0x00); 429 writedata(0x00); 430 writedata(0x01); 431 writedata(0x3F); 432 433 writecommand(TFT_PASET); 434 writedata(0x00); 435 writedata(0x00); 436 writedata(0x01); 437 writedata(0xDF); 438 439 delay(120); 440 writecommand(TFT_DISPON); 441 442 delay(25); 443 // End of ILI9481 display configuration 444 ///////////////////////////////////////////////////////////////////////////////////////// 445 #elif defined (ILI9481_INIT_6) 446 // Configure ILI9481 display 447 448 writecommand(TFT_SLPOUT); 449 delay(20); 450 451 writecommand(0xD0); 452 writedata(0x07); 453 writedata(0x41); 454 writedata(0x1D); 455 456 writecommand(0xD1); 457 writedata(0x00); 458 writedata(0x2B); 459 writedata(0x1F); 460 461 writecommand(0xD2); 462 writedata(0x01); 463 writedata(0x11); 464 465 writecommand(0xC0); 466 writedata(0x10); 467 writedata(0x3B); 468 writedata(0x00); 469 writedata(0x02); 470 writedata(0x11); 471 writedata(0x00); 472 473 writecommand(0xC5); 474 writedata(0x03); 475 476 writecommand(0xC6); 477 writedata(0x80); 478 479 writecommand(0xC8); 480 writedata(0x00); 481 writedata(0x14); 482 writedata(0x33); 483 writedata(0x10); 484 writedata(0x00); 485 writedata(0x16); 486 writedata(0x44); 487 writedata(0x36); 488 writedata(0x77); 489 writedata(0x00); 490 writedata(0x0F); 491 writedata(0x00); 492 493 writecommand(0xB0); 494 writedata(0x00); 495 496 writecommand(0xE4); 497 writedata(0xA0); 498 499 writecommand(0xF0); 500 writedata(0x08); 501 502 writecommand(0xF3); 503 writedata(0x40); 504 writedata(0x0A); 505 506 writecommand(0xF6); 507 writedata(0x84); 508 509 writecommand(0xF7); 510 writedata(0x80); 511 512 writecommand(0xB3); 513 writedata(0x00); 514 writedata(0x01); 515 writedata(0x06); 516 writedata(0x30); 517 518 writecommand(0xB4); 519 writedata(0x00); 520 521 writecommand(0x0C); 522 writedata(0x00); 523 writedata(0x55); 524 525 writecommand(TFT_MADCTL); 526 writedata(0x0A); 527 528 writecommand(0x3A); 529 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) || defined (RPI_DISPLAY_TYPE) 530 writedata(0x55); // 16 bit colour interface 531 #else 532 writedata(0x66); // 18 bit colour interface 533 #endif 534 535 #if !defined (TFT_PARALLEL_8_BIT) && !defined (TFT_PARALLEL_16_BIT) 536 writecommand(TFT_INVON); 537 #endif 538 539 writecommand(TFT_CASET); 540 writedata(0x00); 541 writedata(0x00); 542 writedata(0x01); 543 writedata(0x3F); 544 545 writecommand(TFT_PASET); 546 writedata(0x00); 547 writedata(0x00); 548 writedata(0x01); 549 writedata(0xDF); 550 551 delay(120); 552 writecommand(TFT_DISPON); 553 554 delay(25); 555 // End of ILI9481 display configuration 556 ///////////////////////////////////////////////////////////////////////////////////////// 557 558 559 // From #1774 560 #elif defined (ILI9481_INIT_7) 561 ///ili9481+cmi3.5ips //效果不好 562 //************* Start Initial Sequence **********// 563 writecommand(0x11); 564 delay(20); 565 writecommand(0xD0); 566 writedata(0x07); 567 writedata(0x42); 568 writedata(0x1B); 569 570 writecommand(0xD1); 571 writedata(0x00); 572 writedata(0x14); 573 writedata(0x1B); 574 575 writecommand(0xD2); 576 writedata(0x01); 577 writedata(0x12); 578 579 writecommand(0xC0); 580 writedata(0x10); 581 writedata(0x3B); 582 writedata(0x00); 583 writedata(0x02); 584 writedata(0x01); 585 586 writecommand(0xC5); 587 writedata(0x03); 588 589 writecommand(0xC8); 590 writedata(0x00); 591 writedata(0x46); 592 writedata(0x44); 593 writedata(0x50); 594 writedata(0x04); 595 writedata(0x16); 596 writedata(0x33); 597 writedata(0x13); 598 writedata(0x77); 599 writedata(0x05); 600 writedata(0x0F); 601 writedata(0x00); 602 603 writecommand(0x36); 604 writedata(0x0A); 605 606 writecommand(0x3A); 607 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) || defined (RPI_DISPLAY_TYPE) 608 writedata(0x55); // 16 bit colour interface 609 #else 610 writedata(0x66); // 18 bit colour interface 611 #endif 612 613 #if !defined (TFT_PARALLEL_8_BIT) && !defined (TFT_PARALLEL_16_BIT) 614 writecommand(TFT_INVON); 615 #endif 616 617 writecommand(0x22); 618 writedata(0x00); 619 writedata(0x00); 620 writedata(0x01); 621 writedata(0x3F); 622 623 writecommand(0x2B); 624 writedata(0x00); 625 writedata(0x00); 626 writedata(0x01); 627 writedata(0xE0); 628 delay(120); 629 writecommand(0x29); 630 631 #elif defined (ILI9481_INIT_8) 632 633 //3.5IPS ILI9481+CMI 634 writecommand(0x01); //Soft_rese 635 delay(220); 636 637 writecommand(0x11); 638 delay(280); 639 640 writecommand(0xd0); //Power_Setting 641 writedata(0x07);//07 VC[2:0] Sets the ratio factor of Vci to generate the reference voltages Vci1 642 writedata(0x44);//41 BT[2:0] Sets the Step up factor and output voltage level from the reference voltages Vci1 643 writedata(0x1E);//1f 17 1C VRH[3:0]: Sets the factor to generate VREG1OUT from VCILVL 644 delay(220); 645 646 writecommand(0xd1); //VCOM Control 647 writedata(0x00);//00 648 writedata(0x0C);//1A VCM [6:0] is used to set factor to generate VCOMH voltage from the reference voltage VREG1OUT 15 09 649 writedata(0x1A);//1F VDV[4:0] is used to set the VCOM alternating amplitude in the range of VREG1OUT x 0.70 to VREG1OUT 1F 18 650 651 writecommand(0xC5); //Frame Rate 652 writedata(0x03); // 03 02 653 654 writecommand(0xd2); //Power_Setting for Normal Mode 655 writedata(0x01); //01 656 writedata(0x11); //11 657 658 writecommand(0xE4); //? 659 writedata(0xa0); 660 writecommand(0xf3); 661 writedata(0x00); 662 writedata(0x2a); 663 664 //1 OK 665 writecommand(0xc8); 666 writedata(0x00); 667 writedata(0x26); 668 writedata(0x21); 669 writedata(0x00); 670 writedata(0x00); 671 writedata(0x1f); 672 writedata(0x65); 673 writedata(0x23); 674 writedata(0x77); 675 writedata(0x00); 676 writedata(0x0f); 677 writedata(0x00); 678 //GAMMA SETTING 679 680 writecommand(0xC0); //Panel Driving Setting 681 writedata(0x00); //1//00 REV SM GS 682 writedata(0x3B); //2//NL[5:0]: Sets the number of lines to drive the LCD at an interval of 8 lines. 683 writedata(0x00); //3//SCN[6:0] 684 writedata(0x02); //4//PTV: Sets the Vcom output in non-display area drive period 685 writedata(0x11); //5//NDL: Sets the source output level in non-display area. PTG: Sets the scan mode in non-display area. 686 687 writecommand(0xc6); //Interface Control 688 writedata(0x83); 689 //GAMMA SETTING 690 691 writecommand(0xf0); //? 692 writedata(0x01); 693 694 writecommand(0xE4);//? 695 writedata(0xa0); 696 697 //////倒装设置 NG 698 writecommand(0x36); 699 writedata(0x0A); // 8C:出来两行 CA:出来一个点 700 701 writecommand(0x3a); 702 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) || defined (RPI_DISPLAY_TYPE) 703 writedata(0x55); // 16 bit colour interface 704 #else 705 writedata(0x66); // 18 bit colour interface 706 #endif 707 708 #if defined (TFT_PARALLEL_8_BIT) || defined (TFT_PARALLEL_16_BIT) 709 writecommand(TFT_INVON); 710 #endif 711 712 writecommand(0xb4);//Display Mode and Frame Memory Write Mode Setting 713 writedata(0x02); 714 writedata(0x00); //? 715 writedata(0x00); 716 writedata(0x01); 717 718 delay(280); 719 720 writecommand(0x2a); 721 writedata(0x00); 722 writedata(0x00); 723 writedata(0x01); 724 writedata(0x3F); //3F 725 726 writecommand(0x2b); 727 writedata(0x00); 728 writedata(0x00); 729 writedata(0x01); 730 writedata(0xDf); //DF 731 732 //writecommand(0x21); 733 writecommand(0x29); 734 writecommand(0x2c); 735 736 #endif