1 #define MICROPY_HW_BOARD_NAME       "F411DISC"
2 #define MICROPY_HW_MCU_NAME         "STM32F411"
3 
4 #define MICROPY_HW_HAS_SWITCH       (1)
5 #define MICROPY_HW_HAS_FLASH        (1)
6 #define MICROPY_HW_ENABLE_RTC       (1)
7 #define MICROPY_HW_ENABLE_USB       (1)
8 #define MICROPY_HW_ENABLE_SERVO     (1)
9 
10 // HSE is 8MHz
11 #define MICROPY_HW_CLK_PLLM (5)
12 #define MICROPY_HW_CLK_PLLN (210)
13 #define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV4)
14 #define MICROPY_HW_CLK_PLLQ (7)
15 
16 // does not have a 32kHz crystal
17 #define MICROPY_HW_RTC_USE_LSE      (0)
18 
19 // UART config
20 #define MICROPY_HW_UART1_TX     (pin_A9)
21 #define MICROPY_HW_UART1_RX     (pin_A10)
22 #define MICROPY_HW_UART2_TX     (pin_A2)
23 #define MICROPY_HW_UART2_RX     (pin_A3)
24 #define MICROPY_HW_UART2_RTS    (pin_A1)
25 #define MICROPY_HW_UART2_CTS    (pin_A0)
26 #define MICROPY_HW_UART6_TX     (pin_C6)
27 #define MICROPY_HW_UART6_RX     (pin_C7)
28 
29 // I2C buses
30 #define MICROPY_HW_I2C1_SCL (pin_B6)
31 #define MICROPY_HW_I2C1_SDA (pin_B9)
32 //#define MICROPY_HW_I2C2_SCL (pin_B10)
33 //#define MICROPY_HW_I2C2_SDA (pin_B11)
34 #define MICROPY_HW_I2C3_SCL (pin_A8)
35 #define MICROPY_HW_I2C3_SDA (pin_A9)
36 
37 // SPI buses
38 #define MICROPY_HW_SPI1_NSS  (pin_A4)
39 #define MICROPY_HW_SPI1_SCK  (pin_A5)
40 #define MICROPY_HW_SPI1_MISO (pin_A6)
41 #define MICROPY_HW_SPI1_MOSI (pin_A7)
42 #define MICROPY_HW_SPI2_NSS  (pin_B12)
43 #define MICROPY_HW_SPI2_SCK  (pin_B13)
44 #define MICROPY_HW_SPI2_MISO (pin_B14)
45 #define MICROPY_HW_SPI2_MOSI (pin_B15)
46 
47 // USRSW is pulled low. Pressing the button makes the input go high.
48 #define MICROPY_HW_USRSW_PIN        (pin_A0)
49 #define MICROPY_HW_USRSW_PULL       (GPIO_NOPULL)
50 #define MICROPY_HW_USRSW_EXTI_MODE  (GPIO_MODE_IT_RISING)
51 #define MICROPY_HW_USRSW_PRESSED    (1)
52 
53 // LEDs
54 #define MICROPY_HW_LED1             (pin_D14) // red
55 #define MICROPY_HW_LED2             (pin_D12) // green
56 #define MICROPY_HW_LED3             (pin_D13) // orange
57 #define MICROPY_HW_LED4             (pin_D15) // blue
58 #define MICROPY_HW_LED_ON(pin)      (mp_hal_pin_high(pin))
59 #define MICROPY_HW_LED_OFF(pin)     (mp_hal_pin_low(pin))
60 
61 // USB config
62 #define MICROPY_HW_USB_FS              (1)
63 #define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)
64 #define MICROPY_HW_USB_OTG_ID_PIN      (pin_A10)
65