Skip to content

Commit a4118d1

Browse files
committed
[BLACK PILLF401CC] Use generic variant
Signed-off-by: Frederic Pillon <[email protected]>
1 parent ccb9656 commit a4118d1

File tree

9 files changed

+41
-748
lines changed

9 files changed

+41
-748
lines changed

boards.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1050,7 +1050,7 @@ GenF4.menu.pnum.BLACKPILL_F401CC.upload.maximum_size=262144
10501050
GenF4.menu.pnum.BLACKPILL_F401CC.upload.maximum_data_size=65536
10511051
GenF4.menu.pnum.BLACKPILL_F401CC.build.board=BLACKPILL_F401CC
10521052
GenF4.menu.pnum.BLACKPILL_F401CC.build.product_line=STM32F401xC
1053-
GenF4.menu.pnum.BLACKPILL_F401CC.build.variant=PILL_F401XX
1053+
GenF4.menu.pnum.BLACKPILL_F401CC.build.variant=Generic_F401Cx
10541054

10551055
# Core board F401RCT6
10561056
GenF4.menu.pnum.CoreBoard_F401RC=Core board F401RCT6

variants/Generic_F401Cx/PeripheralPins.c

+23-21
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,15 @@ WEAK const PinMap PinMap_PWM[] = {
8787
{PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1
8888
// {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
8989
{PA_1, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2
90-
// {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3 - ST-Link
91-
{PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 - ST-Link
92-
// {PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 - ST-Link
93-
// {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4 - ST-Link
94-
{PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4 - ST-Link
95-
// {PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 - ST-Link
96-
{PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1 - SPI
97-
{PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1 - SPI
98-
// {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N - SPI
90+
// {PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
91+
{PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3
92+
// {PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
93+
// {PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
94+
{PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4
95+
// {PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
96+
{PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
97+
{PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
98+
// {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
9999
{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
100100
{PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1
101101
{PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
@@ -111,10 +111,10 @@ WEAK const PinMap PinMap_PWM[] = {
111111
{PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
112112
{PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1
113113
{PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
114-
{PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3 - SCL
115-
// {PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1 - SCL
116-
{PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4 - SDA
117-
// {PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1 - SDA
114+
{PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
115+
// {PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1
116+
{PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
117+
// {PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1
118118
{PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
119119
{PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
120120
{PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
@@ -166,8 +166,8 @@ WEAK const PinMap PinMap_UART_CTS[] = {
166166
#ifdef HAL_SPI_MODULE_ENABLED
167167
WEAK const PinMap PinMap_SPI_MOSI[] = {
168168
{PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
169-
{PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
170-
// {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
169+
// {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
170+
{PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
171171
{PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
172172
{NC, NP, 0}
173173
};
@@ -176,8 +176,8 @@ WEAK const PinMap PinMap_SPI_MOSI[] = {
176176
#ifdef HAL_SPI_MODULE_ENABLED
177177
WEAK const PinMap PinMap_SPI_MISO[] = {
178178
{PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
179-
{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
180-
// {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
179+
// {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
180+
{PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
181181
{PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
182182
{NC, NP, 0}
183183
};
@@ -186,8 +186,8 @@ WEAK const PinMap PinMap_SPI_MISO[] = {
186186
#ifdef HAL_SPI_MODULE_ENABLED
187187
WEAK const PinMap PinMap_SPI_SCLK[] = {
188188
{PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
189-
{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
190-
// {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
189+
// {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
190+
{PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
191191
{PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
192192
{PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
193193
{NC, NP, 0}
@@ -198,8 +198,8 @@ WEAK const PinMap PinMap_SPI_SCLK[] = {
198198
WEAK const PinMap PinMap_SPI_SSEL[] = {
199199
{PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
200200
// {PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
201-
{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
202-
// {PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
201+
// {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
202+
{PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
203203
{PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
204204
{PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
205205
{NC, NP, 0}
@@ -216,9 +216,11 @@ WEAK const PinMap PinMap_SPI_SSEL[] = {
216216

217217
#ifdef HAL_PCD_MODULE_ENABLED
218218
WEAK const PinMap PinMap_USB_OTG_FS[] = {
219+
#ifndef ARDUINO_BLACKPILL_F401CC
219220
{PA_8, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_SOF
220221
{PA_9, USB_OTG_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_FS_VBUS
221222
{PA_10, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_ID
223+
#endif
222224
{PA_11, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DM
223225
{PA_12, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DP
224226
{NC, NP, 0}

variants/Generic_F401Cx/ldscript.ld

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
** File : LinkerScript.ld
66
**
7-
** Abstract : Linker script for STM32F401RETx Device with
8-
** 512KByte FLASH, 96KByte RAM
7+
** Abstract : Linker script for STM32F401Cx Device
98
**
109
** Set heap size, stack size and stack location according
1110
** to application requirements.
@@ -54,8 +53,8 @@ ENTRY(Reset_Handler)
5453
/* Highest address of the user mode stack */
5554
_estack = 0x20000000 + LD_MAX_DATA_SIZE; /* end of RAM */
5655
/* Generate a link error if heap and stack don't fit into RAM */
57-
_Min_Heap_Size = 0x200;; /* required amount of heap */
58-
_Min_Stack_Size = 0x400;; /* required amount of stack */
56+
_Min_Heap_Size = 0x200; /* required amount of heap */
57+
_Min_Stack_Size = 0x400; /* required amount of stack */
5958

6059
/* Specify the memory areas */
6160
MEMORY

variants/Generic_F401Cx/variant.h

+14-7
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,16 @@ extern "C" {
7171
#define NUM_ANALOG_INPUTS 10
7272

7373
// On-board LED pin number
74+
#ifdef ARDUINO_BLACKPILL_F401CC
75+
#define LED_BUILTIN PC13
76+
#endif
7477
#ifndef LED_BUILTIN
7578
#define LED_BUILTIN PA5
7679
#endif
7780
#define LED_GREEN LED_BUILTIN
7881

7982
// On-board user button
80-
#ifndef USER_BTN
83+
#if !defined(USER_BTN) && !defined(ARDUINO_GENERIC_F401CC)
8184
#define USER_BTN PC13
8285
#endif
8386

@@ -91,20 +94,24 @@ extern "C" {
9194
#define PIN_SPI_SCK PA5
9295

9396
// I2C definitions
94-
#define PIN_WIRE_SDA PB9
95-
#define PIN_WIRE_SCL PB8
97+
#define PIN_WIRE_SDA PB7
98+
#define PIN_WIRE_SCL PB6
9699

97100
// Timer Definitions
98101
#define TIMER_TONE TIM10
99102
#define TIMER_SERVO TIM11
100103

101104
// UART Definitions
102-
#define SERIAL_UART_INSTANCE 2 //Connected to ST-Link
105+
#define SERIAL_UART_INSTANCE 1
103106

104-
// Default pin used for 'Serial' instance (ex: ST-Link)
107+
// Default pin used for 'Serial' instance
105108
// Mandatory for Firmata
106-
#define PIN_SERIAL_RX PA3
107-
#define PIN_SERIAL_TX PA2
109+
#define PIN_SERIAL_RX PA10
110+
#define PIN_SERIAL_TX PA9
111+
112+
#ifdef ARDUINO_BLACKPILL_F401CC
113+
#define HSE_VALUE 25000000U
114+
#endif
108115

109116
#ifdef __cplusplus
110117
} // extern "C"

0 commit comments

Comments
 (0)