Skip to content

Commit 100fbe1

Browse files
committed
Added ThunderPack board (STM32L0xx)
- Add dfu-util as a upload option to platform.txt. - https://github.com/jgillick/ThunderPack
1 parent b4c6e2e commit 100fbe1

File tree

8 files changed

+675
-0
lines changed

8 files changed

+675
-0
lines changed

boards.txt

+22
Original file line numberDiff line numberDiff line change
@@ -1991,3 +1991,25 @@ Midatronics.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
19911991
Midatronics.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
19921992
Midatronics.menu.rtlib.full=Newlib Standard
19931993
Midatronics.menu.rtlib.full.build.flags.ldspecs=
1994+
1995+
###############################
1996+
# ThunderPack
1997+
ThunderPack.name=ThunderPack
1998+
ThunderPack.build.core=arduino
1999+
ThunderPack.build.product_line=STM32L072xx
2000+
ThunderPack.build.board=ThunderPack
2001+
ThunderPack.build.variant=THUNDER_PACK
2002+
ThunderPack.build.mcu=cortex-m0plus
2003+
ThunderPack.build.series=STM32L0xx
2004+
ThunderPack.build.cmsis_lib_gcc=arm_cortexM0l_math
2005+
ThunderPack.build.vid=0x0483
2006+
ThunderPack.build.extra_flags={build.usb_flags} -DUSBD_USE_CDC -D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0
2007+
2008+
ThunderPack.upload.maximum_size=196608
2009+
ThunderPack.upload.maximum_data_size=20480
2010+
2011+
ThunderPack.menu.upload_method.dfuUtil=DFU Util
2012+
ThunderPack.menu.upload_method.dfuUtil.upload.tool=dfu_util
2013+
ThunderPack.menu.upload_method.dfuUtil.upload.protocol=
2014+
ThunderPack.menu.upload_method.dfuUtil.upload.usbID=0483:df11
2015+
ThunderPack.menu.upload_method.dfuUtil.upload.address=0x08000000:leave

platform.txt

+11
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,14 @@ tools.maple_upload.path.linux={runtime.tools.STM32Tools.path}/tools/linux
200200
tools.maple_upload.upload.params.verbose=-d
201201
tools.maple_upload.upload.params.quiet=n
202202
tools.maple_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin"
203+
204+
# Upload using dfu-util
205+
tools.dfu_util.cmd=dfu-util
206+
tools.dfu_util.cmd.windows=dfu-util.exe
207+
tools.dfu_util.path={runtime.tools.STM32Tools.path}/tools/win/dfu-util
208+
tools.dfu_util.path.macosx={runtime.tools.STM32Tools.path}/tools/macosx/dfu-util
209+
tools.dfu_util.path.linux={runtime.tools.STM32Tools.path}/tools/linux/dfu-util
210+
tools.dfu_util.path.linux64={runtime.tools.STM32Tools.path}/tools/linux64/dfu-util
211+
tools.dfu_util.upload.params.verbose=-v
212+
tools.dfu_util.upload.params.quiet=
213+
tools.dfu_util.upload.pattern="{path}/{cmd}" --device {upload.usbID} -a 0 --dfuse-address {upload.address} -D "{build.path}/{build.project_name}.bin"
+168
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
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 STM32L072C(B-Z)Tx.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_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC_IN4
28+
{PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC_IN5
29+
{PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC_IN6
30+
{PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC_IN7
31+
{NC, NP, 0}
32+
};
33+
#endif
34+
35+
//*** DAC ***
36+
37+
#ifdef HAL_DAC_MODULE_ENABLED
38+
WEAK const PinMap PinMap_DAC[] = {
39+
{PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1
40+
{PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2
41+
{NC, NP, 0}
42+
};
43+
#endif
44+
45+
//*** I2C ***
46+
47+
#ifdef HAL_I2C_MODULE_ENABLED
48+
WEAK const PinMap PinMap_I2C_SDA[] = {
49+
{PA_10, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
50+
{PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF1_I2C1)},
51+
{NC, NP, 0}
52+
};
53+
#endif
54+
55+
#ifdef HAL_I2C_MODULE_ENABLED
56+
WEAK const PinMap PinMap_I2C_SCL[] = {
57+
{PA_8, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF7_I2C3)},
58+
{PA_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF6_I2C1)},
59+
{PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF1_I2C1)},
60+
{PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_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_2, TIM21, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_TIM21, 1, 0)}, // TIM21_CH1
73+
{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM2, 4, 0)}, // TIM2_CH4
74+
// {PA_3, TIM21, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_TIM21, 2, 0)}, // TIM21_CH2
75+
// {PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM2, 1, 0)}, // TIM2_CH1
76+
{PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
77+
// {PA_6, TIM22, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM22, 1, 0)}, // TIM22_CH1
78+
{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
79+
// {PA_7, TIM22, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM22, 2, 0)}, // TIM22_CH2
80+
{NC, NP, 0}
81+
};
82+
#endif
83+
84+
//*** SERIAL ***
85+
86+
#ifdef HAL_UART_MODULE_ENABLED
87+
WEAK const PinMap PinMap_UART_TX[] = {
88+
{PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART1)},
89+
// {PA_14, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_LPUART1)},
90+
{PA_14, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)},
91+
{PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)},
92+
{NC, NP, 0}
93+
};
94+
#endif
95+
96+
#ifdef HAL_UART_MODULE_ENABLED
97+
WEAK const PinMap PinMap_UART_RX[] = {
98+
{PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART1)},
99+
{PA_13, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_LPUART1)},
100+
{PB_7, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)},
101+
{NC, NP, 0}
102+
};
103+
#endif
104+
105+
#ifdef HAL_UART_MODULE_ENABLED
106+
WEAK const PinMap PinMap_UART_RTS[] = {
107+
{NC, NP, 0}
108+
};
109+
#endif
110+
111+
#ifdef HAL_UART_MODULE_ENABLED
112+
WEAK const PinMap PinMap_UART_CTS[] = {
113+
{PA_6, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_LPUART1)},
114+
{PB_7, USART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_USART4)},
115+
{NC, NP, 0}
116+
};
117+
#endif
118+
119+
//*** SPI ***
120+
121+
#ifdef HAL_SPI_MODULE_ENABLED
122+
WEAK const PinMap PinMap_SPI_MOSI[] = {
123+
{PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
124+
{NC, NP, 0}
125+
};
126+
#endif
127+
128+
#ifdef HAL_SPI_MODULE_ENABLED
129+
WEAK const PinMap PinMap_SPI_MISO[] = {
130+
{PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
131+
{NC, NP, 0}
132+
};
133+
#endif
134+
135+
#ifdef HAL_SPI_MODULE_ENABLED
136+
WEAK const PinMap PinMap_SPI_SCLK[] = {
137+
{PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
138+
{NC, NP, 0}
139+
};
140+
#endif
141+
142+
#ifdef HAL_SPI_MODULE_ENABLED
143+
WEAK const PinMap PinMap_SPI_SSEL[] = {
144+
{PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
145+
{NC, NP, 0}
146+
};
147+
#endif
148+
149+
//*** No CAN ***
150+
151+
//*** No ETHERNET ***
152+
153+
//*** No QUADSPI ***
154+
155+
//*** USB ***
156+
157+
#ifdef HAL_PCD_MODULE_ENABLED
158+
WEAK const PinMap PinMap_USB[] = {
159+
{PA_11, USB, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_DM
160+
{PA_12, USB, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_DP
161+
{PA_13, USB, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_USB)}, // USB_NOE
162+
{NC, NP, 0}
163+
};
164+
#endif
165+
166+
//*** No USB_OTG_FS ***
167+
168+
//*** No USB_OTG_HS ***

variants/THUNDER_PACK/PinNamesVar.h

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/* SYS_WKUP */
2+
#ifdef PWR_WAKEUP_PIN1
3+
SYS_WKUP1 = PA_0,
4+
#endif
5+
#ifdef PWR_WAKEUP_PIN2
6+
SYS_WKUP2 = PC_13,
7+
#endif
8+
#ifdef PWR_WAKEUP_PIN3
9+
SYS_WKUP3 = NC,
10+
#endif
11+
#ifdef PWR_WAKEUP_PIN4
12+
SYS_WKUP4 = NC,
13+
#endif
14+
#ifdef PWR_WAKEUP_PIN5
15+
SYS_WKUP5 = NC,
16+
#endif
17+
#ifdef PWR_WAKEUP_PIN6
18+
SYS_WKUP6 = NC,
19+
#endif
20+
#ifdef PWR_WAKEUP_PIN7
21+
SYS_WKUP7 = NC,
22+
#endif
23+
#ifdef PWR_WAKEUP_PIN8
24+
SYS_WKUP8 = NC,
25+
#endif
26+
/* USB */
27+
#ifdef USBCON
28+
USB_DM = PA_11,
29+
USB_DP = PA_12,
30+
USB_NOE = PA_13,
31+
#endif

0 commit comments

Comments
 (0)