Skip to content

Commit f7be0a1

Browse files
authored
Merge pull request #913 from fpistm/DISCO_G0316
Add STM32G0316-DISCO
2 parents 7d72a79 + 5a37de7 commit f7be0a1

File tree

8 files changed

+669
-0
lines changed

8 files changed

+669
-0
lines changed

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
8686
| :green_heart: | [STM32VLDISCOVERY](https://www.st.com/en/evaluation-tools/stm32vldiscovery.html) | 0.2.1 | |
8787
| :green_heart: | [STM32F407G-DISC1](http://www.st.com/en/evaluation-tools/stm32f4discovery.html) | *0.1.0* | |
8888
| :green_heart: | [STM32F746G-DISCOVERY](http://www.st.com/en/evaluation-tools/32f746gdiscovery.html) | *0.1.0* | |
89+
| :yellow_heart: | [STM32G0316-DISCO](https://www.st.com/en/evaluation-tools/stm32g0316-disco.html) | **1.9.0** | |
8990
| :green_heart: | [B-L072Z-LRWAN1](http://www.st.com/en/evaluation-tools/b-l072z-lrwan1.html) | *1.1.0* | |
9091
| :green_heart: | [B-L475E-IOT01A](http://www.st.com/en/evaluation-tools/b-l475e-iot01a.html) | *1.0.1* | |
9192

Diff for: boards.txt

+13
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,19 @@ Disco.menu.pnum.DISCO_F746NG.build.product_line=STM32F746xx
580580
Disco.menu.pnum.DISCO_F746NG.build.variant=DISCO_F746NG
581581
Disco.menu.pnum.DISCO_F746NG.build.cmsis_lib_gcc=arm_cortexM7lfsp_math
582582

583+
# DISCO_G0316 board
584+
Disco.menu.pnum.DISCO_G0316=STM32G0316-DISCO
585+
Disco.menu.pnum.DISCO_G0316.node=NODE_G031J6
586+
Disco.menu.pnum.DISCO_G0316.upload.maximum_size=131072
587+
Disco.menu.pnum.DISCO_G0316.upload.maximum_data_size=32768
588+
Disco.menu.pnum.DISCO_G0316.build.mcu=cortex-m0plus
589+
Disco.menu.pnum.DISCO_G0316.build.board=DISCO_G0316
590+
Disco.menu.pnum.DISCO_G0316.build.series=STM32G0xx
591+
Disco.menu.pnum.DISCO_G0316.build.product_line=STM32G031xx
592+
Disco.menu.pnum.DISCO_G0316.build.variant=DISCO_G0316
593+
Disco.menu.pnum.DISCO_G0316.build.cmsis_lib_gcc=arm_cortexM0l_math
594+
Disco.menu.pnum.DISCO_G0316.build.extra_flags=-D{build.product_line} {build.xSerial} -D__CORTEX_SC=0
595+
583596
# DISCO_L475VG_IOT board
584597
Disco.menu.pnum.DISCO_L475VG_IOT=STM32L475VG-DISCOVERY-IOT
585598
Disco.menu.pnum.DISCO_L475VG_IOT.node=DIS_L4IOT

Diff for: libraries/SrcWrapper/src/stm32/pinmap.c

+24
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "pinmap.h"
1818
#include "pinconfig.h"
1919
#include "stm32yyxx_ll_gpio.h"
20+
#include "stm32yyxx_ll_system.h"
2021

2122
#if defined(STM32MP1xx)
2223
#include "lock_resource.h"
@@ -71,6 +72,29 @@ void pin_function(PinName pin, int function)
7172
Error_Handler();
7273
}
7374

75+
/* Handle pin remap if any */
76+
#if defined(LL_SYSCFG_PIN_RMP_PA11) && defined(LL_SYSCFG_PIN_RMP_PA12)
77+
if ((pin >= PA_9) && (pin <= PA_12)) {
78+
__HAL_RCC_SYSCFG_CLK_ENABLE();
79+
switch ((int)pin) {
80+
case PA_9:
81+
LL_SYSCFG_EnablePinRemap(LL_SYSCFG_PIN_RMP_PA11);
82+
break;
83+
case PA_11:
84+
LL_SYSCFG_DisablePinRemap(LL_SYSCFG_PIN_RMP_PA11);
85+
break;
86+
case PA_10:
87+
LL_SYSCFG_EnablePinRemap(LL_SYSCFG_PIN_RMP_PA12);
88+
break;
89+
case PA_12:
90+
LL_SYSCFG_DisablePinRemap(LL_SYSCFG_PIN_RMP_PA12);
91+
break;
92+
default:
93+
break;
94+
}
95+
}
96+
#endif
97+
7498
/* Enable GPIO clock */
7599
GPIO_TypeDef *gpio = set_GPIO_Port_Clock(port);
76100

Diff for: variants/DISCO_G0316/PeripheralPins.c

+175
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2019, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* This software component is licensed by ST under BSD 3-Clause license,
7+
* the "License"; You may not use this file except in compliance with the
8+
* License. You may obtain a copy of the License at:
9+
* opensource.org/licenses/BSD-3-Clause
10+
*
11+
*******************************************************************************
12+
* Automatically generated from STM32G031J(4-6)Mx.xml
13+
*/
14+
#include "Arduino.h"
15+
#include "PeripheralPins.h"
16+
17+
/* =====
18+
* Note: Commented lines are alternative possibilities which are not used per default.
19+
* If you change them, you will have to know what you do
20+
* =====
21+
*/
22+
23+
//*** ADC ***
24+
25+
#ifdef HAL_ADC_MODULE_ENABLED
26+
WEAK const PinMap PinMap_ADC[] = {
27+
{PA_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0
28+
{PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1
29+
{PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2
30+
{PA_11, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
31+
{PA_12, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)}, // ADC1_IN16
32+
{PA_13, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
33+
{PA_14, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18
34+
{PB_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8
35+
{PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9
36+
{PB_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11
37+
{NC, NP, 0}
38+
};
39+
#endif
40+
41+
//*** No DAC ***
42+
43+
//*** I2C ***
44+
45+
#ifdef HAL_I2C_MODULE_ENABLED
46+
WEAK const PinMap PinMap_I2C_SDA[] = {
47+
{PA_10, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
48+
{PA_12, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C2)},
49+
{PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
50+
{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
51+
{NC, NP, 0}
52+
};
53+
#endif
54+
55+
#ifdef HAL_I2C_MODULE_ENABLED
56+
WEAK const PinMap PinMap_I2C_SCL[] = {
57+
{PA_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
58+
{PA_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C2)},
59+
{PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
60+
{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
61+
{NC, NP, 0}
62+
};
63+
#endif
64+
65+
//*** PWM ***
66+
67+
#ifdef HAL_TIM_MODULE_ENABLED
68+
WEAK const PinMap PinMap_PWM[] = {
69+
{PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 1, 0)}, // TIM2_CH1
70+
{PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 2, 0)}, // TIM2_CH2
71+
{PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 3, 0)}, // TIM2_CH3
72+
{PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 1, 0)}, // TIM1_CH1
73+
{PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 2, 0)}, // TIM1_CH2
74+
{PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 3, 0)}, // TIM1_CH3
75+
{PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 4, 0)}, // TIM1_CH4
76+
{PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 1, 0)}, // TIM2_CH1
77+
{PB_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 2, 1)}, // TIM1_CH2N
78+
{PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 3, 0)}, // TIM3_CH3
79+
{PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 3, 1)}, // TIM1_CH3N
80+
{PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 4, 0)}, // TIM3_CH4
81+
{PB_1, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_TIM14, 1, 0)}, // TIM14_CH1
82+
{PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 2, 0)}, // TIM3_CH2
83+
{PB_6, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
84+
{PB_6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM16, 1, 1)}, // TIM16_CH1N
85+
{PB_7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM17, 1, 1)}, // TIM17_CH1N
86+
{PB_8, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM16, 1, 0)}, // TIM16_CH1
87+
{PB_9, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM17, 1, 0)}, // TIM17_CH1
88+
{NC, NP, 0}
89+
};
90+
#endif
91+
92+
//*** SERIAL ***
93+
94+
#ifdef HAL_UART_MODULE_ENABLED
95+
WEAK const PinMap PinMap_UART_TX[] = {
96+
{PA_2, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_LPUART1)},
97+
{PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
98+
{PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)},
99+
{NC, NP, 0}
100+
};
101+
#endif
102+
103+
#ifdef HAL_UART_MODULE_ENABLED
104+
WEAK const PinMap PinMap_UART_RX[] = {
105+
{PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
106+
{PB_7, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)},
107+
{NC, NP, 0}
108+
};
109+
#endif
110+
111+
#ifdef HAL_UART_MODULE_ENABLED
112+
WEAK const PinMap PinMap_UART_RTS[] = {
113+
{PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
114+
{PB_1, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_LPUART1)},
115+
{NC, NP, 0}
116+
};
117+
#endif
118+
119+
#ifdef HAL_UART_MODULE_ENABLED
120+
WEAK const PinMap PinMap_UART_CTS[] = {
121+
{PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
122+
{NC, NP, 0}
123+
};
124+
#endif
125+
126+
//*** SPI ***
127+
128+
#ifdef HAL_SPI_MODULE_ENABLED
129+
WEAK const PinMap PinMap_SPI_MOSI[] = {
130+
{PA_2, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
131+
{PA_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI2)},
132+
{PA_12, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
133+
{PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
134+
{PB_7, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_SPI2)},
135+
{NC, NP, 0}
136+
};
137+
#endif
138+
139+
#ifdef HAL_SPI_MODULE_ENABLED
140+
WEAK const PinMap PinMap_SPI_MISO[] = {
141+
{PA_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_SPI2)},
142+
{PA_11, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
143+
{PB_6, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_SPI2)},
144+
{NC, NP, 0}
145+
};
146+
#endif
147+
148+
#ifdef HAL_SPI_MODULE_ENABLED
149+
WEAK const PinMap PinMap_SPI_SCLK[] = {
150+
{PA_0, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI2)},
151+
{PA_1, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
152+
{PB_8, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_SPI2)},
153+
{NC, NP, 0}
154+
};
155+
#endif
156+
157+
#ifdef HAL_SPI_MODULE_ENABLED
158+
WEAK const PinMap PinMap_SPI_SSEL[] = {
159+
{PA_8, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_SPI2)},
160+
{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
161+
{PB_0, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
162+
{PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
163+
{NC, NP, 0}
164+
};
165+
#endif
166+
167+
//*** No CAN ***
168+
169+
//*** No ETHERNET ***
170+
171+
//*** No QUADSPI ***
172+
173+
//*** No USB ***
174+
175+
//*** No SD ***

Diff for: variants/DISCO_G0316/PinNamesVar.h

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/* SYS_WKUP */
2+
#ifdef PWR_WAKEUP_PIN1
3+
SYS_WKUP1 = PA_0,
4+
#endif
5+
#ifdef PWR_WAKEUP_PIN2
6+
SYS_WKUP2 = PA_4,
7+
#endif
8+
#ifdef PWR_WAKEUP_PIN3
9+
SYS_WKUP3 = NC,
10+
#endif
11+
#ifdef PWR_WAKEUP_PIN4
12+
SYS_WKUP4 = PA_2,
13+
#endif
14+
#ifdef PWR_WAKEUP_PIN5
15+
SYS_WKUP5 = NC,
16+
#endif
17+
#ifdef PWR_WAKEUP_PIN6
18+
SYS_WKUP6 = PB_5,
19+
#endif
20+
#ifdef PWR_WAKEUP_PIN7
21+
SYS_WKUP7 = NC,
22+
#endif
23+
#ifdef PWR_WAKEUP_PIN8
24+
SYS_WKUP8 = NC,
25+
#endif

0 commit comments

Comments
 (0)