stm32/boards/NUCLEO_F756ZG: Add board definition for NUCLEO-F756ZG.

Signed-off-by: Damien George <damien@micropython.org>
pull/10215/head
brave ulysses 2022-12-14 00:12:34 -06:00 zatwierdzone przez Damien George
rodzic 5b7f71882b
commit 7f71057a89
7 zmienionych plików z 213 dodań i 3 usunięć

Wyświetl plik

@ -154,8 +154,8 @@
#define VBAT_DIV (4)
#elif defined(STM32F722xx) || defined(STM32F723xx) || \
defined(STM32F732xx) || defined(STM32F733xx) || \
defined(STM32F745xx) || \
defined(STM32F746xx) || defined(STM32F765xx) || \
defined(STM32F745xx) || defined(STM32F746xx) || \
defined(STM32F756xx) || defined(STM32F765xx) || \
defined(STM32F767xx) || defined(STM32F769xx)
#define VBAT_DIV (4)
#elif defined(STM32G0) || defined(STM32G4)

Wyświetl plik

@ -0,0 +1,15 @@
{
"deploy": [
"../deploy.md"
],
"docs": "",
"features": [],
"images": [
"nucleo_f756zg.jpg"
],
"mcu": "stm32f7",
"product": "Nucleo F756ZG",
"thumbnail": "",
"url": "",
"vendor": "ST Microelectronics"
}

Wyświetl plik

@ -0,0 +1,88 @@
// This board is only confirmed to operate using DFU mode and openocd.
// DFU mode can be accessed by setting BOOT0 (see schematics)
// To use openocd run "OPENOCD_CONFIG=boards/openocd_stm32f7.cfg" in
// the make command.
#define MICROPY_HW_BOARD_NAME "NUCLEO-F756ZG"
#define MICROPY_HW_MCU_NAME "STM32F756"
#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_DAC (1)
#define MICROPY_HW_ENABLE_USB (1)
// HSE is 8MHz
// VCOClock = HSE * PLLN / PLLM = 8 MHz * 216 / 4 = 432 MHz
// SYSCLK = VCOClock / PLLP = 432 MHz / 2 = 216 MHz
// USB/SDMMC/RNG Clock = VCOClock / PLLQ = 432 MHz / 9 = 48 MHz
#define MICROPY_HW_CLK_PLLM (4)
#define MICROPY_HW_CLK_PLLN (216)
#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV2)
#define MICROPY_HW_CLK_PLLQ (9)
// From the reference manual, for 2.7V to 3.6V
// 151-180 MHz => 5 wait states
// 181-210 MHz => 6 wait states
// 211-216 MHz => 7 wait states
#define MICROPY_HW_FLASH_LATENCY FLASH_LATENCY_7 // 210-216 MHz needs 7 wait states
// 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_I2C3_SCL (pin_H7)
#define MICROPY_HW_I2C3_SDA (pin_H8)
// SPI buses
#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_B9)
#define MICROPY_HW_CAN1_RX (pin_B8)
#define MICROPY_HW_CAN2_TX (pin_B13)
#define MICROPY_HW_CAN2_RX (pin_B12)
// 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)

Wyświetl plik

@ -0,0 +1,11 @@
MCU_SERIES = f7
CMSIS_MCU = STM32F756xx
AF_FILE = boards/stm32f746_af.csv
LD_FILES = boards/stm32f746.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

Wyświetl plik

@ -0,0 +1,77 @@
A0,PA3
A1,PC0
A2,PC3
A3,PF3
A4,PF5
A5,PF10
D0,PG9
D1,PG14
D2,PF15
D3,PE13
D4,PF14
D5,PE11
D6,PE9
D7,PF13
D8,PF12
D9,PD15
D10,PD14
D11,PA7
D12,PA6
D13,PA5
D14,PB9
D15,PB8
D16,PC6
D17,PB15
D18,PB13
D19,PB12
D20,PA15
D21,PC7
D22,PB5
D23,PB3
D24,PA4
D25,PB4
LED1,PB0
LED2,PB7
LED3,PB14
SW,PC13
TP1,PH2
TP2,PI8
TP3,PH15
AUDIO_INT,PD6
AUDIO_SDA,PH8
AUDIO_SCL,PH7
EXT_SDA,PB9
EXT_SCL,PB8
EXT_RST,PG3
SD_SW,PC13
LCD_BL_CTRL,PK3
LCD_INT,PI13
LCD_SDA,PH8
LCD_SCL,PH7
OTG_FS_POWER,PD5
OTG_FS_OVER_CURRENT,PD4
OTG_HS_OVER_CURRENT,PE3
USB_VBUS,PA9
USB_ID,PA10
USB_DM,PA11
USB_DP,PA12
VCP_TX,PD8
VCP_RX,PD9
UART2_TX,PD5
UART2_RX,PD6
UART2_RTS,PD4
UART2_CTS,PD3
UART6_TX,PG14
UART6_RX,PG9
SPI_B_NSS,PA4
SPI_B_SCK,PB3
SPI_B_MOSI,PB5
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 A0 PA3
2 A1 PC0
3 A2 PC3
4 A3 PF3
5 A4 PF5
6 A5 PF10
7 D0 PG9
8 D1 PG14
9 D2 PF15
10 D3 PE13
11 D4 PF14
12 D5 PE11
13 D6 PE9
14 D7 PF13
15 D8 PF12
16 D9 PD15
17 D10 PD14
18 D11 PA7
19 D12 PA6
20 D13 PA5
21 D14 PB9
22 D15 PB8
23 D16 PC6
24 D17 PB15
25 D18 PB13
26 D19 PB12
27 D20 PA15
28 D21 PC7
29 D22 PB5
30 D23 PB3
31 D24 PA4
32 D25 PB4
33 LED1 PB0
34 LED2 PB7
35 LED3 PB14
36 SW PC13
37 TP1 PH2
38 TP2 PI8
39 TP3 PH15
40 AUDIO_INT PD6
41 AUDIO_SDA PH8
42 AUDIO_SCL PH7
43 EXT_SDA PB9
44 EXT_SCL PB8
45 EXT_RST PG3
46 SD_SW PC13
47 LCD_BL_CTRL PK3
48 LCD_INT PI13
49 LCD_SDA PH8
50 LCD_SCL PH7
51 OTG_FS_POWER PD5
52 OTG_FS_OVER_CURRENT PD4
53 OTG_HS_OVER_CURRENT PE3
54 USB_VBUS PA9
55 USB_ID PA10
56 USB_DM PA11
57 USB_DP PA12
58 VCP_TX PD8
59 VCP_RX PD9
60 UART2_TX PD5
61 UART2_RX PD6
62 UART2_RTS PD4
63 UART2_CTS PD3
64 UART6_TX PG14
65 UART6_RX PG9
66 SPI_B_NSS PA4
67 SPI_B_SCK PB3
68 SPI_B_MOSI PB5
69 ETH_MDC PC1
70 ETH_MDIO PA2
71 ETH_RMII_REF_CLK PA1
72 ETH_RMII_CRS_DV PA7
73 ETH_RMII_RXD0 PC4
74 ETH_RMII_RXD1 PC5
75 ETH_RMII_TX_EN PG11
76 ETH_RMII_TXD0 PG13
77 ETH_RMII_TXD1 PB13

Wyświetl plik

@ -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_STM32F7XX_HAL_CONF_H
#define MICROPY_INCLUDED_STM32F7XX_HAL_CONF_H
#include "boards/stm32f7xx_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 (5000)
#define LSE_STARTUP_TIMEOUT (5000)
#endif // MICROPY_INCLUDED_STM32F7XX_HAL_CONF_H

Wyświetl plik

@ -137,7 +137,7 @@ const pyb_i2c_obj_t pyb_i2c_obj[] = {
#define PYB_I2C_TIMINGR (1)
#if defined(STM32F745xx) || defined(STM32F746xx)
#if defined(STM32F745xx) || defined(STM32F746xx) || defined(STM32F756xx)
// The value 0x40912732 was obtained from the DISCOVERY_I2Cx_TIMING constant
// defined in the STM32F7Cube file Drivers/BSP/STM32F746G-Discovery/stm32f7456g_discovery.h