Skip to content

Commit 055eccc

Browse files
committed
Add Nucleo F413ZH board
Tested: - Serial - SPI - USB
1 parent f8584eb commit 055eccc

File tree

3 files changed

+509
-0
lines changed

3 files changed

+509
-0
lines changed

boards.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,20 @@ Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.variant=STM32F2xx/F207Z(C-E-F-G)T_F217Z
3636
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
3737
Nucleo_144.menu.pnum.NUCLEO_F207ZG.build.cmsis_lib_gcc=arm_cortexM3l_math
3838

39+
# NUCLEO_F413ZH board
40+
Nucleo_144.menu.pnum.NUCLEO_F413ZH=Nucleo F413ZH
41+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.node=NODE_F413ZH
42+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.upload.maximum_size=1572864
43+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.upload.maximum_data_size=327680
44+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.build.mcu=cortex-m4
45+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.build.fpu=-mfpu=fpv4-sp-d16
46+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.build.float-abi=-mfloat-abi=hard
47+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.build.board=NUCLEO_F413ZH
48+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.build.series=STM32F4xx
49+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.build.product_line=STM32F413xx
50+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.build.variant=STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)
51+
Nucleo_144.menu.pnum.NUCLEO_F413ZH.build.cmsis_lib_gcc=arm_cortexM4lf_math
52+
3953
# NUCLEO_F429ZI board
4054
# Support: USB HID, Serial1 (USART1 on PG9, PG14) and Serial2 (USART2 on PD6, PD5)
4155
Nucleo_144.menu.pnum.NUCLEO_F429ZI=Nucleo F429ZI
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2019-2021, 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_F413ZH)
14+
#include "pins_arduino.h"
15+
16+
// Digital PinName array
17+
// This array allows to wrap Arduino pin number(Dx or x)
18+
// to STM32 PinName (PX_n)
19+
const PinName digitalPin[] = {
20+
PG_9, //D0
21+
PG_14, //D1
22+
PF_15, //D2
23+
PE_13, //D3
24+
PF_14, //D4
25+
PE_11, //D5
26+
PE_9, //D6
27+
PF_13, //D7
28+
PF_12, //D8
29+
PD_15, //D9
30+
PD_14, //D10
31+
PA_7, //D11
32+
PA_6, //D12
33+
PA_5, //D13
34+
PB_9, //D14
35+
PB_8, //D15
36+
PC_6, //D16
37+
PB_15, //D17
38+
PB_13, //D18
39+
PB_12, //D19
40+
PA_15, //D20
41+
PC_7, //D21
42+
PB_5, //D22
43+
PB_3, //D23
44+
PA_4, //D24
45+
PB_4, //D25
46+
PB_6, //D26
47+
PB_2, //D27
48+
PD_13, //D28
49+
PD_12, //D29
50+
PD_11, //D30
51+
PE_2, //D31
52+
PA_0, //D32
53+
PB_0, //D33/A23 - LED_GREEN
54+
PE_0, //D34
55+
PB_11, //D35
56+
PB_10, //D36
57+
PE_15, //D37
58+
PE_14, //D38
59+
PE_12, //D39
60+
PE_10, //D40
61+
PE_7, //D41
62+
PE_8, //D42
63+
PC_8, //D43
64+
PC_9, //D44
65+
PC_10, //D45
66+
PC_11, //D46
67+
PC_12, //D47
68+
PD_2, //D48
69+
PG_2, //D49
70+
PG_3, //D50
71+
PD_7, //D51
72+
PD_6, //D52
73+
PD_5, //D53
74+
PD_4, //D54
75+
PD_3, //D55
76+
PE_2, //D56
77+
PE_4, //D57
78+
PE_5, //D58
79+
PE_6, //D59
80+
PE_3, //D60
81+
PF_8, //D61
82+
PF_7, //D62
83+
PF_9, //D63
84+
PG_1, //D64
85+
PG_0, //D65
86+
PD_1, //D66
87+
PD_0, //D67
88+
PF_0, //D68
89+
PF_1, //D69
90+
PF_2, //D70
91+
NC, //D71
92+
NC, //D72
93+
PB_7, //D73 - LED_BLUE
94+
PB_14, //D74 - LED_RED
95+
PC_13, //D75 - USER_BTN
96+
PD_9, //D76 - Serial Rx
97+
PD_8, //D77 - Serial Tx
98+
PA_3, //D78/A0
99+
PC_0, //D79/A1
100+
PC_3, //D80/A2
101+
PC_1, //D81/A3
102+
PC_4, //D82/A4
103+
PC_5, //D83/A5
104+
PB_1, //D84/A6
105+
PC_2, //D85/A7
106+
PA_2, //D86/A8
107+
PF_6, //D87/A9
108+
PA_1, //D88/A18
109+
PF_4, //D89
110+
PA_8, //D90
111+
PA_9, //D91
112+
PA_10, //D92
113+
PA_11, //D93
114+
PA_12, //D94
115+
PA_13, //D95
116+
PA_14, //D96
117+
PF_3, //D97/A20
118+
PF_5, //D98/A21
119+
PF_10, //D99/A22
120+
PC_14, //D100
121+
PC_15, //D101
122+
PD_10, //D102
123+
PE_1, //D103
124+
PF_11, //D104
125+
PG_4, //D105
126+
PG_5, //D106
127+
PG_6, //D107
128+
PG_7, //D108
129+
PG_8, //D109
130+
PG_10, //D110
131+
PG_11, //D111
132+
PG_12, //D112
133+
PG_13, //D113
134+
PG_15, //D114
135+
PH_0, //D115
136+
PH_1 //D116
137+
};
138+
139+
// Analog (Ax) pin number array
140+
const uint32_t analogInputPin[] = {
141+
78, //A0
142+
79, //A1
143+
80, //A2
144+
81, //A3
145+
82, //A4
146+
83, //A5
147+
84, //A6
148+
85, //A7
149+
86, //A8
150+
88, //A9
151+
11, //A10
152+
12, //A11
153+
13, //A12
154+
24, //A13
155+
32, //A14
156+
33 //A15
157+
};
158+
159+
// ----------------------------------------------------------------------------
160+
161+
#ifdef __cplusplus
162+
extern "C" {
163+
#endif
164+
165+
/**
166+
* @brief System Clock Configuration
167+
* @param None
168+
* @retval None
169+
*/
170+
WEAK void SystemClock_Config(void)
171+
{
172+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
173+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
174+
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {};
175+
176+
/** Configure the main internal regulator output voltage
177+
*/
178+
__HAL_RCC_PWR_CLK_ENABLE();
179+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
180+
181+
/** Initializes the RCC Oscillators according to the specified parameters
182+
* in the RCC_OscInitTypeDef structure.
183+
*/
184+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
185+
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
186+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
187+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
188+
RCC_OscInitStruct.PLL.PLLM = 4;
189+
RCC_OscInitStruct.PLL.PLLN = 100;
190+
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
191+
RCC_OscInitStruct.PLL.PLLQ = 8;
192+
RCC_OscInitStruct.PLL.PLLR = 2;
193+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
194+
Error_Handler();
195+
}
196+
197+
/** Initializes the CPU, AHB and APB buses clocks
198+
*/
199+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
200+
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
201+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
202+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
203+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
204+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
205+
206+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) {
207+
Error_Handler();
208+
}
209+
210+
/** Initializes the peripherals clock
211+
*/
212+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_PLLI2S | RCC_PERIPHCLK_CLK48
213+
| RCC_PERIPHCLK_I2S_APB2;
214+
PeriphClkInitStruct.PLLI2S.PLLI2SN = 72;
215+
PeriphClkInitStruct.PLLI2S.PLLI2SM = 4;
216+
PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
217+
PeriphClkInitStruct.PLLI2S.PLLI2SQ = 3;
218+
PeriphClkInitStruct.Clk48ClockSelection = RCC_CLK48CLKSOURCE_PLLI2SQ;
219+
PeriphClkInitStruct.I2sApb2ClockSelection = RCC_I2SAPB2CLKSOURCE_PLLI2S;
220+
PeriphClkInitStruct.PLLI2SSelection = RCC_PLLI2SCLKSOURCE_PLLSRC;
221+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
222+
Error_Handler();
223+
}
224+
}
225+
226+
#ifdef __cplusplus
227+
}
228+
#endif
229+
230+
#endif /* ARDUINO_NUCLEO_F413ZH */

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy