Browse Source

Support for FLY MINI (#19185)

石立枫 4 years ago
parent
commit
bec1844954

+ 1 - 0
Marlin/src/core/boards.h

@@ -320,6 +320,7 @@
 #define BOARD_CREALITY_V4             4034  // Creality v4.x (STM32F103RE)
 #define BOARD_CREALITY_V427           4035  // Creality v4.2.7 (STM32F103RE)
 #define BOARD_TRIGORILLA_PRO          4036  // Trigorilla Pro (STM32F103ZET6)
+#define BOARD_FLY_MINI                4037  // FLY MINI (STM32F103RCT6)
 
 //
 // ARM Cortex-M4F

+ 2 - 0
Marlin/src/pins/pins.h

@@ -569,6 +569,8 @@
   #include "stm32f1/pins_CREALITY_V427.h"       // STM32F1                                env:STM32F103RET6_creality
 #elif MB(TRIGORILLA_PRO)
   #include "stm32f1/pins_TRIGORILLA_PRO.h"      // STM32F1                                env:trigorilla_pro
+#elif MB(FLY_MINI)
+  #include "stm32f1/pins_FLY_MINI.h"            // STM32F1                                env:FLY_MINI
 
 //
 // ARM Cortex-M4F

+ 172 - 0
Marlin/src/pins/stm32f1/pins_FLY_MINI.h

@@ -0,0 +1,172 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#ifndef __STM32F1__
+  #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME   "FLY_MINI"
+#define BOARD_WEBSITE_URL    "github.com/FLYmaker"
+#define DISABLE_JTAG
+
+//
+// Flash EEPROM Emulation
+//
+#define FLASH_EEPROM_EMULATION
+#define EEPROM_PAGE_SIZE     0x800 // 2KB
+#define EEPROM_START_ADDRESS (0x8000000 + 256 * 1024 - 2 * EEPROM_PAGE_SIZE) // 256K firmware space
+#define MARLIN_EEPROM_SIZE   EEPROM_PAGE_SIZE
+
+//
+// Servos
+//
+#define SERVO0_PIN                          PA8
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN                           PC12
+#define X_MAX_PIN                           PC11
+#define Y_MIN_PIN                           PC10
+#define Y_MAX_PIN                           PA15
+#define Z_MIN_PIN                           PA14
+#define Z_MAX_PIN                           PA13
+
+//
+// Steppers
+//
+#define X_STEP_PIN                          PB1
+#define X_DIR_PIN                           PB2
+#define X_ENABLE_PIN                        PB10
+#ifndef X_CS_PIN
+  #define X_CS_PIN                          PB0
+#endif
+
+#define Y_STEP_PIN                          PA2
+#define Y_DIR_PIN                           PC4
+#define Y_ENABLE_PIN                        PC5
+#ifndef Y_CS_PIN
+  #define Y_CS_PIN                          PA7
+#endif
+
+#define Z_STEP_PIN                          PA3
+#define Z_DIR_PIN                           PA5
+#define Z_ENABLE_PIN                        PA6
+#ifndef Z_CS_PIN
+  #define Z_CS_PIN                          PA4
+#endif
+
+#define E0_STEP_PIN                         PA1
+#define E0_DIR_PIN                          PC3
+#define E0_ENABLE_PIN                       PA0
+#ifndef E0_CS_PIN
+  #define E0_CS_PIN                         PC2
+#endif
+
+#if ENABLED(TMC_USE_SW_SPI)
+  #ifndef TMC_SW_MOSI
+    #define TMC_SW_MOSI                     PB15
+  #endif
+  #ifndef TMC_SW_MISO
+    #define TMC_SW_MISO                     PB14
+  #endif
+  #ifndef TMC_SW_SCK
+    #define TMC_SW_SCK                      PB13
+  #endif
+#endif
+
+#if HAS_TMC_UART
+  //
+  // Software serial
+  //
+  #define X_SERIAL_TX_PIN                   PB0
+  #define X_SERIAL_RX_PIN                   PB0
+  #define Y_SERIAL_TX_PIN                   PA7
+  #define Y_SERIAL_RX_PIN                   PA7
+  #define Z_SERIAL_TX_PIN                   PA4
+  #define Z_SERIAL_RX_PIN                   PA4
+  #define E0_SERIAL_TX_PIN                  PC2
+  #define E0_SERIAL_RX_PIN                  PC2
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN                        PC6
+#define HEATER_BED_PIN                      PC7
+#ifndef FAN_PIN
+  #define FAN_PIN                           PC8
+#endif
+#define FAN1_PIN                            PC9
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN                        PC0   // Analog Input
+#define TEMP_0_PIN                          PC1   // Analog Input
+
+//
+// LCD Pins
+//
+
+//
+// LCD / Controller
+//
+#define ENABLE_SPI2
+#define SS_PIN                              PB12
+#define SCK_PIN                             PB13
+#define MISO_PIN                            PB14
+#define MOSI_PIN                            PB15
+
+#define SDSS                              SS_PIN 
+#define SD_DETECT_PIN                       PB11
+
+#define BEEPER_PIN                          PC14
+
+#define LCD_PINS_RS                         PB8
+#define LCD_PINS_ENABLE                     PB9
+#define LCD_PINS_D4                         PB7
+#define LCD_PINS_D5                         PB6
+#define LCD_PINS_D6                         PB5
+#define LCD_PINS_D7                         PB4
+
+#define BTN_EN1                             PD2
+#define BTN_EN2                             PB3
+#define BTN_ENC                             PC13
+
+//
+// Filament runout
+//
+
+//
+// ST7920 Delays
+//
+#ifndef ST7920_DELAY_1
+  #define ST7920_DELAY_1            DELAY_NS(96)
+#endif
+#ifndef ST7920_DELAY_2
+  #define ST7920_DELAY_2            DELAY_NS(48)
+#endif
+#ifndef ST7920_DELAY_3
+  #define ST7920_DELAY_3           DELAY_NS(715)
+#endif

+ 14 - 0
buildroot/share/PlatformIO/ldscripts/fly_mini.ld

@@ -0,0 +1,14 @@
+MEMORY
+{
+  ram (rwx) : ORIGIN = 0x20000000, LENGTH = 48K - 40
+  rom (rx)  : ORIGIN = 0x08005000, LENGTH = 256K - 20K - 4K
+}
+
+/* Provide memory region aliases for common.inc */
+REGION_ALIAS("REGION_TEXT", rom);
+REGION_ALIAS("REGION_DATA", ram);
+REGION_ALIAS("REGION_BSS", ram);
+REGION_ALIAS("REGION_RODATA", rom);
+
+/* Let common.inc handle the real work. */
+INCLUDE common.inc

+ 16 - 0
buildroot/share/PlatformIO/scripts/fly_mini.py

@@ -0,0 +1,16 @@
+import os
+Import("env")
+
+# Relocate firmware from 0x08000000 to 0x08005000
+for define in env['CPPDEFINES']:
+    if define[0] == "VECT_TAB_ADDR":
+        env['CPPDEFINES'].remove(define)
+env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08005000"))
+
+custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/fly_mini.ld")
+for i, flag in enumerate(env["LINKFLAGS"]):
+    if "-Wl,-T" in flag:
+        env["LINKFLAGS"][i] = "-Wl,-T" + custom_ld_script
+    elif flag == "-T":
+        env["LINKFLAGS"][i + 1] = custom_ld_script
+

+ 1 - 1
buildroot/share/PlatformIO/variants/FLY_F407ZG/PeripheralPins.c

@@ -144,7 +144,7 @@ WEAK const PinMap PinMap_PWM[] = {
   {PE_5,  TIM9,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
   {PE_6,  TIM9,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
   //{PE_11, TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
-  {PE_13, TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
+  //{PE_13, TIM1,   STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
   {PF_6,  TIM10,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1
   {PF_7,  TIM11,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1
   {PF_8,  TIM13,  STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1

+ 13 - 0
platformio.ini

@@ -1125,6 +1125,19 @@ build_flags       = ${common_stm32.build_flags}
 extra_scripts     = ${common.extra_scripts}
   pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
 
+#
+# FLY MINI(stm32f103rct6)
+#
+[env:FLY_MINI]
+platform          = ${common_stm32f1.platform}
+extends           = common_stm32f1
+board             = genericSTM32F103RC
+platform_packages = tool-stm32duino
+extra_scripts     = ${common.extra_scripts}
+ buildroot/share/PlatformIO/scripts/fly_mini.py
+build_flags       = ${common_stm32f1.build_flags}
+ -DDEBUG_LEVEL=0 -DSS_TIMER=4
+
 #
 # FYSETC S6 (STM32F446VET6 ARM Cortex-M4)
 #