Browse Source

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

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

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

38
 #define ILI9341_ORIENTATION_LEFT  ILI9341_MADCTL_MY | ILI9341_MADCTL_MX | ILI9341_MADCTL_MV // 320x240 ; Cable on the left side
38
 #define ILI9341_ORIENTATION_LEFT  ILI9341_MADCTL_MY | ILI9341_MADCTL_MX | ILI9341_MADCTL_MV // 320x240 ; Cable on the left side
39
 #define ILI9341_ORIENTATION_DOWN  ILI9341_MADCTL_MX	                                        // 240x320 ; Cable on the upper side
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
 #define ILI9341_MADCTL_DATA      (ILI9341_ORIENTATION | TERN(ILI9341_COLOR_BGR, ILI9341_MADCTL_BGR, ILI9341_MADCTL_RGB))
47
 #define ILI9341_MADCTL_DATA      (ILI9341_ORIENTATION | TERN(ILI9341_COLOR_BGR, ILI9341_MADCTL_BGR, ILI9341_MADCTL_RGB))
44
 
48
 
45
 #define ILI9341_NOP               0x00 // No Operation
49
 #define ILI9341_NOP               0x00 // No Operation

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

38
 #define ILI9488_ORIENTATION_LEFT  ILI9488_MADCTL_MY | ILI9488_MADCTL_MX | ILI9488_MADCTL_MV // 480x320 ; Cable on the left side
38
 #define ILI9488_ORIENTATION_LEFT  ILI9488_MADCTL_MY | ILI9488_MADCTL_MX | ILI9488_MADCTL_MV // 480x320 ; Cable on the left side
39
 #define ILI9488_ORIENTATION_DOWN  ILI9488_MADCTL_MX                                         // 320x480 ; Cable on the upper side
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
 #ifndef ILI9488_ORIENTATION
44
 #ifndef ILI9488_ORIENTATION
43
   #define ILI9488_ORIENTATION     ILI9488_ORIENTATION_LEFT
45
   #define ILI9488_ORIENTATION     ILI9488_ORIENTATION_LEFT
44
 #endif
46
 #endif

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

22
 #pragma once
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
 #ifndef __STM32F1__
28
 #ifndef __STM32F1__
29
   #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
29
   #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
30
 #elif HOTENDS > 1 || E_STEPPERS > 1
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
 #endif
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
 // Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
37
 // Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
38
 //
38
 //
39
 #define DISABLE_DEBUG
39
 #define DISABLE_DEBUG
40
 
40
 
41
+//
42
+// EEPROM
43
+//
41
 #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
44
 #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
42
   #define FLASH_EEPROM_EMULATION
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
   #define MARLIN_EEPROM_SIZE    EEPROM_PAGE_SIZE  // 2KB
48
   #define MARLIN_EEPROM_SIZE    EEPROM_PAGE_SIZE  // 2KB
47
 #endif
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
 // Limit Switches
54
 // Limit Switches
82
 #define E0_STEP_PIN                         PD6
81
 #define E0_STEP_PIN                         PD6
83
 #define E0_DIR_PIN                          PD3
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
 // Temperature Sensors
94
 // Temperature Sensors
87
 //
95
 //
91
 //
99
 //
92
 // Heaters / Fans
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
 #define FAN_PIN                             PB1   // FAN
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
 // Misc. Functions
108
 // Misc. Functions
107
 //
109
 //
108
 #define POWER_LOSS_PIN                      PA2   // PW_DET
110
 #define POWER_LOSS_PIN                      PA2   // PW_DET
109
 #define PS_ON_PIN                           PA3   // PW_OFF
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
 // LCD / Controller
133
 // LCD / Controller
115
 //
134
 //
116
 #define BEEPER_PIN                          PC5
135
 #define BEEPER_PIN                          PC5
117
-#define SD_DETECT_PIN                       PD12
118
 
136
 
119
 /**
137
 /**
120
  * Note: MKS Robin TFT screens use various TFT controllers.
138
  * Note: MKS Robin TFT screens use various TFT controllers.
121
  * If the screen stays white, disable 'LCD_RESET_PIN'
139
  * If the screen stays white, disable 'LCD_RESET_PIN'
122
  * to let the bootloader init the screen.
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
 #if ENABLED(FSMC_GRAPHICAL_TFT)
147
 #if ENABLED(FSMC_GRAPHICAL_TFT)
148
+
125
   #define FSMC_CS_PIN                       PD7   // NE4
149
   #define FSMC_CS_PIN                       PD7   // NE4
126
   #define FSMC_RS_PIN                       PD11  // A0
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
   #define LCD_BACKLIGHT_PIN                 PD13
157
   #define LCD_BACKLIGHT_PIN                 PD13
130
 
158
 
131
   #if NEED_TOUCH_PINS
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
   #endif
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
 #endif
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