stm32/boards/NUCLEO_F439ZI: Add board definition for NUCLEO_F439ZI.

Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
Damien George 2021-07-27 16:46:10 +10:00
parent 0f0006f4e1
commit 224ac355cd
4 changed files with 240 additions and 0 deletions

View File

@ -0,0 +1,81 @@
#define MICROPY_HW_BOARD_NAME "NUCLEO-F439ZI"
#define MICROPY_HW_MCU_NAME "STM32F439ZIT6"
#define MICROPY_HW_HAS_SWITCH (1)
#define MICROPY_HW_HAS_FLASH (1)
#define MICROPY_HW_ENABLE_RNG (1)
#define MICROPY_HW_ENABLE_RTC (1)
#define MICROPY_HW_ENABLE_USB (1)
// HSE is 8MHz from ST-LINK, in bypass mode, run SYSCLK at 168MHz
#define MICROPY_HW_CLK_USE_BYPASS (1)
#define MICROPY_HW_CLK_PLLM (8)
#define MICROPY_HW_CLK_PLLN (336)
#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV2)
#define MICROPY_HW_CLK_PLLQ (7)
#define MICROPY_HW_FLASH_LATENCY FLASH_LATENCY_5
// The board has a 32768Hz crystal for LSE
#define MICROPY_HW_RTC_USE_LSE (1)
#define MICROPY_HW_RTC_USE_US (1)
// UART config
#define MICROPY_HW_UART2_TX (pin_D5)
#define MICROPY_HW_UART2_RX (pin_D6)
#define MICROPY_HW_UART2_RTS (pin_D4)
#define MICROPY_HW_UART2_CTS (pin_D3)
#define MICROPY_HW_UART3_TX (pin_D8)
#define MICROPY_HW_UART3_RX (pin_D9)
#define MICROPY_HW_UART6_TX (pin_G14)
#define MICROPY_HW_UART6_RX (pin_G9)
#define MICROPY_HW_UART_REPL PYB_UART_3
#define MICROPY_HW_UART_REPL_BAUD 115200
// I2C buses
#define MICROPY_HW_I2C1_SCL (pin_B8)
#define MICROPY_HW_I2C1_SDA (pin_B9)
#define MICROPY_HW_I2C2_SCL (pin_F1)
#define MICROPY_HW_I2C2_SDA (pin_F0)
// SPI buses
#define MICROPY_HW_SPI1_NSS (pin_D14)
#define MICROPY_HW_SPI1_SCK (pin_A5)
#define MICROPY_HW_SPI1_MISO (pin_A6)
#define MICROPY_HW_SPI1_MOSI (pin_A7)
#define MICROPY_HW_SPI3_NSS (pin_A4)
#define MICROPY_HW_SPI3_SCK (pin_B3)
#define MICROPY_HW_SPI3_MISO (pin_B4)
#define MICROPY_HW_SPI3_MOSI (pin_B5)
// CAN buses
#define MICROPY_HW_CAN1_TX (pin_D1)
#define MICROPY_HW_CAN1_RX (pin_D0)
// USRSW is pulled low; pressing the button makes the input go high.
#define MICROPY_HW_USRSW_PIN (pin_C13)
#define MICROPY_HW_USRSW_PULL (GPIO_NOPULL)
#define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_RISING)
#define MICROPY_HW_USRSW_PRESSED (1)
// LEDs
#define MICROPY_HW_LED1 (pin_B0) // green
#define MICROPY_HW_LED2 (pin_B7) // blue
#define MICROPY_HW_LED3 (pin_B14) // red
#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin))
#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))
// USB config (CN13 - USB OTG FS)
#define MICROPY_HW_USB_FS (1)
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)
#define MICROPY_HW_USB_OTG_ID_PIN (pin_A10)
// Ethernet via RMII
#define MICROPY_HW_ETH_MDC (pin_C1)
#define MICROPY_HW_ETH_MDIO (pin_A2)
#define MICROPY_HW_ETH_RMII_REF_CLK (pin_A1)
#define MICROPY_HW_ETH_RMII_CRS_DV (pin_A7)
#define MICROPY_HW_ETH_RMII_RXD0 (pin_C4)
#define MICROPY_HW_ETH_RMII_RXD1 (pin_C5)
#define MICROPY_HW_ETH_RMII_TX_EN (pin_G11)
#define MICROPY_HW_ETH_RMII_TXD0 (pin_G13)
#define MICROPY_HW_ETH_RMII_TXD1 (pin_B13)

View File

@ -0,0 +1,11 @@
MCU_SERIES = f4
CMSIS_MCU = STM32F439xx
AF_FILE = boards/stm32f439_af.csv
LD_FILES = boards/stm32f439.ld boards/common_ifs.ld
TEXT0_ADDR = 0x08000000
TEXT1_ADDR = 0x08020000
# MicroPython settings
MICROPY_PY_LWIP = 1
MICROPY_PY_USSL = 1
MICROPY_SSL_MBEDTLS = 1

View File

@ -0,0 +1,129 @@
,PA0
,PA1
,PA2
,PA3
,PA4
,PA5
,PA6
,PA7
,PA8
,PA9
,PA10
,PA11
,PA12
,PA13
,PA14
,PA15
,PB0
,PB1
,PB2
,PB3
,PB4
,PB5
,PB6
,PB7
,PB8
,PB9
,PB10
,PB11
,PB12
,PB13
,PB14
,PB15
,PC0
,PC1
,PC2
,PC3
,PC4
,PC5
,PC6
,PC7
,PC8
,PC9
,PC10
,PC11
,PC12
,PC13
,PC14
,PC15
,PD0
,PD1
,PD2
,PD3
,PD4
,PD5
,PD6
,PD7
,PD8
,PD9
,PD10
,PD11
,PD12
,PD13
,PD14
,PD15
,PE0
,PE1
,PE2
,PE3
,PE4
,PE5
,PE6
,PE7
,PE8
,PE9
,PE10
,PE11
,PE12
,PE13
,PE14
,PE15
,PF0
,PF1
,PF2
,PF3
,PF4
,PF5
,PF6
,PF7
,PF8
,PF9
,PF10
,PF11
,PF12
,PF13
,PF14
,PF15
,PG0
,PG1
,PG2
,PG3
,PG4
,PG5
,PG6
,PG7
,PG8
,PG9
,PG10
,PG11
,PG12
,PG13
,PG14
,PG15
SW,PC13
LED_GREEN,PB0
LED_BLUE,PB7
LED_RED,PB14
USB_VBUS,PA9
USB_ID,PA10
USB_DM,PA11
USB_DP,PA12
ETH_MDC,PC1
ETH_MDIO,PA2
ETH_RMII_REF_CLK,PA1
ETH_RMII_CRS_DV,PA7
ETH_RMII_RXD0,PC4
ETH_RMII_RXD1,PC5
ETH_RMII_TX_EN,PG11
ETH_RMII_TXD0,PG13
ETH_RMII_TXD1,PB13
1 PA0
2 PA1
3 PA2
4 PA3
5 PA4
6 PA5
7 PA6
8 PA7
9 PA8
10 PA9
11 PA10
12 PA11
13 PA12
14 PA13
15 PA14
16 PA15
17 PB0
18 PB1
19 PB2
20 PB3
21 PB4
22 PB5
23 PB6
24 PB7
25 PB8
26 PB9
27 PB10
28 PB11
29 PB12
30 PB13
31 PB14
32 PB15
33 PC0
34 PC1
35 PC2
36 PC3
37 PC4
38 PC5
39 PC6
40 PC7
41 PC8
42 PC9
43 PC10
44 PC11
45 PC12
46 PC13
47 PC14
48 PC15
49 PD0
50 PD1
51 PD2
52 PD3
53 PD4
54 PD5
55 PD6
56 PD7
57 PD8
58 PD9
59 PD10
60 PD11
61 PD12
62 PD13
63 PD14
64 PD15
65 PE0
66 PE1
67 PE2
68 PE3
69 PE4
70 PE5
71 PE6
72 PE7
73 PE8
74 PE9
75 PE10
76 PE11
77 PE12
78 PE13
79 PE14
80 PE15
81 PF0
82 PF1
83 PF2
84 PF3
85 PF4
86 PF5
87 PF6
88 PF7
89 PF8
90 PF9
91 PF10
92 PF11
93 PF12
94 PF13
95 PF14
96 PF15
97 PG0
98 PG1
99 PG2
100 PG3
101 PG4
102 PG5
103 PG6
104 PG7
105 PG8
106 PG9
107 PG10
108 PG11
109 PG12
110 PG13
111 PG14
112 PG15
113 SW PC13
114 LED_GREEN PB0
115 LED_BLUE PB7
116 LED_RED PB14
117 USB_VBUS PA9
118 USB_ID PA10
119 USB_DM PA11
120 USB_DP PA12
121 ETH_MDC PC1
122 ETH_MDIO PA2
123 ETH_RMII_REF_CLK PA1
124 ETH_RMII_CRS_DV PA7
125 ETH_RMII_RXD0 PC4
126 ETH_RMII_RXD1 PC5
127 ETH_RMII_TX_EN PG11
128 ETH_RMII_TXD0 PG13
129 ETH_RMII_TXD1 PB13

View File

@ -0,0 +1,19 @@
/* This file is part of the MicroPython project, http://micropython.org/
* The MIT License (MIT)
* Copyright (c) 2019 Damien P. George
*/
#ifndef MICROPY_INCLUDED_STM32F4XX_HAL_CONF_H
#define MICROPY_INCLUDED_STM32F4XX_HAL_CONF_H
#include "boards/stm32f4xx_hal_conf_base.h"
// Oscillator values in Hz
#define HSE_VALUE (8000000)
#define LSE_VALUE (32768)
#define EXTERNAL_CLOCK_VALUE (12288000)
// Oscillator timeouts in ms
#define HSE_STARTUP_TIMEOUT (100)
#define LSE_STARTUP_TIMEOUT (5000)
#endif // MICROPY_INCLUDED_STM32F4XX_HAL_CONF_H