Add JGAurora A5S and A1 (STM32F103ZET6) (#14291)
- Now compiles and works correctly with changes to HAL timers and watchdog. - Does NOT include awesome work on touch screen function. - Does have working LCD and SD-based EEPROM.2.0.x
parent
6fb3db1633
commit
3021097888
@ -0,0 +1,125 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* 2017 Victor Perez Marlin for stm32f1 test
|
||||
* 2018 Modified by Pablo Crespo for Morpheus Board (https://github.com/pscrespo/Morpheus-STM32)
|
||||
* 2019 Modified by Roberto Mariani & Samuel Pinches for JGAurora A5S & A1 Board.
|
||||
*/
|
||||
|
||||
/**
|
||||
* JGAurora A5S A1 Board pin assignments
|
||||
*/
|
||||
|
||||
#ifndef __STM32F1__
|
||||
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
|
||||
#endif
|
||||
|
||||
#define BOARD_NAME "JGAurora A5S A1 board"
|
||||
|
||||
// #define STM32_XL_DENSITY // required, but should be set by platformio flags, not here! (why? not sure.)
|
||||
|
||||
//#define MCU_STM32F103ZE // not yet required
|
||||
|
||||
// // I2C EEPROM with 64K of space - AT24C64
|
||||
// #define I2C_EEPROM
|
||||
// #define E2END 0x7FFF
|
||||
|
||||
// Enable EEPROM Emulation for this board
|
||||
|
||||
//#define FLASH_EEPROM_EMULATION 1
|
||||
//#define E2END 0xFFF //((uint32)(EEPROM_START_ADDRESS + EEPROM_PAGE_SIZE + EEPROM_PAGE_SIZE)) // not 0xFFF
|
||||
//#define EEPROM_CHITCHAT
|
||||
//#define DEBUG_EEPROM_READWRITE
|
||||
|
||||
//
|
||||
// Limit Switches
|
||||
//
|
||||
#define X_STOP_PIN PC6
|
||||
#define Y_STOP_PIN PG8
|
||||
#define Z_STOP_PIN PG7
|
||||
|
||||
//
|
||||
// Steppers
|
||||
//
|
||||
#define X_STEP_PIN PD6
|
||||
#define X_DIR_PIN PD3
|
||||
#define X_ENABLE_PIN PG9
|
||||
|
||||
#define Y_STEP_PIN PG12
|
||||
#define Y_DIR_PIN PG11
|
||||
#define Y_ENABLE_PIN PG13
|
||||
|
||||
#define Z_STEP_PIN PG15
|
||||
#define Z_DIR_PIN PG14
|
||||
#define Z_ENABLE_PIN PB8
|
||||
|
||||
#define E0_STEP_PIN PE2
|
||||
#define E0_DIR_PIN PB9
|
||||
#define E0_ENABLE_PIN PE3
|
||||
|
||||
#define E1_STEP_PIN PE5
|
||||
#define E1_DIR_PIN PE4
|
||||
#define E1_ENABLE_PIN PE6
|
||||
|
||||
//
|
||||
// Temperature Sensors
|
||||
//
|
||||
#define TEMP_0_PIN PC2
|
||||
#define TEMP_BED_PIN PC1
|
||||
|
||||
//
|
||||
// Heaters / Fans
|
||||
//
|
||||
#define HEATER_0_PIN PA2
|
||||
#define HEATER_BED_PIN PA3
|
||||
|
||||
#define FAN_PIN PA1
|
||||
|
||||
#define PS_ON_PIN PA0
|
||||
#define FIL_RUNOUT_PIN PC7
|
||||
|
||||
//
|
||||
// LCD
|
||||
//
|
||||
#define LCD_BACKLIGHT_PIN PF11
|
||||
#define FSMC_CS_PIN PD7
|
||||
#define FSMC_RS_PIN PG0
|
||||
|
||||
//
|
||||
// SD Card
|
||||
//
|
||||
#define SD_DETECT_PIN PF10
|
||||
|
||||
//
|
||||
// Misc.
|
||||
//
|
||||
#define BEEPER_PIN PC3 // use PB7 to shut up if desired
|
||||
#define LED_PIN PC13
|
||||
|
||||
// Touch support
|
||||
#define BTN_ENC PA11 // Real pin is needed to enable encoder's push button functionality used by touch screen. PA11 gives stable value.
|
||||
|
||||
#define TOUCH_CS PA4
|
||||
//#define TOUCH_INTERRUPT PC4 // Not yet implemented
|
||||
|
||||
#define NO_PAUSE_AFTER_PRINT
|
@ -0,0 +1,14 @@
|
||||
MEMORY
|
||||
{
|
||||
ram (rwx) : ORIGIN = 0x20000C00, LENGTH = 64K - 3K
|
||||
rom (rx) : ORIGIN = 0x0800A000, LENGTH = 512K - 40K
|
||||
}
|
||||
|
||||
/* 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
|
@ -0,0 +1,43 @@
|
||||
Import("env")
|
||||
|
||||
# Relocate firmware from 0x08000000 to 0x0800A000
|
||||
env['CPPDEFINES'].remove(("VECT_TAB_ADDR", "0x8000000"))
|
||||
#alternatively, for STSTM <=5.1.0 use line below
|
||||
#env['CPPDEFINES'].remove(("VECT_TAB_ADDR", 134217728))
|
||||
env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x0800A000"))
|
||||
env.Replace(LDSCRIPT_PATH="buildroot/share/PlatformIO/ldscripts/jgaurora_a5s_a1.ld")
|
||||
|
||||
#append ${PROGNAME}.bin firmware after bootloader and save it as 'jgaurora_firmware.bin'
|
||||
def addboot(source,target,env):
|
||||
import os
|
||||
|
||||
firmware = open(target[0].path, "rb")
|
||||
lengthfirmware = os.path.getsize(target[0].path)
|
||||
bootloader_dir = "buildroot/share/PlatformIO/scripts/jgaurora_bootloader.bin"
|
||||
bootloader = open(bootloader_dir, "rb")
|
||||
lengthbootloader = os.path.getsize(bootloader_dir)
|
||||
firmware_with_boothloader_dir = target[0].dir.path +'/firmware_with_bootloader.bin'
|
||||
if os.path.exists(firmware_with_boothloader_dir):
|
||||
os.remove(firmware_with_boothloader_dir)
|
||||
firmwareimage = open(firmware_with_boothloader_dir, "wb")
|
||||
position = 0
|
||||
while position < lengthbootloader:
|
||||
byte = bootloader.read(1)
|
||||
firmwareimage.write(byte)
|
||||
position += 1
|
||||
position = 0
|
||||
while position < lengthfirmware:
|
||||
byte = firmware.read(1)
|
||||
firmwareimage.write(byte)
|
||||
position += 1
|
||||
bootloader.close()
|
||||
firmware.close()
|
||||
firmwareimage.close()
|
||||
firmware_without_bootloader_dir = target[0].dir.path+'/firmware_for_sd_upload.bin'
|
||||
if os.path.exists(firmware_without_bootloader_dir):
|
||||
os.remove(firmware_without_bootloader_dir)
|
||||
os.rename(target[0].path, firmware_without_bootloader_dir)
|
||||
#os.rename(target[0].dir.path+'/firmware_with_bootloader.bin', target[0].dir.path+'/firmware.bin')
|
||||
|
||||
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", addboot);
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue