Skip to content

Commit fece41d

Browse files
authored
Merge pull request #13713 from jeromecoutant/PR_NUCLEO_H7A3
STM32H7: add NUCLEO_H7A3ZI_Q new target
2 parents d418667 + 3791822 commit fece41d

File tree

12 files changed

+3773
-0
lines changed

12 files changed

+3773
-0
lines changed

targets/TARGET_STM/TARGET_STM32H7/README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,31 @@ so you just have to create a custom_targets.json file with:
7373
}
7474
```
7575

76+
## STM32H7A3xx
77+
78+
STM32H7A3/7B3 devices are based on an Arm Cortex-M7 core (with double-precision floating point unit) running up to 280 MHz.
79+
80+
[st.com STM32H743ZI MCU page](https://www.st.com/en/microcontrollers-microprocessors/stm32h7a3-7b3.html)
81+
82+
### NUCLEO_H7A3ZI_Q
83+
84+
[st.com NUCLEO page](https://www.st.com/en/evaluation-tools/nucleo-h7a3zi-q.html)
85+
86+
[mbed.com Target page](https://os.mbed.com/platforms/ST-Nucleo-H7A3ZI-Q/)
87+
88+
- Total FLASH is 2 MB (0x200000)
89+
- 2x128 sectors of 8 KB
90+
- Flash memory bank 1 @ 0x0800 0000
91+
- Flash memory bank 2 @ 0x0810 0000
92+
93+
- RAM: 1312 KB
94+
- DTCM : 128 KB (0x20000) @0x2000 0000
95+
- SRAM : 1024 KB (0x100000) @0x2400 0000
96+
- SRAM1 : 64 KB (0x10000) @0x3000 0000
97+
- SRAM2 : 64 KB (0x10000) @0x3001 0000
98+
- SRAM3 : 32 KB (0x8000) @0x3800 0000
99+
100+
76101
# Dual core STM32
77102

78103
## STM32H747xx

targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H7A3xIQ/TARGET_NUCLEO_H7A3ZI_Q/PeripheralPins.c

Lines changed: 578 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 319 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,319 @@
1+
/* mbed Microcontroller Library
2+
* SPDX-License-Identifier: BSD-3-Clause
3+
******************************************************************************
4+
*
5+
* Copyright (c) 2016-2020 STMicroelectronics.
6+
* All rights reserved.
7+
*
8+
* This software component is licensed by ST under BSD 3-Clause license,
9+
* the "License"; You may not use this file except in compliance with the
10+
* License. You may obtain a copy of the License at:
11+
* opensource.org/licenses/BSD-3-Clause
12+
*
13+
******************************************************************************
14+
*
15+
* Automatically generated from STM32CubeMX/db/mcu/STM32H7A3Z(G-I)TxQ.xml
16+
*/
17+
18+
#ifndef MBED_PINNAMES_H
19+
#define MBED_PINNAMES_H
20+
21+
#include "cmsis.h"
22+
#include "PinNamesTypes.h"
23+
24+
#ifdef __cplusplus
25+
extern "C" {
26+
#endif
27+
28+
#define ALTC 0xF00
29+
30+
typedef enum {
31+
ALT0 = 0x100,
32+
ALT1 = 0x200,
33+
ALT2 = 0x300,
34+
ALT3 = 0x400,
35+
ALT4 = 0x500
36+
} ALTx;
37+
38+
typedef enum {
39+
40+
PA_0 = 0x00,
41+
PA_0C = PA_0 | ALTC, // dual pad
42+
PA_1 = 0x01,
43+
PA_1C = PA_1 | ALTC, // dual pad
44+
PA_1_ALT0 = PA_1 | ALT0, // same pin used for alternate HW
45+
PA_2 = 0x02,
46+
PA_2_ALT0 = PA_2 | ALT0, // same pin used for alternate HW
47+
PA_3 = 0x03,
48+
PA_3_ALT0 = PA_3 | ALT0, // same pin used for alternate HW
49+
PA_4 = 0x04,
50+
PA_4_ALT0 = PA_4 | ALT0, // same pin used for alternate HW
51+
PA_4_ALT1 = PA_4 | ALT1, // same pin used for alternate HW
52+
PA_5 = 0x05,
53+
PA_5_ALT0 = PA_5 | ALT0, // same pin used for alternate HW
54+
PA_6 = 0x06,
55+
PA_6_ALT0 = PA_6 | ALT0, // same pin used for alternate HW
56+
PA_7 = 0x07,
57+
PA_7_ALT0 = PA_7 | ALT0, // same pin used for alternate HW
58+
PA_7_ALT1 = PA_7 | ALT1, // same pin used for alternate HW
59+
PA_7_ALT2 = PA_7 | ALT2, // same pin used for alternate HW
60+
PA_8 = 0x08,
61+
PA_9 = 0x09,
62+
PA_9_ALT0 = PA_9 | ALT0, // same pin used for alternate HW
63+
PA_10 = 0x0A,
64+
PA_10_ALT0 = PA_10 | ALT0, // same pin used for alternate HW
65+
PA_11 = 0x0B,
66+
PA_11_ALT0 = PA_11 | ALT0, // same pin used for alternate HW
67+
PA_12 = 0x0C,
68+
PA_12_ALT0 = PA_12 | ALT0, // same pin used for alternate HW
69+
PA_13 = 0x0D,
70+
PA_14 = 0x0E,
71+
PA_15 = 0x0F,
72+
PA_15_ALT0 = PA_15 | ALT0, // same pin used for alternate HW
73+
PA_15_ALT1 = PA_15 | ALT1, // same pin used for alternate HW
74+
PB_0 = 0x10,
75+
PB_0_ALT0 = PB_0 | ALT0, // same pin used for alternate HW
76+
PB_0_ALT1 = PB_0 | ALT1, // same pin used for alternate HW
77+
PB_0_ALT2 = PB_0 | ALT2, // same pin used for alternate HW
78+
PB_1 = 0x11,
79+
PB_1_ALT0 = PB_1 | ALT0, // same pin used for alternate HW
80+
PB_1_ALT1 = PB_1 | ALT1, // same pin used for alternate HW
81+
PB_2 = 0x12,
82+
PB_3 = 0x13,
83+
PB_3_ALT0 = PB_3 | ALT0, // same pin used for alternate HW
84+
PB_3_ALT1 = PB_3 | ALT1, // same pin used for alternate HW
85+
PB_4 = 0x14,
86+
PB_4_ALT0 = PB_4 | ALT0, // same pin used for alternate HW
87+
PB_4_ALT1 = PB_4 | ALT1, // same pin used for alternate HW
88+
PB_5 = 0x15,
89+
PB_5_ALT0 = PB_5 | ALT0, // same pin used for alternate HW
90+
PB_5_ALT1 = PB_5 | ALT1, // same pin used for alternate HW
91+
PB_6 = 0x16,
92+
PB_6_ALT0 = PB_6 | ALT0, // same pin used for alternate HW
93+
PB_6_ALT1 = PB_6 | ALT1, // same pin used for alternate HW
94+
PB_7 = 0x17,
95+
PB_7_ALT0 = PB_7 | ALT0, // same pin used for alternate HW
96+
PB_8 = 0x18,
97+
PB_8_ALT0 = PB_8 | ALT0, // same pin used for alternate HW
98+
PB_9 = 0x19,
99+
PB_9_ALT0 = PB_9 | ALT0, // same pin used for alternate HW
100+
PB_10 = 0x1A,
101+
PB_11 = 0x1B,
102+
PB_12 = 0x1C,
103+
PB_13 = 0x1D,
104+
PB_14 = 0x1E,
105+
PB_14_ALT0 = PB_14 | ALT0, // same pin used for alternate HW
106+
PB_14_ALT1 = PB_14 | ALT1, // same pin used for alternate HW
107+
PB_15 = 0x1F,
108+
PB_15_ALT0 = PB_15 | ALT0, // same pin used for alternate HW
109+
PB_15_ALT1 = PB_15 | ALT1, // same pin used for alternate HW
110+
PC_0 = 0x20,
111+
PC_0_ALT0 = PC_0 | ALT0, // same pin used for alternate HW
112+
PC_1 = 0x21,
113+
PC_1_ALT0 = PC_1 | ALT0, // same pin used for alternate HW
114+
PC_1_ALT1 = PC_1 | ALT1, // same pin used for alternate HW
115+
PC_1_ALT2 = PC_1 | ALT2, // same pin used for alternate HW
116+
PC_2 = 0x22,
117+
PC_2C = PC_2 | ALTC, // dual pad
118+
PC_2C_ALT0 = PC_2C | ALT0, // same pin used for alternate HW
119+
PC_3 = 0x23,
120+
PC_3C = PC_3 | ALTC, // dual pad
121+
PC_4 = 0x24,
122+
PC_4_ALT0 = PC_4 | ALT0, // same pin used for alternate HW
123+
PC_5 = 0x25,
124+
PC_5_ALT0 = PC_5 | ALT0, // same pin used for alternate HW
125+
PC_5_ALT1 = PC_5 | ALT1, // same pin used for alternate HW
126+
PC_5_ALT2 = PC_5 | ALT2, // same pin used for alternate HW
127+
PC_6 = 0x26,
128+
PC_6_ALT0 = PC_6 | ALT0, // same pin used for alternate HW
129+
PC_7 = 0x27,
130+
PC_7_ALT0 = PC_7 | ALT0, // same pin used for alternate HW
131+
PC_8 = 0x28,
132+
PC_8_ALT0 = PC_8 | ALT0, // same pin used for alternate HW
133+
PC_9 = 0x29,
134+
PC_9_ALT0 = PC_9 | ALT0, // same pin used for alternate HW
135+
PC_10 = 0x2A,
136+
PC_10_ALT0 = PC_10 | ALT0, // same pin used for alternate HW
137+
PC_11 = 0x2B,
138+
PC_11_ALT0 = PC_11 | ALT0, // same pin used for alternate HW
139+
PC_12 = 0x2C,
140+
PC_13 = 0x2D,
141+
PC_14 = 0x2E,
142+
PC_15 = 0x2F,
143+
PD_0 = 0x30,
144+
PD_1 = 0x31,
145+
PD_2 = 0x32,
146+
PD_3 = 0x33,
147+
PD_4 = 0x34,
148+
PD_5 = 0x35,
149+
PD_6 = 0x36,
150+
PD_7 = 0x37,
151+
PD_8 = 0x38,
152+
PD_9 = 0x39,
153+
PD_10 = 0x3A,
154+
PD_11 = 0x3B,
155+
PD_12 = 0x3C,
156+
PD_13 = 0x3D,
157+
PD_14 = 0x3E,
158+
PD_15 = 0x3F,
159+
PE_0 = 0x40,
160+
PE_1 = 0x41,
161+
PE_2 = 0x42,
162+
PE_3 = 0x43,
163+
PE_4 = 0x44,
164+
PE_5 = 0x45,
165+
PE_6 = 0x46,
166+
PE_7 = 0x47,
167+
PE_8 = 0x48,
168+
PE_9 = 0x49,
169+
PE_10 = 0x4A,
170+
PE_11 = 0x4B,
171+
PE_12 = 0x4C,
172+
PE_13 = 0x4D,
173+
PE_14 = 0x4E,
174+
PE_15 = 0x4F,
175+
PF_6 = 0x56,
176+
PF_7 = 0x57,
177+
PF_8 = 0x58,
178+
PF_8_ALT0 = PF_8 | ALT0, // same pin used for alternate HW
179+
PF_9 = 0x59,
180+
PF_9_ALT0 = PF_9 | ALT0, // same pin used for alternate HW
181+
PF_10 = 0x5A,
182+
PF_11 = 0x5B,
183+
PF_14 = 0x5E,
184+
PF_14_ALT0 = PF_14 | ALT0, // same pin used for alternate HW
185+
PF_15 = 0x5F,
186+
PG_6 = 0x66,
187+
PG_7 = 0x67,
188+
PG_8 = 0x68,
189+
PG_9 = 0x69,
190+
PG_10 = 0x6A,
191+
PG_11 = 0x6B,
192+
PG_12 = 0x6C,
193+
PG_13 = 0x6D,
194+
PG_13_ALT0 = PG_13 | ALT0, // same pin used for alternate HW
195+
PG_14 = 0x6E,
196+
PH_0 = 0x70,
197+
PH_1 = 0x71,
198+
199+
/**** ADC internal channels ****/
200+
201+
ADC_TEMP = 0xF0, // Internal pin virtual value
202+
ADC_VREF = 0xF1, // Internal pin virtual value
203+
ADC_VBAT = 0xF2, // Internal pin virtual value
204+
205+
// Arduino Uno(Rev3) Header pin connection naming
206+
A0 = PA_3,
207+
A1 = PC_0,
208+
A2 = PC_3C,
209+
A3 = PB_1,
210+
A4 = PC_2C,
211+
A5 = PF_11,
212+
D0 = PB_7,
213+
D1 = PB_6,
214+
D2 = PG_14,
215+
D3 = PE_13,
216+
D4 = PE_14,
217+
D5 = PE_11,
218+
D6 = PA_8,
219+
D7 = PG_12,
220+
D8 = PG_9,
221+
D9 = PD_15,
222+
D10 = PD_14,
223+
D11 = PA_7,
224+
D12 = PA_6,
225+
D13 = PA_5,
226+
D14 = PB_9,
227+
D15 = PB_8,
228+
229+
// STDIO for console print
230+
#ifdef MBED_CONF_TARGET_STDIO_UART_TX
231+
STDIO_UART_TX = MBED_CONF_TARGET_STDIO_UART_TX,
232+
#else
233+
STDIO_UART_TX = PD_8,
234+
#endif
235+
#ifdef MBED_CONF_TARGET_STDIO_UART_RX
236+
STDIO_UART_RX = MBED_CONF_TARGET_STDIO_UART_RX,
237+
#else
238+
STDIO_UART_RX = PD_9,
239+
#endif
240+
241+
USBTX = STDIO_UART_TX, // used for greentea tests
242+
USBRX = STDIO_UART_RX, // used for greentea tests
243+
244+
// I2C signals aliases
245+
I2C_SDA = D14,
246+
I2C_SCL = D15,
247+
248+
// SPI signals aliases
249+
SPI_CS = D10,
250+
SPI_MOSI = D11,
251+
SPI_MISO = D12,
252+
SPI_SCK = D13,
253+
254+
// Standardized LED and button names
255+
LED1 = PB_0, // LD1 (Green Led)
256+
LED2 = PB_14, // LD3 (Red Led)
257+
LED3 = PE_1, // LD2 (Yellow Led)
258+
BUTTON1 = PC_13, // B1 (Blue PushButton)
259+
260+
// Backward legacy names
261+
USER_BUTTON = BUTTON1,
262+
PWM_OUT = D3,
263+
264+
/**** USB HS pins ****/
265+
USB_OTG_HS_DM = PA_11,
266+
USB_OTG_HS_DP = PA_12,
267+
USB_OTG_HS_ID = PA_10,
268+
USB_OTG_HS_SOF = PA_8,
269+
USB_OTG_HS_ULPI_CK = PA_5,
270+
USB_OTG_HS_ULPI_D0 = PA_3,
271+
USB_OTG_HS_ULPI_D1 = PB_0,
272+
USB_OTG_HS_ULPI_D2 = PB_1,
273+
USB_OTG_HS_ULPI_D3 = PB_10,
274+
USB_OTG_HS_ULPI_D4 = PB_11,
275+
USB_OTG_HS_ULPI_D5 = PB_12,
276+
USB_OTG_HS_ULPI_D6 = PB_13,
277+
USB_OTG_HS_ULPI_D7 = PB_5,
278+
USB_OTG_HS_ULPI_STP = PC_0,
279+
USB_OTG_HS_VBUS = PA_9,
280+
281+
/**** OSCILLATOR pins ****/
282+
RCC_OSC32_IN = PC_14,
283+
RCC_OSC32_OUT = PC_15,
284+
RCC_OSC_IN = PH_0,
285+
RCC_OSC_OUT = PH_1,
286+
287+
/**** DEBUG pins ****/
288+
DEBUG_JTCK_SWCLK = PA_14,
289+
DEBUG_JTDI = PA_15,
290+
DEBUG_JTDO_SWO = PB_3,
291+
DEBUG_JTMS_SWDIO = PA_13,
292+
DEBUG_JTRST = PB_4,
293+
DEBUG_TRACECLK = PE_2,
294+
DEBUG_TRACED0 = PE_3,
295+
DEBUG_TRACED0_ALT0 = PC_1,
296+
DEBUG_TRACED0_ALT1 = PG_13,
297+
DEBUG_TRACED1 = PE_4,
298+
DEBUG_TRACED1_ALT0 = PC_8,
299+
DEBUG_TRACED1_ALT1 = PG_14,
300+
DEBUG_TRACED2 = PE_5,
301+
DEBUG_TRACED2_ALT0 = PD_2,
302+
DEBUG_TRACED3 = PE_6,
303+
DEBUG_TRACED3_ALT0 = PC_12,
304+
DEBUG_TRGIO = PC_7,
305+
PWR_PVD_IN = PB_7,
306+
PWR_WKUP1 = PA_0,
307+
PWR_WKUP2 = PA_2,
308+
PWR_WKUP4 = PC_13,
309+
PWR_WKUP6 = PC_1,
310+
311+
// Not connected
312+
NC = (int)0xFFFFFFFF
313+
} PinName;
314+
315+
#ifdef __cplusplus
316+
}
317+
#endif
318+
319+
#endif

0 commit comments

Comments
 (0)