Skip to content

Commit d766ba8

Browse files
committed
Clean up variant and updated config
- Align with master - Remove Serial2 as only 2 USART available. - Update SystemClock_Config to configure at 64 Mhz using HSI. By default, there is no HSE (X1) on this board. Configure RCC_PERIPHCLK_I2C1|RCC_PERIPHCLK_ADC12; - By defaut, SB16 and SB18 are ON. So, A4 and A5 are connected to PB7/PB6 instead of PA5/PA6 which must be configured as input floating. See Table 7. Solder bridges of UM1956 STM32 Nucleo-32 board Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
1 parent c9b7903 commit d766ba8

File tree

3 files changed

+60
-104
lines changed

3 files changed

+60
-104
lines changed

variants/NUCLEO_F303K8/PeripheralPins.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@
4141
const PinMap PinMap_ADC[] = {
4242
{PA_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1
4343
{PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2
44-
{PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3
44+
// {PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3 - VCP_Tx
4545
{PA_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4
4646
{PA_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1
47-
{PA_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2
48-
{PA_6, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3
47+
// {PA_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2
48+
// {PA_6, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3
4949
{PA_7, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4
5050
{PB_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11
5151
{PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12
@@ -55,22 +55,22 @@ const PinMap PinMap_ADC[] = {
5555
//*** DAC ***
5656

5757
const PinMap PinMap_DAC[] = {
58-
{PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC1_OUT1
59-
{PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC1_OUT2
58+
// {PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC1_OUT1
59+
// {PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC1_OUT2
6060
{PA_6, DAC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC2_OUT1
6161
{NC, NP, 0}
6262
};
6363

6464
//*** I2C ***
6565

6666
const PinMap PinMap_I2C_SDA[] = {
67-
// {PA_14, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
67+
// {PA_14, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
6868
{PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
6969
{NC, NP, 0}
7070
};
7171

7272
const PinMap PinMap_I2C_SCL[] = {
73-
// {PA_15, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
73+
// {PA_15, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)}, // VCP_RX
7474
{PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
7575
{NC, NP, 0}
7676
};
@@ -79,10 +79,10 @@ const PinMap PinMap_I2C_SCL[] = {
7979

8080
const PinMap PinMap_PWM[] = {
8181
{PA_1, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM15, 1, 1)}, // TIM15_CH1N
82-
{PA_2, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM15, 1, 0)}, // TIM15_CH1
82+
// {PA_2, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM15, 1, 0)}, // TIM15_CH1 - VCP_Tx
8383
{PA_3, TIM15, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM15, 2, 0)}, // TIM15_CH2
8484
{PA_4, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
85-
{PA_6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
85+
// {PA_6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 0)}, // TIM16_CH1
8686
{PA_7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM17, 1, 0)}, // TIM17_CH1
8787
{PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 1, 0)}, // TIM1_CH1
8888
{PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 2, 0)}, // TIM1_CH2
@@ -97,7 +97,7 @@ const PinMap PinMap_PWM[] = {
9797
{PB_5, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_TIM17, 1, 0)}, // TIM17_CH1
9898
{PB_6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM16, 1, 1)}, // TIM16_CH1N
9999
{PB_7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM17, 1, 1)}, // TIM17_CH1N
100-
100+
101101
{PF_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_TIM1, 3, 1)}, // TIM1_CH3N
102102
{NC, NP, 0}
103103
};
@@ -154,15 +154,15 @@ const PinMap PinMap_SPI_MOSI[] = {
154154

155155
#ifdef HAL_SPI_MODULE_ENABLED
156156
const PinMap PinMap_SPI_MISO[] = {
157-
{PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
157+
// {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
158158
{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
159159
{NC, NP, 0}
160160
};
161161
#endif
162162

163163
#ifdef HAL_SPI_MODULE_ENABLED
164164
const PinMap PinMap_SPI_SCLK[] = {
165-
{PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
165+
// {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
166166
{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
167167
{NC, NP, 0}
168168
};
@@ -171,7 +171,7 @@ const PinMap PinMap_SPI_SCLK[] = {
171171
#ifdef HAL_SPI_MODULE_ENABLED
172172
const PinMap PinMap_SPI_SSEL[] = {
173173
{PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
174-
{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
174+
// {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, // VCP_RX
175175
{NC, NP, 0}
176176
};
177177
#endif

variants/NUCLEO_F303K8/variant.cpp

Lines changed: 37 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ const PinName digitalPin[] = {
3131
PB_7, //D4
3232
PB_6, //D5
3333
PB_1, //D6
34-
PC_14, //D7
35-
PC_15, //D8
34+
PF_0, //D7
35+
PF_1, //D8
3636
PA_8, //D9
3737
PA_11, //D10
3838
PB_5, //D11
@@ -46,47 +46,13 @@ const PinName digitalPin[] = {
4646
PA_6, //D19/A5
4747
PA_7, //D20/A6
4848
PA_2, //D21/A7 - STLink Tx
49-
PA_15 //D22 - STLink Rx
49+
PA_15 //D22 - STLink Rx
5050
};
5151

5252
#ifdef __cplusplus
5353
}
5454
#endif
5555

56-
/*
57-
* UART objects
58-
*/
59-
//HardwareSerial Serial(PA_3, PA_2); //Connected to ST-Link
60-
HardwareSerial Serial(PA_3, PA_2); //Connected to ST-Link
61-
#ifdef ENABLE_SERIAL1
62-
HardwareSerial Serial1(PA_10, PA_9);
63-
#endif
64-
#ifdef ENABLE_SERIAL2
65-
HardwareSerial Serial2(PD_2, PC_12);
66-
#endif
67-
68-
void serialEvent() __attribute__((weak));
69-
void serialEvent() { }
70-
#ifdef ENABLE_SERIAL1
71-
void serialEvent1() __attribute__((weak));
72-
void serialEvent1() { }
73-
#endif
74-
#ifdef ENABLE_SERIAL2
75-
void serialEvent2() __attribute__((weak));
76-
void serialEvent2() { }
77-
#endif
78-
79-
void serialEventRun(void)
80-
{
81-
if (Serial.available()) serialEvent();
82-
#ifdef ENABLE_SERIAL1
83-
if (Serial1.available()) serialEvent1();
84-
#endif
85-
#ifdef ENABLE_SERIAL2
86-
if (Serial2.available()) serialEvent2();
87-
#endif
88-
}
89-
9056
// ----------------------------------------------------------------------------
9157

9258
#ifdef __cplusplus
@@ -98,47 +64,52 @@ extern "C" {
9864
* @param None
9965
* @retval None
10066
*/
101-
10267
WEAK void SystemClock_Config(void)
10368
{
104-
105-
RCC_OscInitTypeDef RCC_OscInitStruct = {};
106-
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
107-
108-
// Initializes the CPU, AHB and APB busses clocks
109-
// HSI Oscillator already ON after system reset, activate PLL with HSI as source
110-
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_NONE;
69+
RCC_OscInitTypeDef RCC_OscInitStruct;
70+
RCC_ClkInitTypeDef RCC_ClkInitStruct;
71+
RCC_PeriphCLKInitTypeDef PeriphClkInit;
72+
73+
/* Initializes the CPU, AHB and APB busses clocks */
74+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
75+
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
76+
RCC_OscInitStruct.HSICalibrationValue = 16;
11177
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
11278
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
11379
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16;
114-
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
80+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
81+
{
82+
while(1);
83+
}
84+
85+
/* Initializes the CPU, AHB and APB busses clocks */
86+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
87+
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
88+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
89+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
90+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
91+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
92+
93+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
94+
{
95+
while(1);
96+
}
97+
98+
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1|RCC_PERIPHCLK_ADC12;
99+
PeriphClkInit.Adc12ClockSelection = RCC_ADC12PLLCLK_DIV1;
100+
PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_SYSCLK;
101+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
115102
{
116103
while(1);
117104
}
118105

119-
// Initializes the CPU, AHB and APB busses clocks
120-
121-
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
122-
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
123-
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
124-
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
125-
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
126-
127-
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
128-
{
129-
while(1);
130-
}
131-
132-
//Configure the Systick interrupt time
133-
134-
106+
/* Configure the Systick interrupt time */
135107
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
136108

137-
//Configure the Systick
138-
139-
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
109+
/* Configure the Systick */
110+
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
140111

141-
// SysTick_IRQn interrupt configuration
112+
/* SysTick_IRQn interrupt configuration */
142113
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
143114
}
144115

variants/NUCLEO_F303K8/variant.h

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,11 @@
1919
#ifndef _VARIANT_ARDUINO_STM32_
2020
#define _VARIANT_ARDUINO_STM32_
2121

22-
23-
#define RCC_CFGR_PLLSRC_HSI_PREDIV
2422
/*----------------------------------------------------------------------------
2523
* Headers
2624
*----------------------------------------------------------------------------*/
2725

28-
#include "Arduino.h"
26+
#include "pins_arduino.h"
2927

3028
#ifdef __cplusplus
3129
extern "C"{
@@ -34,8 +32,6 @@ extern "C"{
3432
/*----------------------------------------------------------------------------
3533
* Pins
3634
*----------------------------------------------------------------------------*/
37-
#include "PeripheralPins.h"
38-
3935
extern const PinName digitalPin[];
4036

4137
enum {
@@ -46,8 +42,8 @@ enum {
4642
PB7, //D4
4743
PB6, //D5
4844
PB1, //D6
49-
PC14, //D7
50-
PC15, //D8
45+
PF0, //D7
46+
PF1, //D8
5147
PA8, //D9
5248
PA11, //D10
5349
PB5, //D11
@@ -57,11 +53,11 @@ enum {
5753
PA1, //D15/A1
5854
PA3, //D16/A2
5955
PA4, //D17/A3
60-
PA5, //D18/A4
61-
PA6, //D19/A5
56+
PA5, //D18/A4 - if SB18 ON (default) connected to PB7
57+
PA6, //D19/A5 - if SB16 ON (default) connected to PB6
6258
PA7, //D20/A6
6359
PA2, //D21/A7 - STLink Tx
64-
PA15, //D22 - STLink Rx
60+
PA15, //D22 - STLink Rx
6561
PEND
6662
};
6763

@@ -105,19 +101,12 @@ enum {
105101
//Do not use basic timer: OC is required
106102
#define TIMER_SERVO TIM2 //TODO: advanced-control timers don't work
107103

108-
#define DEBUG_UART ((USART_TypeDef *) USART2)
109-
110-
// UART Emulation
111-
//#define UART_EMUL_RX PC_1
112-
//#define UART_EMUL_TX PC_3
104+
// UART Definitions
105+
#define SERIAL_UART_INSTANCE 2 //Connected to ST-Link
113106

114107
// Serial Pin Firmata
115-
#define PIN_SERIAL_RX 22
116-
#define PIN_SERIAL_TX 21
117-
#define PIN_SERIAL1_RX 0
118-
#define PIN_SERIAL1_TX 1
119-
#define PIN_SERIAL2_RX 31
120-
#define PIN_SERIAL2_TX 17
108+
#define PIN_SERIAL_RX PA15 // 22
109+
#define PIN_SERIAL_TX PA2 // 21
121110

122111
#ifdef __cplusplus
123112
} // extern "C"
@@ -127,10 +116,6 @@ enum {
127116
*----------------------------------------------------------------------------*/
128117

129118
#ifdef __cplusplus
130-
extern HardwareSerial Serial;
131-
extern HardwareSerial Serial1;
132-
extern HardwareSerial Serial2;
133-
134119
// These serial port names are intended to allow libraries and architecture-neutral
135120
// sketches to automatically default to the correct port name for a particular type
136121
// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,

0 commit comments

Comments
 (0)