Skip to content

Commit f5ee1b4

Browse files
variants(h7): add Nucleo-H743ZG
Signed-off-by: yetanothercarbot <[email protected]> Co-authored-by: Frederic Pillon <[email protected]>
1 parent a43419e commit f5ee1b4

File tree

4 files changed

+547
-0
lines changed

4 files changed

+547
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
9696
| :green_heart: | STM32L4R5ZI | [Nucleo L4R5ZI](http://www.st.com/en/evaluation-tools/nucleo-l4r5zi.html) | *1.4.0* | |
9797
| :green_heart: | STM32L4R5ZI-P | [Nucleo L4R5ZI-P](http://www.st.com/en/evaluation-tools/nucleo-l4r5zi-p.html) | *1.4.0* | |
9898
| :green_heart: | STM32L552ZE-Q | [Nucleo L552ZE-Q](https://www.st.com/en/evaluation-tools/nucleo-l552ze-q.html) | *2.0.0* | |
99+
| :yellow_heart: | STM32H723ZG | [Nucleo H723ZG](https://www.st.com/en/evaluation-tools/nucleo-h723zg.html) | **2.4.0** | |
99100
| :green_heart: | STM32H743ZI | [Nucleo H743ZI(2)](https://www.st.com/en/evaluation-tools/nucleo-h743zi.html) | *1.5.0* | Nucleo H743ZI2 since 1.6.0 |
100101
| :green_heart: | STM32U575ZI-Q | [NUCLEO-U575ZI-Q](https://www.st.com/en/evaluation-tools/nucleo-u575zi-q.html) | *2.1.0* | |
101102

boards.txt

+14
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,20 @@ Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.product_line=STM32F767xx
123123
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.variant=STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT
124124
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.cmsis_lib_gcc=arm_cortexM7lfsp_math
125125

126+
# NUCLEO H723ZG board
127+
Nucleo_144.menu.pnum.NUCLEO_H723ZG=Nucleo H723ZG
128+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.node=NODE_H723ZG
129+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.upload.maximum_size=1048576
130+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.upload.maximum_data_size=327680
131+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.build.mcu=cortex-m7
132+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.build.fpu=-mfpu=fpv4-sp-d16
133+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.build.float-abi=-mfloat-abi=hard
134+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.build.board=NUCLEO_H723ZG
135+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.build.series=STM32H7xx
136+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.build.product_line=STM32H723xx
137+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.build.variant=STM32H7xx/H723Z(E-G)T_H730ZBT_H733ZGT
138+
Nucleo_144.menu.pnum.NUCLEO_H723ZG.build.cmsis_lib_gcc=arm_cortexM7lfsp_math
139+
126140
# NUCLEO_H743ZI board
127141
Nucleo_144.menu.pnum.NUCLEO_H743ZI=Nucleo H743ZI
128142
Nucleo_144.menu.pnum.NUCLEO_H743ZI.node=NODE_H743ZI
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2022, 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_NUCLEO_H723ZG)
14+
#include "pins_arduino.h"
15+
16+
// Pin number
17+
const PinName digitalPin[] = {
18+
PB_7,
19+
PB_6,
20+
PG_14,
21+
PE_13,
22+
PE_14,
23+
PE_11,
24+
PE_9,
25+
PG_12,
26+
PF_3,
27+
PD_15,
28+
PD_14,
29+
PB_5,
30+
PA_6,
31+
PA_5,
32+
PB_9,
33+
PB_8,
34+
PC_6,
35+
PB_15,
36+
PB_13,
37+
PB_12,
38+
PA_15,
39+
PC_7,
40+
PB_5,
41+
PB_3,
42+
PA_4,
43+
PB_4,
44+
PG_6,
45+
PB_2,
46+
PD_13,
47+
PD_12,
48+
PD_11,
49+
PE_2,
50+
PA_0,
51+
PB_0,
52+
PE_0,
53+
PB_11,
54+
PB_10,
55+
PE_15,
56+
PE_6,
57+
PE_12,
58+
PE_10,
59+
PE_7,
60+
PE_8,
61+
PC_8,
62+
PC_9,
63+
PC_10,
64+
PC_11,
65+
PC_12,
66+
PD_2,
67+
PG_2,
68+
PG_3,
69+
PD_7,
70+
PD_6,
71+
PD_5,
72+
PD_4,
73+
PD_3,
74+
PE_2,
75+
PE_4,
76+
PE_5,
77+
PE_6,
78+
PE_3,
79+
PF_8,
80+
PF_7,
81+
PF_9,
82+
PG_1,
83+
PG_0,
84+
PD_1,
85+
PD_0,
86+
PF_0,
87+
PF_1,
88+
PF_2,
89+
PE_9,
90+
PB_2,
91+
PA_3,
92+
PC_0,
93+
PC_3_C,
94+
PB_1,
95+
PC_2_C,
96+
PF_10,
97+
PF_4,
98+
PF_5,
99+
PF_6,
100+
PF_11,
101+
PA_1,
102+
PA_2,
103+
PA_7,
104+
PA_8,
105+
PA_9,
106+
PA_10,
107+
PA_11,
108+
PA_12,
109+
PA_13,
110+
PA_14,
111+
PB_14,
112+
PC_1,
113+
PC_4,
114+
PC_5,
115+
PC_13,
116+
PC_14,
117+
PC_15,
118+
PD_8,
119+
PD_9,
120+
PD_10,
121+
PE_1,
122+
PF_12,
123+
PF_13,
124+
PF_14,
125+
PF_15,
126+
PG_4,
127+
PG_5,
128+
PG_7,
129+
PG_8,
130+
PG_9,
131+
PG_10,
132+
PG_11,
133+
PG_13,
134+
PG_15,
135+
PH_0,
136+
PH_1
137+
};
138+
139+
// Analog (Ax) pin number array
140+
const uint32_t analogInputPin[] = {
141+
73, // A0
142+
74, // A1
143+
75, // A2
144+
76, // A3
145+
77, // A4
146+
78, // A5
147+
79, // A6
148+
80, // A7
149+
81, // A8
150+
82, // A9
151+
83, // A10
152+
84, // A11
153+
85, // A12
154+
94, // A13
155+
95, // A14
156+
96, // A15
157+
104, // A16
158+
105, // A17
159+
106, // A18
160+
8, // A19
161+
12, // A20
162+
13, // A21
163+
24, // A22
164+
32, // A23
165+
33, // A24
166+
61, // A25
167+
62, // A26
168+
63 // A27
169+
};
170+
171+
// ----------------------------------------------------------------------------
172+
173+
#ifdef __cplusplus
174+
extern "C" {
175+
#endif
176+
177+
/**
178+
* @brief System Clock Configuration
179+
* @param None
180+
* @retval None
181+
*/
182+
WEAK void SystemClock_Config(void)
183+
{
184+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
185+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
186+
187+
/** Supply configuration update enable
188+
*/
189+
HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
190+
191+
/** Configure the main internal regulator output voltage
192+
*/
193+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);
194+
195+
while (!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
196+
197+
/** Initializes the RCC Oscillators according to the specified parameters
198+
* in the RCC_OscInitTypeDef structure.
199+
*/
200+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48 | RCC_OSCILLATORTYPE_HSE;
201+
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
202+
RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
203+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
204+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
205+
RCC_OscInitStruct.PLL.PLLM = 4;
206+
RCC_OscInitStruct.PLL.PLLN = 275;
207+
RCC_OscInitStruct.PLL.PLLP = 1;
208+
RCC_OscInitStruct.PLL.PLLQ = 4;
209+
RCC_OscInitStruct.PLL.PLLR = 2;
210+
RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_1;
211+
RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
212+
RCC_OscInitStruct.PLL.PLLFRACN = 0;
213+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
214+
Error_Handler();
215+
}
216+
217+
/** Initializes the CPU, AHB and APB buses clocks
218+
*/
219+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
220+
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2
221+
| RCC_CLOCKTYPE_D3PCLK1 | RCC_CLOCKTYPE_D1PCLK1;
222+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
223+
RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
224+
RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV2;
225+
RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
226+
RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
227+
RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
228+
RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
229+
230+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) {
231+
Error_Handler();
232+
}
233+
}
234+
235+
#ifdef __cplusplus
236+
}
237+
#endif
238+
#endif /* ARDUINO_ */

0 commit comments

Comments
 (0)