Skip to content

Commit d3e4551

Browse files
fprfpistm
authored andcommitted
Aligns configuration with master
Signed-off-by: fpr <[email protected]>
1 parent 5785569 commit d3e4551

File tree

3 files changed

+58
-90
lines changed

3 files changed

+58
-90
lines changed

variants/NUCLEO_F103RB/PeripheralPins.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -211,11 +211,3 @@ const PinMap PinMap_CAN_TD[] = {
211211
{PB9, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, 10)}, // Remap CAN_TX to PB_9
212212
{NC, NC, 0}
213213
};
214-
215-
const TimerMap TimerMap_CONFIG[] = {
216-
{TIM1, TIM1_UP_IRQn, 2},
217-
{TIM2, TIM2_IRQn, 1},
218-
{TIM3, TIM3_IRQn, 1},
219-
{TIM4, TIM4_IRQn, 1},
220-
{NULL, 0, 0}
221-
};

variants/NUCLEO_F103RB/variant.cpp

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extern "C" {
2323
#endif
2424

2525
// Pin number
26-
const PinName digital_arduino[] = {
26+
const PinName digitalPin[] = {
2727
PA3, //D0
2828
PA2, //D1
2929
PA10, //D2
@@ -37,7 +37,7 @@ const PinName digital_arduino[] = {
3737
PB6, //D10
3838
PA7, //D11
3939
PA6, //D12
40-
PA5, //D13
40+
PA5, //D13 - LED
4141
PB9, //D14
4242
PB8, //D15
4343
// ST Morpho
@@ -81,6 +81,16 @@ const PinName digital_arduino[] = {
8181
PB0, //D49/A3
8282
PC1, //D50/A4
8383
PC0, //D51/A5
84+
// Duplicated pins in order to be aligned with PinMap_ADC
85+
PA3, //D52/A6 = D0
86+
PA2, //D53/A7 = D1
87+
PA7, //D54/A8 = D11
88+
PA6, //D55/A9 = D12
89+
PA5, //D56/A10 = D13
90+
PC2, //D57/A11 = D28
91+
PC3, //D58/A12 = D29
92+
PB1, //D59/A13 = D41
93+
PC4, //D60/A14 = D45
8494
};
8595

8696
#ifdef __cplusplus
@@ -92,23 +102,33 @@ const PinName digital_arduino[] = {
92102
*/
93103

94104
HardwareSerial Serial(PA3, PA2); // Connected to ST-Link
105+
#ifdef ENABLE_SERIAL1
95106
HardwareSerial Serial1(PA10, PA9);
107+
#endif
108+
#ifdef ENABLE_SERIAL2
96109
HardwareSerial Serial2(PC11, PC10); //Morpho pins
110+
#endif
97111

98112
void serialEvent() __attribute__((weak));
99113
void serialEvent() { }
100-
114+
#ifdef ENABLE_SERIAL1
101115
void serialEvent1() __attribute__((weak));
102116
void serialEvent1() { }
103-
117+
#endif
118+
#ifdef ENABLE_SERIAL2
104119
void serialEvent2() __attribute__((weak));
105120
void serialEvent2() { }
121+
#endif
106122

107123
void serialEventRun(void)
108124
{
109125
if (Serial.available()) serialEvent();
126+
#ifdef ENABLE_SERIAL1
110127
if (Serial1.available()) serialEvent1();
128+
#endif
129+
#ifdef ENABLE_SERIAL2
111130
if (Serial2.available()) serialEvent2();
131+
#endif
112132
}
113133

114134
// ----------------------------------------------------------------------------
@@ -117,36 +137,19 @@ void serialEventRun(void)
117137
extern "C" {
118138
#endif
119139

120-
void __libc_init_array(void);
121-
122-
uint32_t pinNametoPinNumber(PinName p)
123-
{
124-
uint32_t i = 0;
125-
for(i = 0; i < NUM_DIGITAL_PINS; i++) {
126-
if (digital_arduino[i] == p)
127-
break;
128-
}
129-
return i;
130-
}
131-
132-
void init( void )
133-
{
134-
hw_config_init();
135-
}
136-
137140
/**
138141
* @brief System Clock Configuration
139142
* The system Clock is configured as follow :
140-
* System Clock source = PLL (HSI)
141-
* SYSCLK(Hz) = 64000000
142-
* HCLK(Hz) = 64000000
143+
* System Clock source = PLL (HSE)
144+
* SYSCLK(Hz) = 72000000
145+
* HCLK(Hz) = 72000000
143146
* AHB Prescaler = 1
144147
* APB1 Prescaler = 2
145148
* APB2 Prescaler = 1
146-
* PLL_Source = 2
147-
* PLL_Mul = 16
149+
* PLL_Source = HSE
150+
* PLL_Mul = 9
148151
* Flash Latency(WS) = 2
149-
* ADC Prescaler = 8
152+
* ADC Prescaler = 6
150153
* @param None
151154
* @retval None
152155
*/
@@ -156,12 +159,12 @@ WEAK void SystemClock_Config(void)
156159
RCC_ClkInitTypeDef RCC_ClkInitStruct;
157160
RCC_PeriphCLKInitTypeDef PeriphClkInit;
158161

159-
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
160-
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
161-
RCC_OscInitStruct.HSICalibrationValue = 16;
162+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
163+
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
164+
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
162165
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
163-
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
164-
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16;
166+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
167+
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
165168
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
166169
{
167170
while(1);
@@ -179,7 +182,7 @@ WEAK void SystemClock_Config(void)
179182
}
180183

181184
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
182-
PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV8;
185+
PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;
183186
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
184187
{
185188
while(1);

variants/NUCLEO_F103RB/variant.h

Lines changed: 22 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,6 @@
1919
#ifndef _VARIANT_ARDUINO_STM32_
2020
#define _VARIANT_ARDUINO_STM32_
2121

22-
/*----------------------------------------------------------------------------
23-
* Definitions
24-
*----------------------------------------------------------------------------*/
25-
26-
/** Frequency of the board main oscillator */
27-
//#define VARIANT_MAINOSC 12000000
28-
29-
/** Master clock frequency */
30-
//#define VARIANT_MCK 84000000
31-
3222
/*----------------------------------------------------------------------------
3323
* Headers
3424
*----------------------------------------------------------------------------*/
@@ -39,53 +29,31 @@
3929
extern "C"{
4030
#endif // __cplusplus
4131

42-
/**
43-
* Libc porting layers
44-
*/
45-
#if defined ( __GNUC__ ) /* GCC CS3 */
46-
# include <syscalls.h> /** RedHat Newlib minimal stub */
47-
#endif
48-
4932
/*----------------------------------------------------------------------------
5033
* Pins
5134
*----------------------------------------------------------------------------*/
5235
#include "PeripheralPins.h"
5336

54-
extern const PinName digital_arduino[];
37+
extern const PinName digitalPin[];
5538

5639
enum {
57-
D0, D1, D2, D3, D4, D5, D6, D7, D8, D9,
58-
D10, D11, D12, D13, D14, D15, D16, D17, D18, D19,
59-
D20, D21, D22, D23, D24, D25, D26, D27, D28, D29,
60-
D30, D31, D32, D33, D34, D35, D36, D37, D38, D39,
61-
D40, D41, D42, D43, D44, D45, D46, D47, D48, D49,
62-
D50, D51,
63-
DEND
40+
D0, D1, D2, D3, D4, D5, D6, D7, D8, D9,
41+
D10, D11, D12, D13, D14, D15, D16, D17, D18, D19,
42+
D20, D21, D22, D23, D24, D25, D26, D27, D28, D29,
43+
D30, D31, D32, D33, D34, D35, D36, D37, D38, D39,
44+
D40, D41, D42, D43, D44, D45, D46, D47, D48, D49,
45+
D50, D51, D52, D53, D54, D55, D56, D57, D58, D59,
46+
D60,
47+
DEND
6448
};
6549

6650
enum {
67-
A_START_AFTER = D45,
68-
A0, A1, A2, A3, A4, A5,
69-
AEND
51+
A_START_AFTER = D45,
52+
A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,
53+
A10, A11, A12, A13, A14,
54+
AEND
7055
};
7156

72-
#define MAX_ANALOG_IOS (sizeof(PinMap_ADC)/sizeof(PinMap))
73-
#define MAX_DIGITAL_IOS DEND
74-
#define NUM_DIGITAL_PINS MAX_DIGITAL_IOS
75-
#define NUM_ANALOG_INPUTS (AEND - A0)
76-
77-
// Convert a digital pin number Dxx to a PinName Pxy
78-
#define digitalToPinName(p) ((p < NUM_DIGITAL_PINS) ? digital_arduino[p] : (STM_VALID_PINNAME(p))? (PinName)p : NC)
79-
// Convert an analog pin number Axx to a PinName Pxy
80-
#define analogToPinName(p) (digitalToPinName(p))
81-
// Convert an analog pin number to a digital pin number
82-
#define analogToDigital(p) (p)
83-
// Convert a PinName Pxy to a pin number
84-
uint32_t pinNametoPinNumber(PinName p);
85-
86-
#define digitalPinToPort(p) ( get_GPIO_Port(digitalToPinName(p)) )
87-
#define digitalPinToBitMask(p) ( STM_GPIO_PIN(digitalToPinName(p)) )
88-
8957
//ADC resolution is 12bits
9058
#define ADC_RESOLUTION 12
9159
#define DACC_RESOLUTION 12
@@ -102,7 +70,7 @@ uint32_t pinNametoPinNumber(PinName p);
10270
//On-board user button
10371
#define USER_BTN 23
10472

105-
//SPI defintions
73+
//SPI definitions
10674
//define 16 channels. As many channel as digital IOs
10775
#define SPI_CHANNELS_NUM 16
10876

@@ -135,8 +103,13 @@ uint32_t pinNametoPinNumber(PinName p);
135103

136104
#define DEBUG_UART ((USART_TypeDef *) USART2)
137105

138-
//Enable Firmata
139-
#define STM32 1
106+
// Serial Pin Firmata
107+
#define PIN_SERIAL_RX 0
108+
#define PIN_SERIAL_TX 1
109+
#define PIN_SERIAL1_RX 2
110+
#define PIN_SERIAL1_TX 8
111+
#define PIN_SERIAL2_RX 30
112+
#define PIN_SERIAL2_TX 16
140113

141114
#ifdef __cplusplus
142115
} // extern "C"
@@ -166,7 +139,7 @@ extern HardwareSerial Serial2;
166139
// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
167140
// pins are NOT connected to anything by default.
168141
#define SERIAL_PORT_MONITOR Serial
169-
#define SERIAL_PORT_HARDWARE Serial1
142+
#define SERIAL_PORT_HARDWARE Serial
170143
#endif
171144

172145
#endif /* _VARIANT_ARDUINO_STM32_ */

0 commit comments

Comments
 (0)