328 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			328 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 *******************************************************************************
 | 
						|
 * Copyright (c) 2017, STMicroelectronics
 | 
						|
 * All rights reserved.
 | 
						|
 *
 | 
						|
 * Redistribution and use in source and binary forms, with or without
 | 
						|
 * modification, are permitted provided that the following conditions are met:
 | 
						|
 *
 | 
						|
 * 1. Redistributions of source code must retain the above copyright notice,
 | 
						|
 *    this list of conditions and the following disclaimer.
 | 
						|
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 | 
						|
 *    this list of conditions and the following disclaimer in the documentation
 | 
						|
 *    and/or other materials provided with the distribution.
 | 
						|
 * 3. Neither the name of STMicroelectronics nor the names of its contributors
 | 
						|
 *    may be used to endorse or promote products derived from this software
 | 
						|
 *    without specific prior written permission.
 | 
						|
 *
 | 
						|
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
						|
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
						|
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
						|
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
						|
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
						|
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
						|
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
						|
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
						|
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
						|
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
						|
 *******************************************************************************
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _VARIANT_ARDUINO_STM32_
 | 
						|
#define _VARIANT_ARDUINO_STM32_
 | 
						|
/*----------------------------------------------------------------------------
 | 
						|
 *        Headers
 | 
						|
 *----------------------------------------------------------------------------*/
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif // __cplusplus
 | 
						|
 | 
						|
/*----------------------------------------------------------------------------
 | 
						|
 *        Pins
 | 
						|
 *----------------------------------------------------------------------------*/
 | 
						|
#ifdef ARDUINO_STEVAL
 | 
						|
 | 
						|
 | 
						|
/*----------------------------------------------------------------------------
 | 
						|
 *        Pins
 | 
						|
 *----------------------------------------------------------------------------*/
 | 
						|
// USART1_MAIN
 | 
						|
#define PA9  0 //TX
 | 
						|
#define PA10 1 //RX
 | 
						|
 | 
						|
// WIFI (USART2)
 | 
						|
#define PD3   2 // CTS
 | 
						|
#define PD4   3 // RTS
 | 
						|
#define PD5   4 // TX
 | 
						|
#define PD6   5 // RX
 | 
						|
#define PB5   6 // WIFI_WAKEUP
 | 
						|
#define PE11  7 // WIFI_RESET
 | 
						|
#define PE12  8 // WIFI_BOOT
 | 
						|
 | 
						|
// STATUS_LED
 | 
						|
#define PE1   9 // STATUS_LED
 | 
						|
 | 
						|
// SPI USER
 | 
						|
#define PB12 10 // SPI_CS
 | 
						|
#define PB15 11 // SPI_MOSI
 | 
						|
#define PB14 12 // SPI_MISO
 | 
						|
#define PB13 13 // SPI_SCK
 | 
						|
 | 
						|
// I2C USER
 | 
						|
#define PB7  14 // SDA
 | 
						|
#define PB6  15 // SCL
 | 
						|
 | 
						|
// SPI
 | 
						|
#define PA4  16 // SPI_CS
 | 
						|
#define PA5  17 // SPI_SCK
 | 
						|
#define PA6  18 // SPI_MISO
 | 
						|
#define PA7  19 // SPI_MOSI
 | 
						|
 | 
						|
// JTAG
 | 
						|
#define PA13 20 // JTAG_TMS/SWDIO
 | 
						|
#define PA14 21 // JTAG_TCK/SWCLK
 | 
						|
#define PB3  22 // JTAG_TDO/SWO
 | 
						|
 | 
						|
// SDCARD
 | 
						|
#define PC8  23 // SDIO_D0
 | 
						|
#define PC9  24 // SDIO_D1
 | 
						|
#define PA15 25 // SD_CARD_DETECT
 | 
						|
#define PC10 26 // SDIO_D2
 | 
						|
#define PC11 27 // SDIO_D3
 | 
						|
#define PC12 28 // SDIO_CK
 | 
						|
#define PD2  29 // SDIO_CMD
 | 
						|
 | 
						|
// OTG
 | 
						|
#define PA11 30 //OTG_DM
 | 
						|
#define PA12 31 //OTG_DP
 | 
						|
 | 
						|
// IR/PROBE
 | 
						|
#define PD1  32 //IR_OUT
 | 
						|
#define PC1  33 //IR_ON
 | 
						|
 | 
						|
// USER_PINS
 | 
						|
#define PD7  34 // USER3
 | 
						|
#define PB9  35 // USER1
 | 
						|
#define PE0  36 // USER2
 | 
						|
#define PB4  37 // USER4
 | 
						|
 | 
						|
// USERKET
 | 
						|
#define PE7  38 // USER_BUTTON
 | 
						|
 | 
						|
// ENDSTOPS
 | 
						|
#define PD8  39 // X_STOP
 | 
						|
#define PD9  40 // Y_STOP
 | 
						|
#define PD10 41 // Z_STOP
 | 
						|
#define PD11 42 // U_STOP
 | 
						|
#define PA8  43 // V_STOP
 | 
						|
#define PD0  44 // W_STOP
 | 
						|
 | 
						|
// HEATERS
 | 
						|
#define PD13 45 // BED_HEAT_2
 | 
						|
#define PD14 46 // BED_HEAT_1
 | 
						|
#define PD15 47 // BED_HEAT_3
 | 
						|
#define PC7  48 // E1_HEAT_PWM
 | 
						|
#define PB0  49 // E2_HEAT_PWM
 | 
						|
#define PB1  50 // E3_HEAT_PWM
 | 
						|
 | 
						|
// THERMISTOR
 | 
						|
#define PC2  51 // BED_THERMISTOR_1
 | 
						|
#define PC3  52 // BED_THERMISTOR_2
 | 
						|
#define PA3  53 // BED_THERMISTOR_3
 | 
						|
#define PA0  54 // E1_THERMISTOR
 | 
						|
#define PA1  55 // E2_THERMISTOR
 | 
						|
#define PA2  56 // E3_THERMISTOR
 | 
						|
 | 
						|
// FANS
 | 
						|
#define PC4  57 // E1_FAN
 | 
						|
#define PC5  58 // E2_FAN
 | 
						|
#define PE8  59 // E3_FAN
 | 
						|
 | 
						|
// X_MOTOR
 | 
						|
#define PE13 60 // X_RESET
 | 
						|
#define PE14 61 // X_PWM
 | 
						|
#define PE15 62 // X_DIR
 | 
						|
 | 
						|
// Y_MOTOR
 | 
						|
#define PE10 63 // Y_RESET
 | 
						|
#define PB10 64 // Y_PWM
 | 
						|
#define PE9  65 // Y_DIR
 | 
						|
 | 
						|
// Z_MOTOR
 | 
						|
#define PC15 66 // Z_RESET
 | 
						|
#define PC6  67 // Z_PWM
 | 
						|
#define PC0  68 // Z_DIR
 | 
						|
 | 
						|
// E1_MOTOR
 | 
						|
#define PC14 69 // E1_RESET
 | 
						|
#define PC13 70 // E1_DIR
 | 
						|
#define PD12 71 // E1_PWM
 | 
						|
 | 
						|
// E2_MOTOR
 | 
						|
#define PE4  72 // E2_RESET
 | 
						|
#define PE5  73 // E2_PWM
 | 
						|
#define PE6  74 // E2_DIR
 | 
						|
 | 
						|
// E3_MOTOR
 | 
						|
#define PE3  75 // E3_RESET
 | 
						|
#define PE2  76 // E3_DIR
 | 
						|
#define PB8  77 // E3_PWM
 | 
						|
 | 
						|
// This must be a literal
 | 
						|
#define NUM_DIGITAL_PINS        78
 | 
						|
// This must be a literal with a value less than or equal to to MAX_ANALOG_INPUTS
 | 
						|
#define NUM_ANALOG_INPUTS       6
 | 
						|
#define NUM_ANALOG_FIRST        51
 | 
						|
 | 
						|
// On-board LED pin number
 | 
						|
#define LED_BUILTIN             PE1
 | 
						|
#define LED_GREEN               LED_BUILTIN
 | 
						|
 | 
						|
// On-board user button
 | 
						|
#define USER_BTN                PE7
 | 
						|
 | 
						|
// UART Definitions
 | 
						|
#define SERIAL_UART_INSTANCE    1 // Connected to ST-Link
 | 
						|
//#define SERIAL_UART_INSTANCE    2 // Connected to WIFI
 | 
						|
 | 
						|
// Default pin used for 'Serial' instance (ex: ST-Link)
 | 
						|
// Mandatory for Firmata
 | 
						|
#if SERIAL_UART_INSTANCE == 1             // ST-Link & J23
 | 
						|
  #define PIN_SERIAL_RX         PA10
 | 
						|
  #define PIN_SERIAL_TX         PA9
 | 
						|
#elif SERIAL_UART_INSTANCE == 2         // WIFI interface
 | 
						|
  #define PIN_SERIAL2_RX        PD6
 | 
						|
  #define PIN_SERIAL2_TX        PD5
 | 
						|
#else
 | 
						|
  #error "Invalid setting for SERIAL_UART_INSTANCE."
 | 
						|
#endif
 | 
						|
 | 
						|
// Timer Definitions
 | 
						|
#define TIMER_SERVO             TIM4  // TIMER_SERVO must be defined in this file
 | 
						|
#define TIMER_TONE              TIM5  // TIMER_TONE must be defined in this file
 | 
						|
 | 
						|
/* SD detect signal */
 | 
						|
/*
 | 
						|
 * By default, R67 is not provided, so SD card detect is not used.
 | 
						|
 * Note: SD CD (pin 16 of expansion connector J23) can be connected
 | 
						|
 * to GND in order to be able to use SD_DETECT_PIN
 | 
						|
 */
 | 
						|
/*#define SD_DETECT_PIN           PA15*/
 | 
						|
 | 
						|
/* HAL configuration */
 | 
						|
#define HSE_VALUE               25000000U
 | 
						|
 | 
						|
/* Extra HAL modules */
 | 
						|
#define HAL_SD_MODULE_ENABLED
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
} // extern "C"
 | 
						|
#endif
 | 
						|
/*----------------------------------------------------------------------------
 | 
						|
 *        Arduino objects - C++ only
 | 
						|
 *----------------------------------------------------------------------------*/
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
// These serial port names are intended to allow libraries and architecture-neutral
 | 
						|
// sketches to automatically default to the correct port name for a particular type
 | 
						|
// of use.  For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
 | 
						|
// the first hardware serial port whose RX/TX pins are not dedicated to another use.
 | 
						|
//
 | 
						|
// SERIAL_PORT_MONITOR        Port which normally prints to the Arduino Serial Monitor
 | 
						|
//
 | 
						|
// SERIAL_PORT_USBVIRTUAL     Port which is USB virtual serial
 | 
						|
//
 | 
						|
// SERIAL_PORT_LINUXBRIDGE    Port which connects to a Linux system via Bridge library
 | 
						|
//
 | 
						|
// SERIAL_PORT_HARDWARE       Hardware serial port, physical RX & TX pins.
 | 
						|
//
 | 
						|
// SERIAL_PORT_HARDWARE_OPEN  Hardware serial ports which are open for use.  Their RX & TX
 | 
						|
//                            pins are NOT connected to anything by default.
 | 
						|
#define SERIAL_PORT_MONITOR     Serial
 | 
						|
#define SERIAL_PORT_HARDWARE    Serial1
 | 
						|
#endif
 | 
						|
 | 
						|
#endif // _VARIANT_ARDUINO_STM32_
 | 
						|
 | 
						|
// PA0  54 // E1_THERMISTOR
 | 
						|
// PA1  55 // E2_THERMISTOR
 | 
						|
// PA2  56 // E3_THERMISTOR
 | 
						|
// PA3  53 // BED_THERMISTOR_3
 | 
						|
// PA4  16 // SPI_CS
 | 
						|
// PA5  17 // SPI_SCK
 | 
						|
// PA6  18 // SPI_MISO
 | 
						|
// PA7  19 // SPI_MOSI
 | 
						|
// PA8  43 // V_STOP
 | 
						|
// PA9   0 //TX
 | 
						|
// PA10  1 //RX
 | 
						|
// PA11 30 //OTG_DM
 | 
						|
// PA12 31 //OTG_DP
 | 
						|
// PA13 20 // JTAG_TMS/SWDIO
 | 
						|
// PA14 21 // JTAG_TCK/SWCLK
 | 
						|
// PA15 25 // SD_CARD_DETECT
 | 
						|
// PB0  49 // E2_HEAT_PWM
 | 
						|
// PB1  50 // E3_HEAT_PWM
 | 
						|
// PB3  22 // JTAG_TDO/SWO
 | 
						|
// PB4  37 // USER4
 | 
						|
// PB5   6 // WIFI_WAKEUP
 | 
						|
// PB6  15 // SCL
 | 
						|
// PB7  14 // SDA
 | 
						|
// PB8  77 // E3_PWM
 | 
						|
// PB9  35 // USER1
 | 
						|
// PB10 64 // Y_PWM
 | 
						|
// PB12 10 // SPI_CS
 | 
						|
// PB13 13 // SPI_SCK
 | 
						|
// PB14 12 // SPI_MISO
 | 
						|
// PB15 11 // SPI_MOSI
 | 
						|
// PC0  68 // Z_DIR
 | 
						|
// PC1  33 //IR_ON
 | 
						|
// PC2  51 // BED_THERMISTOR_1
 | 
						|
// PC3  52 // BED_THERMISTOR_2
 | 
						|
// PC4  57 // E1_FAN
 | 
						|
// PC5  58 // E2_FAN
 | 
						|
// PC6  67 // Z_PWM
 | 
						|
// PC7  48 // E1_HEAT_PWM
 | 
						|
// PC8  23 // SDIO_D0
 | 
						|
// PC9  24 // SDIO_D1
 | 
						|
// PC10 26 // SDIO_D2
 | 
						|
// PC11 27 // SDIO_D3
 | 
						|
// PC12 28 // SDIO_CK
 | 
						|
// PC13 70 // E1_DIR
 | 
						|
// PC14 69 // E1_RESET
 | 
						|
// PC15 66 // Z_RESET
 | 
						|
// PD0  44 // W_STOP
 | 
						|
// PD1  32 //IR_OUT
 | 
						|
// PD2  29 // SDIO_CMD
 | 
						|
// PD3   2 // CTS
 | 
						|
// PD4   3 // RTS
 | 
						|
// PD5   4 // TX
 | 
						|
// PD6   5 // RX
 | 
						|
// PD7  34 // USER3
 | 
						|
// PD8  39 // X_STOP
 | 
						|
// PD9  40 // Y_STOP
 | 
						|
// PD10 41 // Z_STOP
 | 
						|
// PD11 42 // U_STOP
 | 
						|
// PD12 71 // E1_PWM
 | 
						|
// PD13 45 // BED_HEAT_2
 | 
						|
// PD14 46 // BED_HEAT_1
 | 
						|
// PD15 47 // BED_HEAT_3
 | 
						|
// PE0  36 // USER2
 | 
						|
// PE1   9 // STATUS_LED
 | 
						|
// PE2  76 // E3_DIR
 | 
						|
// PE3  75 // E3_RESET
 | 
						|
// PE4  72 // E2_RESET
 | 
						|
// PE5  73 // E2_PWM
 | 
						|
// PE6  74 // E2_DIR
 | 
						|
// PE7  38 // USER_BUTTON
 | 
						|
// PE8  59 // E3_FAN
 | 
						|
// PE9  65 // Y_DIR
 | 
						|
// PE10 63 // Y_RESET
 | 
						|
// PE11  7 // WIFI_RESET
 | 
						|
// PE12  8 // WIFI_BOOT
 | 
						|
// PE13 60 // X_RESET
 | 
						|
// PE14 61 // X_PWM
 | 
						|
// PE15 62 // X_DIR
 |