Skip to content

Commit 7410f2e

Browse files
authored
Merge pull request #905 from fpistm/Gen_F4_Fix
2 parents 35bb409 + 285016f commit 7410f2e

File tree

11 files changed

+30
-36
lines changed

11 files changed

+30
-36
lines changed

variants/Generic_F401Cx/variant.h

+2
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ extern "C" {
7777
#define LED_GREEN LED_BUILTIN
7878

7979
// On-board user button
80+
#ifndef USER_BTN
8081
#define USER_BTN PC13
82+
#endif
8183

8284
// SPI definitions
8385
#define PIN_SPI_SS PA4

variants/Generic_F401Rx/variant.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ static uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
143143

144144
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
145145
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
146-
RCC_OscInitStruct.PLL.PLLM = 8; // VCO input clock = 1 MHz (8 MHz / 8)
146+
RCC_OscInitStruct.PLL.PLLM = HSE_VALUE / 1000000L; // Expects an 8 MHz external clock by default. Redefine HSE_VALUE if not
147147
RCC_OscInitStruct.PLL.PLLN = 336; // VCO output clock = 336 MHz (1 MHz * 336)
148148
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; // PLLCLK = 84 MHz (336 MHz / 4)
149149
RCC_OscInitStruct.PLL.PLLQ = 7; // USB clock = 48 MHz (336 MHz / 7) --> OK for USB

variants/Generic_F401Rx/variant.h

+4
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,15 @@ extern "C" {
8787
#define NUM_ANALOG_INPUTS 16
8888

8989
// On-board LED pin number
90+
#ifndef LED_BUILTIN
9091
#define LED_BUILTIN PA5
92+
#endif
9193
#define LED_GREEN LED_BUILTIN
9294

9395
// On-board user button
96+
#ifndef USER_BTN
9497
#define USER_BTN PC13
98+
#endif
9599

96100
// SPI definitions
97101
#define PIN_SPI_SS PA4

variants/Generic_F410Rx/PeripheralPins.c

-8
Original file line numberDiff line numberDiff line change
@@ -57,28 +57,20 @@ WEAK const PinMap PinMap_DAC[] = {
5757

5858
#ifdef HAL_I2C_MODULE_ENABLED
5959
WEAK const PinMap PinMap_I2C_SDA[] = {
60-
// {PB_3, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
6160
{PB_3, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C2)},
6261
{PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
6362
{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
6463
// {PB_9, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_I2C2)},
6564
{PB_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
66-
// {PB_14, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
67-
// {PC_7, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
68-
// {PC_9, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
6965
{NC, NP, 0}
7066
};
7167
#endif
7268

7369
#ifdef HAL_I2C_MODULE_ENABLED
7470
WEAK const PinMap PinMap_I2C_SCL[] = {
75-
// {PA_8, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
7671
{PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
7772
{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
78-
// {PB_10, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF9_FMPI2C1)},
7973
{PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
80-
// {PB_15, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
81-
// {PC_6, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
8274
{NC, NP, 0}
8375
};
8476
#endif

variants/Generic_F410Rx/variant.h

+2
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ extern "C" {
9595
#define LED_GREEN LED_BUILTIN
9696

9797
// On-board user button
98+
#ifndef USER_BTN
9899
#define USER_BTN PC13
100+
#endif
99101

100102
// Timer Definitions
101103
// Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin

variants/Generic_F411Cx/variant.cpp

+17-17
Original file line numberDiff line numberDiff line change
@@ -122,21 +122,21 @@ static uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
122122

123123
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
124124
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
125-
RCC_OscInitStruct.PLL.PLLM = 8; // VCO input clock = 1 MHz (8 MHz / 8)
126-
RCC_OscInitStruct.PLL.PLLN = 336; // VCO output clock = 336 MHz (1 MHz * 336)
127-
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; // PLLCLK = 84 MHz (336 MHz / 4)
128-
RCC_OscInitStruct.PLL.PLLQ = 7; // USB clock = 48 MHz (336 MHz / 7) --> OK for USB
125+
RCC_OscInitStruct.PLL.PLLM = HSE_VALUE / 1000000L; // Expects an 8 MHz external clock by default. Redefine HSE_VALUE if not
126+
RCC_OscInitStruct.PLL.PLLN = 192; // VCO output clock = 192 MHz (1 MHz * 192)
127+
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // PLLCLK = 96 MHz (192 MHz / 2)
128+
RCC_OscInitStruct.PLL.PLLQ = 4; // USB clock = 48 MHz (192 MHz / 4) --> OK for USB
129129
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
130130
return 0; // FAIL
131131
}
132132

133133
// Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers
134134
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
135-
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // 84 MHz
136-
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 84 MHz
137-
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; // 42 MHz
138-
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // 84 MHz
139-
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {
135+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // 96 MHz
136+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 96 MHz
137+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; // 48 MHz
138+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // 96 MHz
139+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) {
140140
return 0; // FAIL
141141
}
142142

@@ -173,20 +173,20 @@ uint8_t SetSysClock_PLL_HSI(void)
173173
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
174174
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
175175
RCC_OscInitStruct.PLL.PLLM = 16; // VCO input clock = 1 MHz (16 MHz / 16)
176-
RCC_OscInitStruct.PLL.PLLN = 336; // VCO output clock = 336 MHz (1 MHz * 336)
177-
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; // PLLCLK = 84 MHz (336 MHz / 4)
178-
RCC_OscInitStruct.PLL.PLLQ = 7; // USB clock = 48 MHz (336 MHz / 7) --> freq is ok but not precise enough
176+
RCC_OscInitStruct.PLL.PLLN = 192; // VCO output clock = 192 MHz (1 MHz * 192)
177+
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // PLLCLK = 96 MHz (192 MHz / 2)
178+
RCC_OscInitStruct.PLL.PLLQ = 4; // USB clock = 48 MHz (192 MHz / 4) --> freq is ok but not precise enough
179179
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
180180
return 0; // FAIL
181181
}
182182

183183
/* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
184184
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
185-
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // 84 MHz
186-
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 84 MHz
187-
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; // 42 MHz
188-
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // 84 MHz
189-
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {
185+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // 96 MHz
186+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 96 MHz
187+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; // 48 MHz
188+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // 96 MHz
189+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) {
190190
return 0; // FAIL
191191
}
192192

variants/Generic_F411Cx/variant.h

+2
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ extern "C" {
7878
#define LED_GREEN LED_BUILTIN
7979

8080
// On-board user button
81+
#ifndef USER_BTN
8182
#define USER_BTN PC13
83+
#endif
8284

8385
// SPI definitions
8486
#define PIN_SPI_SS PA4

variants/Generic_F411Rx/variant.h

+2
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ extern "C" {
9393
#define LED_GREEN LED_BUILTIN
9494

9595
// On-board user button
96+
#ifndef USER_BTN
9697
#define USER_BTN PC13
98+
#endif
9799

98100
// SPI definitions
99101
#define PIN_SPI_SS PA4

variants/NUCLEO_F446RE/PeripheralPins.c

-2
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ WEAK const PinMap PinMap_I2C_SDA[] = {
103103
{PB_4, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
104104
{PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
105105
{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
106-
{PC_7, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
107106
{PC_9, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
108107
{PC_12, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
109108
{NC, NP, 0}
@@ -116,7 +115,6 @@ WEAK const PinMap PinMap_I2C_SCL[] = {
116115
{PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
117116
{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
118117
{PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
119-
{PC_6, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
120118
{NC, NP, 0}
121119
};
122120
#endif

variants/RUMBA32_F446VE/PeripheralPins.c

-2
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ WEAK const PinMap PinMap_I2C_SDA[] = {
102102
// {PB_4, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
103103
// {PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
104104
{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
105-
// {PC_7, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
106105
// {PC_9, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
107106
// {PC_12, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
108107
{NC, NP, 0}
@@ -115,7 +114,6 @@ WEAK const PinMap PinMap_I2C_SCL[] = {
115114
// {PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
116115
{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
117116
// {PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
118-
// {PC_6, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
119117
{NC, NP, 0}
120118
};
121119
#endif

variants/VAKE_F446VE/PeripheralPins.c

-6
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,8 @@ WEAK const PinMap PinMap_I2C_SDA[] = {
115115
// {PB_4, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
116116
// {PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
117117
{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
118-
// {PC_7, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
119118
// {PC_9, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
120119
// {PC_12, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
121-
// {PD_13, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
122-
// {PD_15, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
123120
{NC, NP, 0}
124121
};
125122
#endif
@@ -130,9 +127,6 @@ WEAK const PinMap PinMap_I2C_SCL[] = {
130127
// {PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
131128
{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
132129
// {PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
133-
// {PC_6, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
134-
// {PD_12, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
135-
// {PD_14, FMPI2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_FMPI2C1)},
136130
{NC, NP, 0}
137131
};
138132
#endif

0 commit comments

Comments
 (0)