aboutsummaryrefslogtreecommitdiff
path: root/buildroot/share/PlatformIO/variants/STEVAL_F401VE/variant.h
blob: df7295ab17e82a22c26e1f8728b13fe1d9b16135 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
/*
 *******************************************************************************
 * 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