Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
TFT_eSPI
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
xpstem
TFT_eSPI
Commits
d6be4907
Commit
d6be4907
authored
Nov 25, 2020
by
Bodmer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add ILI9255 driver
parent
d6e573c2
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
214 additions
and
0 deletions
+214
-0
TFT_Drivers/ILI9225_Defines.h
TFT_Drivers/ILI9225_Defines.h
+52
-0
TFT_Drivers/ILI9225_Init.h
TFT_Drivers/ILI9225_Init.h
+114
-0
TFT_Drivers/ILI9225_Rotation.h
TFT_Drivers/ILI9225_Rotation.h
+39
-0
TFT_eSPI.cpp
TFT_eSPI.cpp
+6
-0
User_Setup_Select.h
User_Setup_Select.h
+3
-0
No files found.
TFT_Drivers/ILI9225_Defines.h
0 → 100644
View file @
d6be4907
// Change the width and height if required (defined in portrait mode)
// or use the constructor to over-ride defaults
#define TFT_WIDTH 176
#define TFT_HEIGHT 220
/* ILI9225 LCD Registers */
#define ILI9225_DRIVER_OUTPUT_CTRL (0x01u) // Driver Output Control
#define ILI9225_LCD_AC_DRIVING_CTRL (0x02u) // LCD AC Driving Control
#define ILI9225_ENTRY_MODE (0x03u) // Entry Mode
#define ILI9225_DISP_CTRL1 (0x07u) // Display Control 1
#define ILI9225_BLANK_PERIOD_CTRL1 (0x08u) // Blank Period Control
#define ILI9225_FRAME_CYCLE_CTRL (0x0Bu) // Frame Cycle Control
#define ILI9225_INTERFACE_CTRL (0x0Cu) // Interface Control
#define ILI9225_OSC_CTRL (0x0Fu) // Osc Control
#define ILI9225_POWER_CTRL1 (0x10u) // Power Control 1
#define ILI9225_POWER_CTRL2 (0x11u) // Power Control 2
#define ILI9225_POWER_CTRL3 (0x12u) // Power Control 3
#define ILI9225_POWER_CTRL4 (0x13u) // Power Control 4
#define ILI9225_POWER_CTRL5 (0x14u) // Power Control 5
#define ILI9225_VCI_RECYCLING (0x15u) // VCI Recycling
#define ILI9225_RAM_ADDR_SET1 (0x20u) // Horizontal GRAM Address Set
#define ILI9225_RAM_ADDR_SET2 (0x21u) // Vertical GRAM Address Set
#define ILI9225_GRAM_DATA_REG (0x22u) // GRAM Data Register
#define ILI9225_GATE_SCAN_CTRL (0x30u) // Gate Scan Control Register
#define ILI9225_VERTICAL_SCROLL_CTRL1 (0x31u) // Vertical Scroll Control 1 Register
#define ILI9225_VERTICAL_SCROLL_CTRL2 (0x32u) // Vertical Scroll Control 2 Register
#define ILI9225_VERTICAL_SCROLL_CTRL3 (0x33u) // Vertical Scroll Control 3 Register
#define ILI9225_PARTIAL_DRIVING_POS1 (0x34u) // Partial Driving Position 1 Register
#define ILI9225_PARTIAL_DRIVING_POS2 (0x35u) // Partial Driving Position 2 Register
#define ILI9225_HORIZONTAL_WINDOW_ADDR1 (0x36u) // Horizontal Address Start Position
#define ILI9225_HORIZONTAL_WINDOW_ADDR2 (0x37u) // Horizontal Address End Position
#define ILI9225_VERTICAL_WINDOW_ADDR1 (0x38u) // Vertical Address Start Position
#define ILI9225_VERTICAL_WINDOW_ADDR2 (0x39u) // Vertical Address End Position
#define ILI9225_GAMMA_CTRL1 (0x50u) // Gamma Control 1
#define ILI9225_GAMMA_CTRL2 (0x51u) // Gamma Control 2
#define ILI9225_GAMMA_CTRL3 (0x52u) // Gamma Control 3
#define ILI9225_GAMMA_CTRL4 (0x53u) // Gamma Control 4
#define ILI9225_GAMMA_CTRL5 (0x54u) // Gamma Control 5
#define ILI9225_GAMMA_CTRL6 (0x55u) // Gamma Control 6
#define ILI9225_GAMMA_CTRL7 (0x56u) // Gamma Control 7
#define ILI9225_GAMMA_CTRL8 (0x57u) // Gamma Control 8
#define ILI9225_GAMMA_CTRL9 (0x58u) // Gamma Control 9
#define ILI9225_GAMMA_CTRL10 (0x59u) // Gamma Control 10
#define TFT_INVOFF 0x20
#define TFT_INVON 0x21
#define TFT_SWRST 0x28
// Delay between some initialisation commands
#define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked
#define TFT_MAD_BGR 0x10
\ No newline at end of file
TFT_Drivers/ILI9225_Init.h
0 → 100644
View file @
d6be4907
// This is the command sequence that initialises the ILI9225 driver
{
/* Start Initial Sequence */
//LCD Init For 2.2inch LCD Panel with ILI9225.
writecommand
(
ILI9225_POWER_CTRL1
);
writedata
(
0x00
);
writedata
(
0x00
);
// Set SAP,DSTB,STB
writecommand
(
ILI9225_POWER_CTRL2
);
writedata
(
0x00
);
writedata
(
0x00
);
// Set APON,PON,AON,VCI1EN,VC
writecommand
(
ILI9225_POWER_CTRL3
);
writedata
(
0x00
);
writedata
(
0x00
);
// Set BT,DC1,DC2,DC3
writecommand
(
ILI9225_POWER_CTRL4
);
writedata
(
0x00
);
writedata
(
0x00
);
// Set GVDD
writecommand
(
ILI9225_POWER_CTRL5
);
writedata
(
0x00
);
writedata
(
0x00
);
// Set VCOMH/VCOML voltage
spi_end
();
delay
(
40
);
spi_begin
();
// Power-on sequence
writecommand
(
ILI9225_POWER_CTRL2
);
writedata
(
0x00
);
writedata
(
0x18
);
// Set APON,PON,AON,VCI1EN,VC
writecommand
(
ILI9225_POWER_CTRL3
);
writedata
(
0x61
);
writedata
(
0x21
);
// Set BT,DC1,DC2,DC3
writecommand
(
ILI9225_POWER_CTRL4
);
writedata
(
0x00
);
writedata
(
0x6F
);
// Set GVDD /*007F 0088 */
writecommand
(
ILI9225_POWER_CTRL5
);
writedata
(
0x49
);
writedata
(
0x5F
);
// Set VCOMH/VCOML voltage
writecommand
(
ILI9225_POWER_CTRL1
);
writedata
(
0x08
);
writedata
(
0x00
);
// Set SAP,DSTB,STB
spi_end
();
delay
(
10
);
spi_begin
();
writecommand
(
ILI9225_POWER_CTRL2
);
writedata
(
0x10
);
writedata
(
0x3B
);
// Set APON,PON,AON,VCI1EN,VC
spi_end
();
delay
(
50
);
spi_begin
();
writecommand
(
ILI9225_LCD_AC_DRIVING_CTRL
);
writedata
(
0x01
);
writedata
(
0x00
);
// set 1 line inversion
writecommand
(
ILI9225_DISP_CTRL1
);
writedata
(
0x00
);
writedata
(
0x00
);
// Display off
writecommand
(
ILI9225_BLANK_PERIOD_CTRL1
);
writedata
(
0x08
);
writedata
(
0x08
);
// set the back porch and front porch
writecommand
(
ILI9225_FRAME_CYCLE_CTRL
);
writedata
(
0x11
);
writedata
(
0x00
);
// set the clocks number per line
writecommand
(
ILI9225_INTERFACE_CTRL
);
writedata
(
0x00
);
writedata
(
0x00
);
// CPU interface
writecommand
(
ILI9225_OSC_CTRL
);
writedata
(
0x0D
);
writedata
(
0x01
);
// Set Osc /*0e01*/
writecommand
(
ILI9225_VCI_RECYCLING
);
writedata
(
0x00
);
writedata
(
0x20
);
// Set VCI recycling
writecommand
(
ILI9225_RAM_ADDR_SET1
);
writedata
(
0x00
);
writedata
(
0x00
);
// RAM Address
writecommand
(
ILI9225_RAM_ADDR_SET2
);
writedata
(
0x00
);
writedata
(
0x00
);
// RAM Address
/* Set GRAM area */
writecommand
(
ILI9225_GATE_SCAN_CTRL
);
writedata
(
0x00
);
writedata
(
0x00
);
writecommand
(
ILI9225_VERTICAL_SCROLL_CTRL1
);
writedata
(
0x00
);
writedata
(
0xDB
);
writecommand
(
ILI9225_VERTICAL_SCROLL_CTRL2
);
writedata
(
0x00
);
writedata
(
0x00
);
writecommand
(
ILI9225_VERTICAL_SCROLL_CTRL3
);
writedata
(
0x00
);
writedata
(
0x00
);
writecommand
(
ILI9225_PARTIAL_DRIVING_POS1
);
writedata
(
0x00
);
writedata
(
0xDB
);
writecommand
(
ILI9225_PARTIAL_DRIVING_POS2
);
writedata
(
0x00
);
writedata
(
0x00
);
writecommand
(
ILI9225_HORIZONTAL_WINDOW_ADDR1
);
writedata
(
0x00
);
writedata
(
0xAF
);
writecommand
(
ILI9225_HORIZONTAL_WINDOW_ADDR2
);
writedata
(
0x00
);
writedata
(
0x00
);
writecommand
(
ILI9225_VERTICAL_WINDOW_ADDR1
);
writedata
(
0x00
);
writedata
(
0xDB
);
writecommand
(
ILI9225_VERTICAL_WINDOW_ADDR2
);
writedata
(
0x00
);
writedata
(
0x00
);
/* Set GAMMA curve */
writecommand
(
ILI9225_GAMMA_CTRL1
);
writedata
(
0x00
);
writedata
(
0x00
);
writecommand
(
ILI9225_GAMMA_CTRL2
);
writedata
(
0x08
);
writedata
(
0x08
);
writecommand
(
ILI9225_GAMMA_CTRL3
);
writedata
(
0x08
);
writedata
(
0x0A
);
writecommand
(
ILI9225_GAMMA_CTRL4
);
writedata
(
0x00
);
writedata
(
0x0A
);
writecommand
(
ILI9225_GAMMA_CTRL5
);
writedata
(
0x0A
);
writedata
(
0x08
);
writecommand
(
ILI9225_GAMMA_CTRL6
);
writedata
(
0x08
);
writedata
(
0x08
);
writecommand
(
ILI9225_GAMMA_CTRL7
);
writedata
(
0x00
);
writedata
(
0x00
);
writecommand
(
ILI9225_GAMMA_CTRL8
);
writedata
(
0x0A
);
writedata
(
0x00
);
writecommand
(
ILI9225_GAMMA_CTRL9
);
writedata
(
0x07
);
writedata
(
0x10
);
writecommand
(
ILI9225_GAMMA_CTRL10
);
writedata
(
0x07
);
writedata
(
0x10
);
writecommand
(
ILI9225_DISP_CTRL1
);
writedata
(
0x00
);
writedata
(
0x12
);
spi_end
();
delay
(
50
);
spi_begin
();
writecommand
(
ILI9225_DISP_CTRL1
);
writedata
(
0x10
);
writedata
(
0x17
);
}
\ No newline at end of file
TFT_Drivers/ILI9225_Rotation.h
0 → 100644
View file @
d6be4907
// This is the command sequence that rotates the ILI9225 driver coordinate frame
rotation
=
m
%
4
;
// Limit the range of values to 0-3
switch
(
rotation
)
{
case
0
:
writecommand
(
ILI9225_DRIVER_OUTPUT_CTRL
);
writedata
(
0x01
);
writedata
(
0x1C
);
writecommand
(
ILI9225_ENTRY_MODE
);
writedata
(
TFT_MAD_BGR
);
writedata
(
0x30
);
_width
=
_init_width
;
_height
=
_init_height
;
break
;
case
1
:
writecommand
(
ILI9225_DRIVER_OUTPUT_CTRL
);
writedata
(
0x00
);
writedata
(
0x1C
);
writecommand
(
ILI9225_ENTRY_MODE
);
writedata
(
TFT_MAD_BGR
);
writedata
(
0x38
);
_width
=
_init_height
;
_height
=
_init_width
;
break
;
case
2
:
writecommand
(
ILI9225_DRIVER_OUTPUT_CTRL
);
writedata
(
0x02
);
writedata
(
0x1C
);
writecommand
(
ILI9225_ENTRY_MODE
);
writedata
(
TFT_MAD_BGR
);
writedata
(
0x30
);
_width
=
_init_width
;
_height
=
_init_height
;
break
;
case
3
:
writecommand
(
ILI9225_DRIVER_OUTPUT_CTRL
);
writedata
(
0x03
);
writedata
(
0x1C
);
writecommand
(
ILI9225_ENTRY_MODE
);
writedata
(
TFT_MAD_BGR
);
writedata
(
0x38
);
_width
=
_init_height
;
_height
=
_init_width
;
break
;
}
TFT_eSPI.cpp
View file @
d6be4907
...
@@ -628,6 +628,9 @@ void TFT_eSPI::init(uint8_t tc)
...
@@ -628,6 +628,9 @@ void TFT_eSPI::init(uint8_t tc)
#elif defined (GC9A01_DRIVER)
#elif defined (GC9A01_DRIVER)
#include "TFT_Drivers/GC9A01_Init.h"
#include "TFT_Drivers/GC9A01_Init.h"
#elif defined (ILI9225_DRIVER)
#include "TFT_Drivers/ILI9225_Init.h"
#endif
#endif
#ifdef TFT_INVERSION_ON
#ifdef TFT_INVERSION_ON
...
@@ -710,6 +713,9 @@ void TFT_eSPI::setRotation(uint8_t m)
...
@@ -710,6 +713,9 @@ void TFT_eSPI::setRotation(uint8_t m)
#elif defined (GC9A01_DRIVER)
#elif defined (GC9A01_DRIVER)
#include "TFT_Drivers/GC9A01_Rotation.h"
#include "TFT_Drivers/GC9A01_Rotation.h"
#elif defined (ILI9225_DRIVER)
#include "TFT_Drivers/ILI9225_Rotation.h"
#endif
#endif
delayMicroseconds
(
10
);
delayMicroseconds
(
10
);
...
...
User_Setup_Select.h
View file @
d6be4907
...
@@ -173,6 +173,9 @@
...
@@ -173,6 +173,9 @@
#elif defined (GC9A01_DRIVER)
#elif defined (GC9A01_DRIVER)
#include "TFT_Drivers/GC9A01_Defines.h"
#include "TFT_Drivers/GC9A01_Defines.h"
#define TFT_DRIVER 0x9A01
#define TFT_DRIVER 0x9A01
#elif defined (ILI9225_DRIVER)
#include "TFT_Drivers/ILI9225_Defines.h"
#define TFT_DRIVER 0x9225
// <<<<<<<<<<<<<<<<<<<<<<<< ADD NEW DRIVER HERE
// <<<<<<<<<<<<<<<<<<<<<<<< ADD NEW DRIVER HERE
// XYZZY_init.h and XYZZY_rotation.h must also be added in TFT_eSPI.cpp
// XYZZY_init.h and XYZZY_rotation.h must also be added in TFT_eSPI.cpp
#elif defined (XYZZY_DRIVER)
#elif defined (XYZZY_DRIVER)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment