1 #define MICROPY_HW_BOARD_NAME "PYBv1.1" 2 #define MICROPY_HW_MCU_NAME "STM32F405RG" 3 4 #define MICROPY_HW_HAS_SWITCH (1) 5 #define MICROPY_HW_HAS_FLASH (1) 6 #define MICROPY_HW_HAS_MMA7660 (1) 7 #define MICROPY_HW_HAS_LCD (1) 8 #define MICROPY_HW_ENABLE_RNG (1) 9 #define MICROPY_HW_ENABLE_RTC (1) 10 #define MICROPY_HW_ENABLE_SERVO (1) 11 #define MICROPY_HW_ENABLE_DAC (1) 12 #define MICROPY_HW_ENABLE_USB (1) 13 #define MICROPY_HW_ENABLE_SDCARD (1) 14 #define MICROPY_HW_ENABLE_I2S (1) 15 16 // HSE is 12MHz 17 #define MICROPY_HW_CLK_PLLM (12) 18 #define MICROPY_HW_CLK_PLLN (336) 19 #define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV2) 20 #define MICROPY_HW_CLK_PLLQ (7) 21 #define MICROPY_HW_CLK_LAST_FREQ (1) 22 23 // The pyboard has a 32kHz crystal for the RTC 24 #define MICROPY_HW_RTC_USE_LSE (1) 25 #define MICROPY_HW_RTC_USE_US (0) 26 #define MICROPY_HW_RTC_USE_CALOUT (1) 27 28 // UART config 29 #define MICROPY_HW_UART1_NAME "XB" 30 #define MICROPY_HW_UART1_TX (pin_B6) 31 #define MICROPY_HW_UART1_RX (pin_B7) 32 #define MICROPY_HW_UART2_TX (pin_A2) 33 #define MICROPY_HW_UART2_RX (pin_A3) 34 #define MICROPY_HW_UART2_RTS (pin_A1) 35 #define MICROPY_HW_UART2_CTS (pin_A0) 36 #define MICROPY_HW_UART3_NAME "YB" 37 #define MICROPY_HW_UART3_TX (pin_B10) 38 #define MICROPY_HW_UART3_RX (pin_B11) 39 #define MICROPY_HW_UART3_RTS (pin_B14) 40 #define MICROPY_HW_UART3_CTS (pin_B13) 41 #define MICROPY_HW_UART4_NAME "XA" 42 #define MICROPY_HW_UART4_TX (pin_A0) 43 #define MICROPY_HW_UART4_RX (pin_A1) 44 #define MICROPY_HW_UART6_NAME "YA" 45 #define MICROPY_HW_UART6_TX (pin_C6) 46 #define MICROPY_HW_UART6_RX (pin_C7) 47 48 // I2C buses 49 #define MICROPY_HW_I2C1_NAME "X" 50 #define MICROPY_HW_I2C1_SCL (pin_B6) 51 #define MICROPY_HW_I2C1_SDA (pin_B7) 52 #define MICROPY_HW_I2C2_NAME "Y" 53 #define MICROPY_HW_I2C2_SCL (pin_B10) 54 #define MICROPY_HW_I2C2_SDA (pin_B11) 55 56 // SPI buses 57 #define MICROPY_HW_SPI1_NAME "X" 58 #define MICROPY_HW_SPI1_NSS (pin_A4) // X5 59 #define MICROPY_HW_SPI1_SCK (pin_A5) // X6 60 #define MICROPY_HW_SPI1_MISO (pin_A6) // X7 61 #define MICROPY_HW_SPI1_MOSI (pin_A7) // X8 62 #define MICROPY_HW_SPI2_NAME "Y" 63 #define MICROPY_HW_SPI2_NSS (pin_B12) // Y5 64 #define MICROPY_HW_SPI2_SCK (pin_B13) // Y6 65 #define MICROPY_HW_SPI2_MISO (pin_B14) // Y7 66 #define MICROPY_HW_SPI2_MOSI (pin_B15) // Y8 67 68 // I2S buses 69 #define MICROPY_HW_I2S2 (1) 70 71 // CAN buses 72 #define MICROPY_HW_CAN1_NAME "YA" 73 #define MICROPY_HW_CAN1_TX (pin_B9) // Y4 74 #define MICROPY_HW_CAN1_RX (pin_B8) // Y3 75 #define MICROPY_HW_CAN2_NAME "YB" 76 #define MICROPY_HW_CAN2_TX (pin_B13) // Y6 77 #define MICROPY_HW_CAN2_RX (pin_B12) // Y5 78 79 // USRSW has no pullup or pulldown, and pressing the switch makes the input go low 80 #define MICROPY_HW_USRSW_PIN (pin_B3) 81 #define MICROPY_HW_USRSW_PULL (GPIO_PULLUP) 82 #define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_FALLING) 83 #define MICROPY_HW_USRSW_PRESSED (0) 84 85 // The pyboard has 4 LEDs 86 #define MICROPY_HW_LED1 (pin_A13) // red 87 #define MICROPY_HW_LED2 (pin_A14) // green 88 #define MICROPY_HW_LED3 (pin_A15) // yellow 89 #define MICROPY_HW_LED4 (pin_B4) // blue 90 #define MICROPY_HW_LED3_PWM { TIM2, 2, TIM_CHANNEL_1, GPIO_AF1_TIM2 } 91 #define MICROPY_HW_LED4_PWM { TIM3, 3, TIM_CHANNEL_1, GPIO_AF2_TIM3 } 92 #define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin)) 93 #define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin)) 94 95 // SD card detect switch 96 #define MICROPY_HW_SDCARD_DETECT_PIN (pin_A8) 97 #define MICROPY_HW_SDCARD_DETECT_PULL (GPIO_PULLUP) 98 #define MICROPY_HW_SDCARD_DETECT_PRESENT (GPIO_PIN_RESET) 99 100 // USB config 101 #define MICROPY_HW_USB_FS (1) 102 #define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9) 103 #define MICROPY_HW_USB_OTG_ID_PIN (pin_A10) 104 105 // MMA accelerometer config 106 #define MICROPY_HW_MMA_AVDD_PIN (pin_B5) 107 108 // Bootloader configuration (only needed if Mboot is used) 109 #define MBOOT_I2C_PERIPH_ID 1 110 #define MBOOT_I2C_SCL (pin_B8) 111 #define MBOOT_I2C_SDA (pin_B9) 112 #define MBOOT_I2C_ALTFUNC (4) 113