Browse Source

🩹 Fallback ID for MKS TS35 V2.0 (#22031)

ellensp 4 years ago
parent
commit
3c522fff31
No account linked to committer's email address

+ 10
- 2
Marlin/src/HAL/STM32/tft/tft_spi.cpp View File

125
   WRITE(TFT_CS_PIN, LOW);
125
   WRITE(TFT_CS_PIN, LOW);
126
 }
126
 }
127
 
127
 
128
+#ifdef TFT_DEFAULT_DRIVER
129
+  #include "../../../lcd/tft_io/tft_ids.h"
130
+#endif
131
+
128
 uint32_t TFT_SPI::GetID() {
132
 uint32_t TFT_SPI::GetID() {
129
   uint32_t id;
133
   uint32_t id;
130
   id = ReadID(LCD_READ_ID);
134
   id = ReadID(LCD_READ_ID);
131
-
132
-  if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF)
135
+  if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF) {
133
     id = ReadID(LCD_READ_ID4);
136
     id = ReadID(LCD_READ_ID4);
137
+    #ifdef TFT_DEFAULT_DRIVER
138
+      if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF)
139
+        id = TFT_DEFAULT_DRIVER;
140
+    #endif
141
+   }
134
   return id;
142
   return id;
135
 }
143
 }
136
 
144
 

+ 10
- 2
Marlin/src/HAL/STM32F1/tft/tft_spi.cpp View File

90
   TFT_CS_L;
90
   TFT_CS_L;
91
 }
91
 }
92
 
92
 
93
+#ifdef TFT_DEFAULT_DRIVER
94
+  #include "../../../lcd/tft_io/tft_ids.h"
95
+#endif
96
+
93
 uint32_t TFT_SPI::GetID() {
97
 uint32_t TFT_SPI::GetID() {
94
   uint32_t id;
98
   uint32_t id;
95
   id = ReadID(LCD_READ_ID);
99
   id = ReadID(LCD_READ_ID);
96
-
97
-  if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF)
100
+  if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF) {
98
     id = ReadID(LCD_READ_ID4);
101
     id = ReadID(LCD_READ_ID4);
102
+    #ifdef TFT_DEFAULT_DRIVER
103
+      if ((id & 0xFFFF) == 0 || (id & 0xFFFF) == 0xFFFF)
104
+        id = TFT_DEFAULT_DRIVER;
105
+    #endif
106
+   }
99
   return id;
107
   return id;
100
 }
108
 }
101
 
109
 

+ 16
- 15
Marlin/src/inc/Conditionals_LCD.h View File

1166
  *  - TFT_COLOR
1166
  *  - TFT_COLOR
1167
  *  - GRAPHICAL_TFT_UPSCALE
1167
  *  - GRAPHICAL_TFT_UPSCALE
1168
  */
1168
  */
1169
-#if ENABLED(MKS_TS35_V2_0)          // Most common: ST7796
1169
+#if ENABLED(MKS_TS35_V2_0)          // ST7796
1170
+  #define TFT_DEFAULT_DRIVER ST7796
1170
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY)
1171
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY)
1171
   #define TFT_RES_480x320
1172
   #define TFT_RES_480x320
1172
   #define TFT_INTERFACE_SPI
1173
   #define TFT_INTERFACE_SPI
1173
-#elif ENABLED(MKS_ROBIN_TFT24)      // Most common: ST7789
1174
+#elif ENABLED(ANET_ET5_TFT35)       // ST7796
1175
+  #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY)
1176
+  #define TFT_RES_480x320
1177
+  #define TFT_INTERFACE_FSMC
1178
+#elif ENABLED(ANET_ET4_TFT28)       // ST7789
1174
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
1179
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
1175
   #define TFT_RES_320x240
1180
   #define TFT_RES_320x240
1176
   #define TFT_INTERFACE_FSMC
1181
   #define TFT_INTERFACE_FSMC
1177
-#elif ENABLED(MKS_ROBIN_TFT28)      // Most common: ST7789
1182
+#elif ENABLED(MKS_ROBIN_TFT24)      // ST7789
1178
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
1183
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
1179
   #define TFT_RES_320x240
1184
   #define TFT_RES_320x240
1180
   #define TFT_INTERFACE_FSMC
1185
   #define TFT_INTERFACE_FSMC
1181
-#elif ENABLED(MKS_ROBIN_TFT32)      // Most common: ST7789
1186
+#elif ENABLED(MKS_ROBIN_TFT28)      // ST7789
1182
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
1187
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
1183
   #define TFT_RES_320x240
1188
   #define TFT_RES_320x240
1184
   #define TFT_INTERFACE_FSMC
1189
   #define TFT_INTERFACE_FSMC
1185
-#elif ENABLED(MKS_ROBIN_TFT35)      // Most common: ILI9488
1190
+#elif ENABLED(MKS_ROBIN_TFT32)      // ST7789
1191
+  #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
1192
+  #define TFT_RES_320x240
1193
+  #define TFT_INTERFACE_FSMC
1194
+#elif ENABLED(MKS_ROBIN_TFT35)      // ILI9488
1186
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
1195
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
1187
   #define TFT_RES_480x320
1196
   #define TFT_RES_480x320
1188
   #define TFT_INTERFACE_FSMC
1197
   #define TFT_INTERFACE_FSMC
1189
 #elif ENABLED(MKS_ROBIN_TFT43)
1198
 #elif ENABLED(MKS_ROBIN_TFT43)
1190
-  #define TFT_DEFAULT_ORIENTATION 0
1191
   #define TFT_DRIVER SSD1963
1199
   #define TFT_DRIVER SSD1963
1200
+  #define TFT_DEFAULT_ORIENTATION 0
1192
   #define TFT_RES_480x272
1201
   #define TFT_RES_480x272
1193
   #define TFT_INTERFACE_FSMC
1202
   #define TFT_INTERFACE_FSMC
1194
 #elif ENABLED(MKS_ROBIN_TFT_V1_1R)  // ILI9328 or R61505
1203
 #elif ENABLED(MKS_ROBIN_TFT_V1_1R)  // ILI9328 or R61505
1196
   #define TFT_RES_320x240
1205
   #define TFT_RES_320x240
1197
   #define TFT_INTERFACE_FSMC
1206
   #define TFT_INTERFACE_FSMC
1198
 #elif EITHER(TFT_TRONXY_X5SA, ANYCUBIC_TFT35) // ILI9488
1207
 #elif EITHER(TFT_TRONXY_X5SA, ANYCUBIC_TFT35) // ILI9488
1199
-  #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
1200
   #define TFT_DRIVER ILI9488
1208
   #define TFT_DRIVER ILI9488
1209
+  #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
1201
   #define TFT_RES_480x320
1210
   #define TFT_RES_480x320
1202
   #define TFT_INTERFACE_FSMC
1211
   #define TFT_INTERFACE_FSMC
1203
 #elif ENABLED(LONGER_LK_TFT28)
1212
 #elif ENABLED(LONGER_LK_TFT28)
1204
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
1213
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
1205
   #define TFT_RES_320x240
1214
   #define TFT_RES_320x240
1206
   #define TFT_INTERFACE_FSMC
1215
   #define TFT_INTERFACE_FSMC
1207
-#elif ENABLED(ANET_ET4_TFT28)       // ST7789
1208
-  #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
1209
-  #define TFT_RES_320x240
1210
-  #define TFT_INTERFACE_FSMC
1211
-#elif ENABLED(ANET_ET5_TFT35)       // ST7796
1212
-  #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY)
1213
-  #define TFT_RES_480x320
1214
-  #define TFT_INTERFACE_FSMC
1215
 #elif ENABLED(BIQU_BX_TFT70)        // RGB
1216
 #elif ENABLED(BIQU_BX_TFT70)        // RGB
1216
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY)
1217
   #define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY)
1217
   #define TFT_RES_1024x600
1218
   #define TFT_RES_1024x600

+ 35
- 0
Marlin/src/lcd/tft_io/tft_ids.h View File

1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+#pragma once
23
+
24
+#define LTDC_RGB        0xABAB
25
+#define SSD1963         0x5761
26
+#define ST7735          0x89F0
27
+#define ST7789          0x8552
28
+#define ST7796          0x7796
29
+#define R61505          0x1505
30
+#define ILI9328         0x9328
31
+#define ILI9341         0x9341
32
+#define ILI9488         0x9488
33
+#define ILI9488_ID1     0x8066 // Some ILI9488 have 0x8066 in the 0x04
34
+#define LERDGE_ST7796   0xFFFE
35
+#define AUTO            0xFFFF

+ 29
- 10
Marlin/src/lcd/tft_io/tft_io.cpp View File

20
  *
20
  *
21
  */
21
  */
22
 
22
 
23
-#include "tft_io.h"
23
+#include "../../inc/MarlinConfigPre.h"
24
 
24
 
25
 #if HAS_SPI_TFT || HAS_FSMC_TFT || HAS_LTDC_TFT
25
 #if HAS_SPI_TFT || HAS_FSMC_TFT || HAS_LTDC_TFT
26
 
26
 
27
-#include "st7735.h"
28
-#include "st7789v.h"
29
-#include "st7796s.h"
30
-#include "r65105.h"
31
-#include "ili9328.h"
32
-#include "ili9341.h"
33
-#include "ili9488.h"
34
-#include "ssd1963.h"
27
+#include "tft_io.h"
28
+#include "tft_ids.h"
29
+
30
+#if TFT_DRIVER == ST7735 || TFT_DRIVER == AUTO
31
+  #include "st7735.h"
32
+#endif
33
+#if TFT_DRIVER == ST7789 || TFT_DRIVER == AUTO
34
+  #include "st7789v.h"
35
+#endif
36
+#if TFT_DRIVER == ST7796 || TFT_DRIVER == AUTO
37
+  #include "st7796s.h"
38
+#endif
39
+#if TFT_DRIVER == R61505 || TFT_DRIVER == AUTO
40
+  #include "r65105.h"
41
+#endif
42
+#if TFT_DRIVER == ILI9328 || TFT_DRIVER == AUTO
43
+  #include "ili9328.h"
44
+#endif
45
+#if TFT_DRIVER == ILI9341 || TFT_DRIVER == AUTO
46
+  #include "ili9341.h"
47
+#endif
48
+#if TFT_DRIVER == ILI9488 || TFT_DRIVER == ILI9488_ID1 || TFT_DRIVER == AUTO
49
+  #include "ili9488.h"
50
+#endif
51
+#if TFT_DRIVER == SSD1963 || TFT_DRIVER == AUTO
52
+  #include "ssd1963.h"
53
+#endif
35
 
54
 
36
 #define DEBUG_OUT ENABLED(DEBUG_GRAPHICAL_TFT)
55
 #define DEBUG_OUT ENABLED(DEBUG_GRAPHICAL_TFT)
37
 #include "../../core/debug_out.h"
56
 #include "../../core/debug_out.h"
236
   io.DataTransferEnd();
255
   io.DataTransferEnd();
237
 }
256
 }
238
 
257
 
239
-#endif // HAS_SPI_TFT || HAS_FSMC_TFT
258
+#endif // HAS_SPI_TFT || HAS_FSMC_TFT || HAS_LTDC_TFT

+ 9
- 26
Marlin/src/lcd/tft_io/tft_io.h View File

23
 
23
 
24
 #include "../../inc/MarlinConfig.h"
24
 #include "../../inc/MarlinConfig.h"
25
 
25
 
26
-#if HAS_SPI_TFT || HAS_FSMC_TFT || HAS_LTDC_TFT
27
-
28
 #if HAS_SPI_TFT
26
 #if HAS_SPI_TFT
29
   #include HAL_PATH(../../HAL, tft/tft_spi.h)
27
   #include HAL_PATH(../../HAL, tft/tft_spi.h)
30
 #elif HAS_FSMC_TFT
28
 #elif HAS_FSMC_TFT
35
   #error "TFT IO only supports SPI, FSMC or LTDC interface"
33
   #error "TFT IO only supports SPI, FSMC or LTDC interface"
36
 #endif
34
 #endif
37
 
35
 
38
-#define TFT_EXCHANGE_XY (1UL << 1)
39
-#define TFT_INVERT_X    (1UL << 2)
40
-#define TFT_INVERT_Y    (1UL << 3)
36
+#define TFT_EXCHANGE_XY _BV32(1)
37
+#define TFT_INVERT_X    _BV32(2)
38
+#define TFT_INVERT_Y    _BV32(3)
41
 
39
 
42
 #define TFT_NO_ROTATION           (0x00)
40
 #define TFT_NO_ROTATION           (0x00)
43
 #define TFT_ROTATE_90             (TFT_EXCHANGE_XY | TFT_INVERT_X)
41
 #define TFT_ROTATE_90             (TFT_EXCHANGE_XY | TFT_INVERT_X)
65
 // TFT_ORIENTATION is the "sum" of TFT_DEFAULT_ORIENTATION plus user TFT_ROTATION
63
 // TFT_ORIENTATION is the "sum" of TFT_DEFAULT_ORIENTATION plus user TFT_ROTATION
66
 #define TFT_ORIENTATION ((TFT_DEFAULT_ORIENTATION) ^ (TFT_ROTATION))
64
 #define TFT_ORIENTATION ((TFT_DEFAULT_ORIENTATION) ^ (TFT_ROTATION))
67
 
65
 
68
-#define TFT_COLOR_RGB   (1UL << 3)
69
-#define TFT_COLOR_BGR   (1UL << 4)
66
+#define TFT_COLOR_RGB   _BV32(3)
67
+#define TFT_COLOR_BGR   _BV32(4)
70
 
68
 
71
 // Each TFT Driver is responsible for its default color mode.
69
 // Each TFT Driver is responsible for its default color mode.
72
 // #ifndef TFT_COLOR
70
 // #ifndef TFT_COLOR
93
   #define TOUCH_ORIENTATION     TOUCH_LANDSCAPE
91
   #define TOUCH_ORIENTATION     TOUCH_LANDSCAPE
94
 #endif
92
 #endif
95
 
93
 
96
-#define LTDC_RGB        0xABAB
97
-#define SSD1963         0x5761
98
-#define ST7735          0x89F0
99
-#define ST7789          0x8552
100
-#define ST7796          0x7796
101
-#define R61505          0x1505
102
-#define ILI9328         0x9328
103
-#define ILI9341         0x9341
104
-#define ILI9488         0x9488
105
-#define ILI9488_ID1     0x8066 //Some ILI9488 have 0x8066 in the 0x04
106
-#define LERDGE_ST7796   0xFFFE
107
-#define AUTO            0xFFFF
108
-
109
 #ifndef TFT_DRIVER
94
 #ifndef TFT_DRIVER
110
   #define TFT_DRIVER    AUTO
95
   #define TFT_DRIVER    AUTO
111
 #endif
96
 #endif
112
 
97
 
113
-#define ESC_REG(x)        0xFFFF, 0x00FF & (uint16_t)x
114
-#define ESC_DELAY(x)      0xFFFF, 0x8000 | (x & 0x7FFF)
115
-#define ESC_END           0xFFFF, 0x7FFF
116
-#define ESC_FFFF          0xFFFF, 0xFFFF
98
+#define ESC_REG(x)   0xFFFF, 0x00FF & (uint16_t)x
99
+#define ESC_DELAY(x) 0xFFFF, 0x8000 | (x & 0x7FFF)
100
+#define ESC_END      0xFFFF, 0x7FFF
101
+#define ESC_FFFF     0xFFFF, 0xFFFF
117
 
102
 
118
 class TFT_IO {
103
 class TFT_IO {
119
 public:
104
 public:
143
 protected:
128
 protected:
144
   static uint32_t lcd_id;
129
   static uint32_t lcd_id;
145
 };
130
 };
146
-
147
-#endif // HAS_SPI_TFT || HAS_FSMC_TFT

Loading…
Cancel
Save