Skip to content

Commit aed76aa

Browse files
committed
variant(WL): add LoRa-E5 mini
Signed-off-by: Frederic Pillon <[email protected]>
1 parent 6e3f991 commit aed76aa

File tree

5 files changed

+577
-0
lines changed

5 files changed

+577
-0
lines changed

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -748,6 +748,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
748748
| :----: | :-------: | ---- | :-----: | :---- |
749749
| :green_heart: | STM32L073RZ | [AcSIP S76S](https://www.acsip.com.tw) | *2.3.0* | |
750750
| :green_heart: | STM32F072C8<br>STM32F072CB | [Elektor LoRa Node](https://github.com/ElektorLabs/180516-Elektor_LoRa_Node) | *1.8.0* | [More info](https://www.elektormagazine.com/labs/lorawan-node-experimental-platform) |
751+
| :yellow_heart: | STM32WLE5JC | [LoRa-E5 mini](https://wiki.seeedstudio.com/LoRa_E5_mini/) | **2.6.0** | |
751752
| :green_heart: | STM32L151CB | [RAK811 LoRa Tracker](https://www.rakwireless.com/en/) | *1.4.0* | [Wiki](https://github.com/stm32duino/Arduino_Core_STM32/wiki/Connectivities#lora) |
752753
| :green_heart: | STM32L051C8 | [RHF76-052](https://lora-alliance.org/lora_products/rhf76-052/) | *1.7.0* | Basic support |
753754

Diff for: boards.txt

+14
Original file line numberDiff line numberDiff line change
@@ -10465,6 +10465,20 @@ LoRa.menu.pnum.ACSIP_S76S.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
1046510465
LoRa.menu.pnum.ACSIP_S76S.build.cmsis_lib_gcc=arm_cortexM0l_math
1046610466
LoRa.menu.pnum.ACSIP_S76S.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -D__CORTEX_SC=0
1046710467

10468+
# LORA_E5_MINI board
10469+
LoRa.menu.pnum.LORA_E5_MINI=LoRa-E5 mini
10470+
LoRa.menu.pnum.LORA_E5_MINI.upload.maximum_size=262144
10471+
LoRa.menu.pnum.LORA_E5_MINI.upload.maximum_data_size=65536
10472+
LoRa.menu.pnum.LORA_E5_MINI.build.mcu=cortex-m4
10473+
LoRa.menu.pnum.LORA_E5_MINI.build.board=LORA_E5_MINI
10474+
LoRa.menu.pnum.LORA_E5_MINI.build.series=STM32WLxx
10475+
LoRa.menu.pnum.LORA_E5_MINI.build.product_line=STM32WLE5xx
10476+
LoRa.menu.pnum.LORA_E5_MINI.build.variant=STM32WLxx/WL54JCI_WL55JCI_WLE4J(8-B-C)I_WLE5J(8-B-C)I
10477+
LoRa.menu.pnum.LORA_E5_MINI.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
10478+
LoRa.menu.pnum.LORA_E5_MINI.build.variant_h=variant_LORA_E5_MINI.h
10479+
LoRa.menu.pnum.LORA_E5_MINI.build.cmsis_lib_gcc=arm_cortexM4l_math
10480+
10481+
1046810482
# RAK811_TRACKER board
1046910483
LoRa.menu.pnum.RAK811_TRACKER=RAK811 LoRa Tracker (16kb RAM)
1047010484
LoRa.menu.pnum.RAK811_TRACKER.upload.maximum_size=131072
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2023, 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+
*/
13+
/*
14+
* Automatically generated from STM32WL54JCIx.xml, STM32WL55JCIx.xml
15+
* STM32WLE4J8Ix.xml, STM32WLE4JBIx.xml
16+
* STM32WLE4JCIx.xml, STM32WLE5J8Ix.xml
17+
* STM32WLE5JBIx.xml, STM32WLE5JCIx.xml
18+
* CubeMX DB release 6.0.80
19+
*/
20+
#if defined(ARDUINO_LORA_E5_MINI)
21+
#include "Arduino.h"
22+
#include "PeripheralPins.h"
23+
24+
/* =====
25+
* Notes:
26+
* - The pins mentioned Px_y_ALTz are alternative possibilities which use other
27+
* HW peripheral instances. You can use them the same way as any other "normal"
28+
* pin (i.e. analogWrite(PA7_ALT1, 128);).
29+
*
30+
* - Commented lines are alternative possibilities which are not used per default.
31+
* If you change them, you will have to know what you do
32+
* =====
33+
*/
34+
35+
//*** ADC ***
36+
37+
#ifdef HAL_ADC_MODULE_ENABLED
38+
WEAK const PinMap PinMap_ADC[] = {
39+
{PA_10, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC_IN6
40+
// {PA_11, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC_IN7
41+
// {PA_12, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC_IN8
42+
{PA_13, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC_IN9
43+
{PA_14, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC_IN10
44+
{PA_15, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC_IN11
45+
// {PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC_IN5
46+
// {PB_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC_IN4
47+
{PB_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC_IN2
48+
{PB_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC_IN3
49+
{PB_13, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC_IN0
50+
{PB_14, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC_IN1
51+
{NC, NP, 0}
52+
};
53+
#endif
54+
55+
//*** DAC ***
56+
57+
#ifdef HAL_DAC_MODULE_ENABLED
58+
WEAK const PinMap PinMap_DAC[] = {
59+
{PA_10, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1
60+
{NC, NP, 0}
61+
};
62+
#endif
63+
64+
//*** I2C ***
65+
66+
#ifdef HAL_I2C_MODULE_ENABLED
67+
WEAK const PinMap PinMap_I2C_SDA[] = {
68+
{PA_10, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
69+
// {PA_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
70+
{PA_15, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
71+
{PB_4, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
72+
{PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
73+
{PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
74+
// {PB_11, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
75+
{PB_14, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
76+
{PC_1, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
77+
{NC, NP, 0}
78+
};
79+
#endif
80+
81+
#ifdef HAL_I2C_MODULE_ENABLED
82+
WEAK const PinMap PinMap_I2C_SCL[] = {
83+
// {PA_7, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
84+
{PA_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
85+
// {PA_12, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
86+
{PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
87+
// {PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
88+
{PB_10, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
89+
{PB_13, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
90+
{PB_15, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
91+
{PC_0, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
92+
{NC, NP, 0}
93+
};
94+
#endif
95+
96+
//*** TIM ***
97+
98+
#ifdef HAL_TIM_MODULE_ENABLED
99+
WEAK const PinMap PinMap_TIM[] = {
100+
{PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
101+
// {PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
102+
{PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
103+
{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
104+
// {PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
105+
// {PA_6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF14_TIM16, 1, 0)}, // TIM16_CH1
106+
// {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
107+
// {PA_7_ALT1, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF14_TIM17, 1, 0)}, // TIM17_CH1
108+
// {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1
109+
{PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
110+
{PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
111+
// {PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4
112+
{PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
113+
{PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
114+
{PB_6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF14_TIM16, 1, 1)}, // TIM16_CH1N
115+
{PB_7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF14_TIM17, 1, 1)}, // TIM17_CH1N
116+
// {PB_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
117+
// {PB_8_ALT1, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF14_TIM16, 1, 0)}, // TIM16_CH1
118+
{PB_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
119+
{PB_9_ALT1, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF14_TIM17, 1, 0)}, // TIM17_CH1
120+
{PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
121+
// {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
122+
{PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
123+
{PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
124+
{PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
125+
{NC, NP, 0}
126+
};
127+
#endif
128+
129+
//*** UART ***
130+
131+
#ifdef HAL_UART_MODULE_ENABLED
132+
WEAK const PinMap PinMap_UART_TX[] = {
133+
{PA_2, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
134+
{PA_2_ALT1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
135+
{PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
136+
{PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
137+
// {PB_11, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
138+
{PC_1, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
139+
{NC, NP, 0}
140+
};
141+
#endif
142+
143+
#ifdef HAL_UART_MODULE_ENABLED
144+
WEAK const PinMap PinMap_UART_RX[] = {
145+
{PA_3, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
146+
{PA_3_ALT1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
147+
{PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
148+
{PB_7, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
149+
{PB_10, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
150+
{PC_0, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
151+
{NC, NP, 0}
152+
};
153+
#endif
154+
155+
#ifdef HAL_UART_MODULE_ENABLED
156+
WEAK const PinMap PinMap_UART_RTS[] = {
157+
// {PA_1, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
158+
// {PA_1_ALT1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
159+
// {PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
160+
// {PB_1, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
161+
{PB_3, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
162+
// {PB_12, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
163+
{NC, NP, 0}
164+
};
165+
#endif
166+
167+
#ifdef HAL_UART_MODULE_ENABLED
168+
WEAK const PinMap PinMap_UART_CTS[] = {
169+
// {PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
170+
// {PA_6, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
171+
// {PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
172+
{PB_4, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
173+
// {PB_13, LPUART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_LPUART1)},
174+
{NC, NP, 0}
175+
};
176+
#endif
177+
178+
//*** SPI ***
179+
180+
#ifdef HAL_SPI_MODULE_ENABLED
181+
WEAK const PinMap PinMap_SPI_MOSI[] = {
182+
// {PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
183+
{PA_7, SUBGHZSPI, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF13_DEBUG_SUBGHZSPI)},
184+
{PA_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
185+
// {PA_12, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
186+
// {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
187+
{PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
188+
{PC_1, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_SPI2)},
189+
// {PC_3, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
190+
{NC, NP, 0}
191+
};
192+
#endif
193+
194+
#ifdef HAL_SPI_MODULE_ENABLED
195+
WEAK const PinMap PinMap_SPI_MISO[] = {
196+
// {PA_5, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_SPI2)},
197+
// {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
198+
{PA_6, SUBGHZSPI, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF13_DEBUG_SUBGHZSPI)},
199+
// {PA_11, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
200+
{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
201+
{PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
202+
// {PC_2, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
203+
{NC, NP, 0}
204+
};
205+
#endif
206+
207+
#ifdef HAL_SPI_MODULE_ENABLED
208+
WEAK const PinMap PinMap_SPI_SCLK[] = {
209+
// {PA_1, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
210+
// {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
211+
{PA_5, SUBGHZSPI, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF13_DEBUG_SUBGHZSPI)},
212+
// {PA_8, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
213+
{PA_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
214+
{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
215+
{PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
216+
{PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
217+
{NC, NP, 0}
218+
};
219+
#endif
220+
221+
#ifdef HAL_SPI_MODULE_ENABLED
222+
WEAK const PinMap PinMap_SPI_SSEL[] = {
223+
// {PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
224+
{PA_4, SUBGHZSPI, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF13_DEBUG_SUBGHZSPI)},
225+
{PA_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_SPI2)},
226+
{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
227+
// {PB_2, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
228+
{PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
229+
// {PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
230+
{NC, NP, 0}
231+
};
232+
#endif
233+
234+
//*** No CAN ***
235+
236+
//*** No ETHERNET ***
237+
238+
//*** No QUADSPI ***
239+
240+
//*** No USB ***
241+
242+
//*** No SD ***
243+
244+
#endif /* ARDUINO_LORA_E5_MINI */
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2023, 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+
*/
13+
#if defined(ARDUINO_LORA_E5_MINI)
14+
#include "pins_arduino.h"
15+
16+
// Digital PinName array
17+
const PinName digitalPin[] = {
18+
PA_0, // D0
19+
PA_2, // D1
20+
PA_3, // D2
21+
PC_1, // D3
22+
PC_0, // D4
23+
PB_6, // D5
24+
PB_7, // D6
25+
PA_15, // D7/A0
26+
PB_15, // D8
27+
PA_9, // D9
28+
PB_10, // D10
29+
PB_13, // D11/A1
30+
PB_9, // D12
31+
PB_14, // D13/A2
32+
PA_10, // D14/A5
33+
PA_14, // D15/A6
34+
PA_13, // D16/A7
35+
PB_3, // D17/A3
36+
PB_4, // D18/A4
37+
PB_5, // D19
38+
PA_4, // D20
39+
PA_5, // D21
40+
PB_0, // D22
41+
PC_15, // D23
42+
PC_14, // D24
43+
PA_7, // D25
44+
PA_6 // D26
45+
46+
};
47+
48+
// Analog (Ax) pin number array
49+
const uint32_t analogInputPin[] = {
50+
7, // A0, PA15
51+
11, // A1, PB13
52+
13, // A2, PB14
53+
17, // A3, PB3
54+
18, // A4, PB4
55+
14, // A5, PA10
56+
15, // A6, PA14
57+
16 // A7, PA13
58+
};
59+
60+
// ----------------------------------------------------------------------------
61+
#ifdef __cplusplus
62+
extern "C" {
63+
#endif
64+
65+
/**
66+
* @brief System Clock Configuration
67+
* @param None
68+
* @retval None
69+
*/
70+
WEAK void SystemClock_Config(void)
71+
{
72+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
73+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
74+
75+
/** Configure LSE Drive Capability
76+
*/
77+
HAL_PWR_EnableBkUpAccess();
78+
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
79+
/** Configure the main internal regulator output voltage
80+
*/
81+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
82+
/** Initializes the CPU, AHB and APB busses clocks
83+
*/
84+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_MSI;
85+
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
86+
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
87+
RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;
88+
RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_11;
89+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
90+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
91+
Error_Handler();
92+
}
93+
/** Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers
94+
*/
95+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK3 | RCC_CLOCKTYPE_HCLK
96+
| RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1
97+
| RCC_CLOCKTYPE_PCLK2;
98+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI;
99+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
100+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
101+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
102+
RCC_ClkInitStruct.AHBCLK3Divider = RCC_SYSCLK_DIV1;
103+
104+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {
105+
Error_Handler();
106+
}
107+
}
108+
109+
#ifdef __cplusplus
110+
}
111+
#endif
112+
#endif /* ARDUINO_LORA_E5_MINI */

0 commit comments

Comments
 (0)