Browse Source

MKS Robin new 320x240 TFT Color UI support (#18985)

Anders Sahlman 3 years ago
parent
commit
b14f630f26
No account linked to committer's email address

+ 6
- 2
Marlin/src/lcd/tft/ili9341.h View File

@@ -38,8 +38,12 @@
38 38
 #define ILI9341_ORIENTATION_LEFT  ILI9341_MADCTL_MY | ILI9341_MADCTL_MX | ILI9341_MADCTL_MV // 320x240 ; Cable on the left side
39 39
 #define ILI9341_ORIENTATION_DOWN  ILI9341_MADCTL_MX	                                        // 240x320 ; Cable on the upper side
40 40
 
41
-#define ILI9341_COLOR_BGR
42
-#define ILI9341_ORIENTATION       ILI9341_ORIENTATION_LEFT
41
+#ifndef ILI9341_COLOR_RGB
42
+  #define ILI9341_COLOR_BGR
43
+#endif
44
+#ifndef ILI9341_ORIENTATION
45
+  #define ILI9341_ORIENTATION     ILI9341_ORIENTATION_LEFT
46
+#endif
43 47
 #define ILI9341_MADCTL_DATA      (ILI9341_ORIENTATION | TERN(ILI9341_COLOR_BGR, ILI9341_MADCTL_BGR, ILI9341_MADCTL_RGB))
44 48
 
45 49
 #define ILI9341_NOP               0x00 // No Operation

+ 3
- 1
Marlin/src/lcd/tft/ili9488.h View File

@@ -38,7 +38,9 @@
38 38
 #define ILI9488_ORIENTATION_LEFT  ILI9488_MADCTL_MY | ILI9488_MADCTL_MX | ILI9488_MADCTL_MV // 480x320 ; Cable on the left side
39 39
 #define ILI9488_ORIENTATION_DOWN  ILI9488_MADCTL_MX                                         // 320x480 ; Cable on the upper side
40 40
 
41
-#define ILI9488_COLOR_BGR
41
+#ifndef ILI9488_COLOR_RGB
42
+  #define ILI9488_COLOR_BGR
43
+#endif
42 44
 #ifndef ILI9488_ORIENTATION
43 45
   #define ILI9488_ORIENTATION     ILI9488_ORIENTATION_LEFT
44 46
 #endif

+ 87
- 41
Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h View File

@@ -22,34 +22,33 @@
22 22
 #pragma once
23 23
 
24 24
 /**
25
- * MKS Robin MINI (STM32F130VET6) board pin assignments
25
+ * MKS Robin mini (STM32F130VET6) board pin assignments
26 26
  */
27 27
 
28 28
 #ifndef __STM32F1__
29 29
   #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
30 30
 #elif HOTENDS > 1 || E_STEPPERS > 1
31
-  #error "MKS Robin mini supports up to 1 hotends / E-steppers. Comment out this line to continue."
31
+  #error "MKS Robin mini only supports 1 hotend / E-stepper. Comment out this line to continue."
32 32
 #endif
33 33
 
34
-#define BOARD_INFO_NAME "MKS Robin mini"
34
+#define BOARD_INFO_NAME "MKS Robin Mini"
35 35
 
36 36
 //
37 37
 // Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
38 38
 //
39 39
 #define DISABLE_DEBUG
40 40
 
41
+//
42
+// EEPROM
43
+//
41 44
 #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
42 45
   #define FLASH_EEPROM_EMULATION
43
-  // 2K in a AT24C16N
44
-  #define EEPROM_PAGE_SIZE     (0x800U)           // 2KB
45
-  #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
46
+  #define EEPROM_PAGE_SIZE              (0x800U)  // 2KB
47
+  #define EEPROM_START_ADDRESS      (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
46 48
   #define MARLIN_EEPROM_SIZE    EEPROM_PAGE_SIZE  // 2KB
47 49
 #endif
48 50
 
49
-//
50
-// Note: MKS Robin mini board is using SPI2 interface.
51
-//
52
-#define SPI_MODULE 2
51
+#define ENABLE_SPI2
53 52
 
54 53
 //
55 54
 // Limit Switches
@@ -82,6 +81,15 @@
82 81
 #define E0_STEP_PIN                         PD6
83 82
 #define E0_DIR_PIN                          PD3
84 83
 
84
+
85
+// Motor current PWM pins
86
+#define MOTOR_CURRENT_PWM_XY_PIN            PA6
87
+#define MOTOR_CURRENT_PWM_Z_PIN             PA7
88
+#define MOTOR_CURRENT_PWM_E_PIN             PB0
89
+#define MOTOR_CURRENT_PWM_RANGE             1500  // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
90
+#ifndef DEFAULT_PWM_MOTOR_CURRENT
91
+  #define DEFAULT_PWM_MOTOR_CURRENT { 800, 800, 800 } 
92
+#endif
85 93
 //
86 94
 // Temperature Sensors
87 95
 //
@@ -91,64 +99,102 @@
91 99
 //
92 100
 // Heaters / Fans
93 101
 //
94
-#define HEATER_0_PIN                        PC3   // HEATER1
95
-#define HEATER_BED_PIN                      PA0   // HOT BED
102
+#define HEATER_0_PIN                        PC3
103
+#define HEATER_BED_PIN                      PA0
96 104
 
97 105
 #define FAN_PIN                             PB1   // FAN
98 106
 
99 107
 //
100
-// Thermocouples
101
-//
102
-//#define MAX6675_SS_PIN                    PE5   // TC1 - CS1
103
-//#define MAX6675_SS_PIN                    PE6   // TC2 - CS2
104
-
105
-//
106 108
 // Misc. Functions
107 109
 //
108 110
 #define POWER_LOSS_PIN                      PA2   // PW_DET
109 111
 #define PS_ON_PIN                           PA3   // PW_OFF
110 112
 
111
-//#define LED_PIN                           PB2
113
+#define SERVO0_PIN                          PA8   // Enable BLTOUCH support on IO0 (WIFI connector)
114
+
115
+#define MT_DET_1_PIN                        PA4
116
+#define MT_DET_PIN_INVERTING false
117
+
118
+#define WIFI_IO0_PIN                        PC13
119
+
120
+//
121
+// SD Card
122
+//
123
+#ifndef SDCARD_CONNECTION
124
+  #define SDCARD_CONNECTION              ONBOARD
125
+#endif
126
+
127
+#define SDIO_SUPPORT
128
+#define SDIO_CLOCK                       4500000  // 4.5 MHz
129
+#define SD_DETECT_PIN                       PD12
130
+#define ONBOARD_SD_CS_PIN                   PC11
112 131
 
113 132
 //
114 133
 // LCD / Controller
115 134
 //
116 135
 #define BEEPER_PIN                          PC5
117
-#define SD_DETECT_PIN                       PD12
118 136
 
119 137
 /**
120 138
  * Note: MKS Robin TFT screens use various TFT controllers.
121 139
  * If the screen stays white, disable 'LCD_RESET_PIN'
122 140
  * to let the bootloader init the screen.
123 141
  */
142
+  #define XPT2046_X_CALIBRATION            12033
143
+  #define XPT2046_Y_CALIBRATION            -9047
144
+  #define XPT2046_X_OFFSET                   -30
145
+  #define XPT2046_Y_OFFSET                   254
146
+
124 147
 #if ENABLED(FSMC_GRAPHICAL_TFT)
148
+
125 149
   #define FSMC_CS_PIN                       PD7   // NE4
126 150
   #define FSMC_RS_PIN                       PD11  // A0
127 151
 
128
-  #define LCD_RESET_PIN                     PC6
152
+  #define LCD_USE_DMA_FSMC                  // Use DMA transfers to send data to the TFT
153
+  #define FSMC_DMA_DEV                      DMA2
154
+  #define FSMC_DMA_CHANNEL                  DMA_CH5
155
+
156
+  #define LCD_RESET_PIN                     PC6   // FSMC_RST
129 157
   #define LCD_BACKLIGHT_PIN                 PD13
130 158
 
131 159
   #if NEED_TOUCH_PINS
132
-    #define TOUCH_CS_PIN                    PC2
133
-    #define TOUCH_SCK_PIN                   PB13
134
-    #define TOUCH_MOSI_PIN                  PB15
135
-    #define TOUCH_MISO_PIN                  PB14
160
+    #define TOUCH_CS_PIN                    PC2   // SPI2_NSS
161
+    #define TOUCH_SCK_PIN                   PB13  // SPI2_SCK
162
+    #define TOUCH_MISO_PIN                  PB14  // SPI2_MISO
163
+    #define TOUCH_MOSI_PIN                  PB15  // SPI2_MOSI
136 164
   #endif
165
+
166
+#elif ENABLED(TFT_320x240) //TFT32/28
167
+
168
+  #define TFT_RESET_PIN                     PC6
169
+  #define TFT_BACKLIGHT_PIN                 PD13
170
+
171
+  #define LCD_USE_DMA_FSMC                        // Use DMA transfers to send data to the TFT
172
+  #define FSMC_CS_PIN                       PD7
173
+  #define FSMC_RS_PIN                       PD11
174
+  #define FSMC_DMA_DEV                      DMA2
175
+  #define FSMC_DMA_CHANNEL               DMA_CH5
176
+
177
+  #define TOUCH_CS_PIN                      PC2   // SPI2_NSS
178
+  #define TOUCH_SCK_PIN                     PB13  // SPI2_SCK
179
+  #define TOUCH_MISO_PIN                    PB14  // SPI2_MISO
180
+  #define TOUCH_MOSI_PIN                    PB15  // SPI2_MOSI
181
+
182
+  #define TFT_DRIVER                     ILI9341
183
+  #define TFT_BUFFER_SIZE                  14400
184
+ 
185
+  // YV for normal screen mounting
186
+  #define ILI9341_ORIENTATION  ILI9341_MADCTL_MY | ILI9341_MADCTL_MV
187
+  // XV for 180° rotated screen mounting
188
+  //#define ILI9341_ORIENTATION  ILI9341_MADCTL_MX | ILI9341_MADCTL_MV
189
+
190
+  #define ILI9341_COLOR_RGB
137 191
 #endif
138 192
 
139
-// Motor current PWM pins
140
-#define MOTOR_CURRENT_PWM_XY_PIN            PA6
141
-#define MOTOR_CURRENT_PWM_Z_PIN             PA7
142
-#define MOTOR_CURRENT_PWM_E_PIN             PB0
143
-#define MOTOR_CURRENT_PWM_RANGE 1500              // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
144
-#define DEFAULT_PWM_MOTOR_CURRENT  { 1030, 1030, 1030 } // 1.05Amp per driver, here is XY, Z and E. This values determined empirically.
145
-
146
-// This is a kind of workaround in case native marlin "digipot" interface won't work.
147
-// Required to enable related code in STM32F1/HAL.cpp
148
-//#ifndef MKS_ROBIN_MINI_VREF_PWM
149
-//  #define MKS_ROBIN_MINI_VREF_PWM
150
-//#endif
151
-
152
-//#define VREF_XY_PIN                       PA6
153
-//#define VREF_Z_PIN                        PA7
154
-//#define VREF_E1_PIN                       PB0
193
+#define HAS_SPI_FLASH 1
194
+#define SPI_FLASH_SIZE                 0x1000000  // 16MB
195
+#if HAS_SPI_FLASH
196
+  #define W25QXX_CS_PIN                     PB12  // Flash chip-select
197
+  #define W25QXX_MOSI_PIN                   PB15
198
+  #define W25QXX_MISO_PIN                   PB14
199
+  #define W25QXX_SCK_PIN                    PB13
200
+#endif

Loading…
Cancel
Save