|
| 1 | +#define MICROPY_HW_BOARD_NAME "NUCLEO-F446RE" |
| 2 | +#define MICROPY_HW_MCU_NAME "STM32F446xx" |
| 3 | + |
| 4 | +#define MICROPY_HW_HAS_SWITCH (1) |
| 5 | +#define MICROPY_HW_HAS_FLASH (1) |
| 6 | +#define MICROPY_HW_ENABLE_RTC (1) |
| 7 | + |
| 8 | +// HSE is 8MHz, CPU freq set to 168MHz. Using PLLQ for USB this gives a nice |
| 9 | +// 48 MHz clock for USB. To goto 180 MHz, I think that USB would need to be |
| 10 | +// configured to use PLLSAI |
| 11 | +#define MICROPY_HW_CLK_PLLM (8) |
| 12 | +#define MICROPY_HW_CLK_PLLN (336) |
| 13 | +#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV2) |
| 14 | +#define MICROPY_HW_CLK_PLLQ (7) |
| 15 | + |
| 16 | +// UART config |
| 17 | +#define MICROPY_HW_UART2_TX (pin_A2) |
| 18 | +#define MICROPY_HW_UART2_RX (pin_A3) |
| 19 | +#define MICROPY_HW_UART6_TX (pin_C6) |
| 20 | +#define MICROPY_HW_UART6_RX (pin_C7) |
| 21 | +// UART 2 connects to the STM32F103 (STLINK) on the Nucleo board |
| 22 | +// and this is exposed as a USB Serial port. |
| 23 | +#define MICROPY_HW_UART_REPL PYB_UART_2 |
| 24 | +#define MICROPY_HW_UART_REPL_BAUD 115200 |
| 25 | + |
| 26 | +// I2C busses |
| 27 | +#define MICROPY_HW_I2C1_SCL (pin_B6) // Arduino D10, pin 17 on CN10 |
| 28 | +#define MICROPY_HW_I2C1_SDA (pin_B7) // pin 21 on CN7 |
| 29 | +#define MICROPY_HW_I2C2_SCL (pin_B10) // Arduino D6, pin 25 on CN10 |
| 30 | +#define MICROPY_HW_I2C2_SDA (pin_B3) // Arduino D3, pin 31 on CN10 |
| 31 | +#define MICROPY_HW_I2C3_SCL (pin_A8) // Arduino D7, pin 23 on CN10 |
| 32 | +#define MICROPY_HW_I2C3_SDA (pin_C9) // pin 1 on CN10 |
| 33 | + |
| 34 | +// SPI busses |
| 35 | +#define MICROPY_HW_SPI1_NSS (pin_A15) // pin 17 on CN7 |
| 36 | +#define MICROPY_HW_SPI1_SCK (pin_A5) // Arduino D13, pin 11 on CN10 |
| 37 | +#define MICROPY_HW_SPI1_MISO (pin_A6) // Arduino D12, pin 13 on CN10 |
| 38 | +#define MICROPY_HW_SPI1_MOSI (pin_A7) // Arduino D11, pin 15 on CN10 |
| 39 | + |
| 40 | +#define MICROPY_HW_SPI2_NSS (pin_B12) // pin 16 on CN10 |
| 41 | +#define MICROPY_HW_SPI2_SCK (pin_B13) // pin 30 on CN10 |
| 42 | +#define MICROPY_HW_SPI2_MISO (pin_B14) // pin 28 on CN10 |
| 43 | +#define MICROPY_HW_SPI2_MOSI (pin_B15) // pin 26 on CN10 |
| 44 | + |
| 45 | +#define MICROPY_HW_SPI3_NSS (pin_A4) // Arduino A2, pin 32 on CN7 |
| 46 | +#define MICROPY_HW_SPI3_SCK (pin_B3) // Arduino D3, pin 31 on CN10 |
| 47 | +#define MICROPY_HW_SPI3_MISO (pin_B4) // Arduino D5, pin 27 on CN10 |
| 48 | +#define MICROPY_HW_SPI3_MOSI (pin_B5) // Arduino D4, pin 29 on CN10 |
| 49 | + |
| 50 | +#define MICROPY_HW_SPI4_NSS (pin_B12) // pin 16 on CN10 |
| 51 | +#define MICROPY_HW_SPI4_SCK (pin_B13) // pin 30 on CN10 |
| 52 | +#define MICROPY_HW_SPI4_MISO (pin_A1) // pin 30 on CN7 |
| 53 | +#define MICROPY_HW_SPI4_MOSI (pin_A11) // pin 14 on CN10 |
| 54 | + |
| 55 | +// USRSW is pulled low. Pressing the button makes the input go high. |
| 56 | +#define MICROPY_HW_USRSW_PIN (pin_C13) |
| 57 | +#define MICROPY_HW_USRSW_PULL (GPIO_NOPULL) |
| 58 | +#define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_FALLING) |
| 59 | +#define MICROPY_HW_USRSW_PRESSED (0) |
| 60 | + |
| 61 | +// LEDs |
| 62 | +#define MICROPY_HW_LED1 (pin_A5) // Green LD2 LED on Nucleo |
| 63 | +#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin)) |
| 64 | +#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin)) |
0 commit comments