Skip to content

Commit 364d42c

Browse files
committed
Initial support for Nucleo-F439ZI
1 parent 3d6e84b commit 364d42c

File tree

4 files changed

+500
-1
lines changed

4 files changed

+500
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
9797
| :green_heart: | STM32F412ZG | [Nucleo F412ZG](http://www.st.com/en/evaluation-tools/nucleo-f412zg.html) | *2.6.0* | |
9898
| :green_heart: | STM32F413ZH | [Nucleo F413ZH](http://www.st.com/en/evaluation-tools/nucleo-f413zh.html) | *2.4.0* | |
9999
| :green_heart: | STM32F429ZI | [Nucleo F429ZI](http://www.st.com/en/evaluation-tools/nucleo-f429zi.html) | *0.1.0* | |
100+
| :yellow_heart: | STM32F439ZI | [Nucleo F439ZI](http://www.st.com/en/evaluation-tools/nucleo-f439zi.html) | *2.9.0* | |
100101
| :green_heart: | STM32F446ZE | [Nucleo F446ZE](http://www.st.com/en/evaluation-tools/nucleo-f446ze.html) | *2.7.0* | |
101102
| :green_heart: | STM32F722ZE | [Nucleo F722ZE](http://www.st.com/en/evaluation-tools/nucleo-f722ze.html) | *2.4.0* | |
102103
| :green_heart: | STM32F767ZI | [Nucleo F767ZI](http://www.st.com/en/evaluation-tools/nucleo-f767zi.html) | *1.4.0* | |

variants/STM32F4xx/F427Z(G-I)T_F429ZET_F429Z(G-I)(T-Y)_F437Z(G-I)T_F439Z(G-I)(T-Y)/ldscript.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
******************************************************************************
33
* @file LinkerScript.ld
44
* @author Auto-generated by STM32CubeIDE
5-
* @brief Linker script for STM32F429ZITx Device from STM32F4 series
5+
* @brief Linker script for STM32F429ZITx/STM32F439ZITx Device from STM32F4 series
66
* 2048Kbytes FLASH
77
* 64Kbytes CCMRAM
88
* 192Kbytes RAM
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2011-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_F439ZI)
14+
#include "pins_arduino.h"
15+
16+
// Pin number
17+
// Match Table 17. NUCLEO-F439ZI pin assignments
18+
// from UM1974 STM32 Nucleo-144 board
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/A10
32+
PA_6, //D12/A11
33+
PA_5, //D13/A12
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/A13
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/A14
53+
PB_0, //D33/A18 - 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/A15
82+
PF_7, //D62/A16
83+
PF_9, //D63/A17
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+
PA_7, //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+
PF_3, //D81/A3
102+
PF_5, //D82/A4
103+
PF_10, //D83/A5
104+
PB_1, //D84/A6
105+
PC_2, //D85/A7
106+
PF_4, //D86/A8
107+
PF_6, //D87/A9
108+
PA_1, //D88/A19
109+
PA_2, //D89/A20
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+
PC_1, //D97/A21
118+
PC_4, //D98/A22
119+
PC_5, //D99/A23
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+
87, //A9
151+
11, //A10
152+
12, //A11
153+
13, //A12
154+
24, //A13
155+
32, //A14
156+
61, //A15
157+
62, //A16
158+
63, //A17
159+
33, //A18
160+
88, //A19
161+
89, //A20
162+
97, //A21
163+
98, //A22
164+
99 //A23
165+
};
166+
167+
// ----------------------------------------------------------------------------
168+
169+
#ifdef __cplusplus
170+
extern "C" {
171+
#endif
172+
173+
/**
174+
* @brief System Clock Configuration
175+
* The system Clock is configured as follow :
176+
* System Clock source = PLL (HSE)
177+
* SYSCLK(Hz) = 168000000
178+
* HCLK(Hz) = 168000000
179+
* AHB Prescaler = 1
180+
* APB1 Prescaler = 4
181+
* APB2 Prescaler = 2
182+
* HSE Frequency(Hz) = 8000000
183+
* PLL_M = 8
184+
* PLL_N = 336
185+
* PLL_P = 2
186+
* PLL_Q = 7
187+
* VDD(V) = 3.3
188+
* Main regulator output voltage = Scale1 mode
189+
* Flash Latency(WS) = 5
190+
* @param None
191+
* @retval None
192+
*/
193+
WEAK void SystemClock_Config(void)
194+
{
195+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
196+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
197+
198+
/* Enable Power Control clock */
199+
__HAL_RCC_PWR_CLK_ENABLE();
200+
201+
/* The voltage scaling allows optimizing the power consumption when the device is
202+
clocked below the maximum system frequency, to update the voltage scaling value
203+
regarding system frequency refer to product datasheet. */
204+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
205+
206+
/* Enable HSE Oscillator and activate PLL with HSE as source */
207+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
208+
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
209+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
210+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
211+
RCC_OscInitStruct.PLL.PLLM = 8;
212+
RCC_OscInitStruct.PLL.PLLN = 336;
213+
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
214+
RCC_OscInitStruct.PLL.PLLQ = 7;
215+
HAL_RCC_OscConfig(&RCC_OscInitStruct);
216+
217+
HAL_PWREx_EnableOverDrive();
218+
219+
/* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
220+
clocks dividers */
221+
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK |
222+
RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
223+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
224+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
225+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
226+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
227+
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
228+
229+
/* Ensure CCM RAM clock is enabled */
230+
__HAL_RCC_CCMDATARAMEN_CLK_ENABLE();
231+
}
232+
233+
#ifdef __cplusplus
234+
}
235+
#endif
236+
237+
#endif /* ARDUINO_NUCLEO_F439ZI */

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