Porting to stm32f765vit6

Discussion and questions about boards that can run MicroPython but don't have a dedicated forum.
Target audience: Everyone interested in running MicroPython on other hardware.
Post Reply
roobkishan
Posts: 3
Joined: Wed Dec 02, 2020 5:17 pm

Porting to stm32f765vit6

Post by roobkishan » Wed Dec 02, 2020 5:22 pm

I have the chip stm32f765vit6 it is somewhat similar to nucleo f767zi. the configuration of this board is very minimal since i am just trying to port basic config at a moment. I tried to port it using stm32f765vit6 but the thing is i can't usb to. be working. every time i press reset the led is blinking i haven't created any blink program on the board yet. but don't know if it is from mboot or not.

The main thing i am trying to do is working uart console on the usb. since this board doesn't have uart exposed. stlink is connected. But i am programming it through dfu.

Thank you
Regards
Kishan Joshi

roobkishan
Posts: 3
Joined: Wed Dec 02, 2020 5:17 pm

Re: Porting to stm32f765vit6

Post by roobkishan » Sun Dec 06, 2020 6:11 am

On linux i am having

Code: Select all

Device not responding to setup address
But on mac no port at all.

i can upload the code using usb dfu both on mac and linux but after uploading. two leds are blinking but no usb port detected both mac and linux.

Code: Select all

#define MICROPY_HW_BOARD_NAME       "SWIFT_FC"
#define MICROPY_HW_MCU_NAME         "STM32F765VI"

#define MICROPY_HW_HAS_SWITCH       (0)
#define MICROPY_HW_HAS_FLASH        (1)
#define MICROPY_HW_ENABLE_RNG       (0)
#define MICROPY_HW_ENABLE_RTC       (0)
#define MICROPY_HW_ENABLE_DAC       (0)
#define MICROPY_HW_ENABLE_USB       (1)
#define MICROPY_HW_ENABLE_TIMER     (1)
// #define MICROPY_HW_ENABLE_SDCARD    (1)

// #define MICROPY_BOARD_EARLY_INIT    NUCLEO_F767ZI_board_early_init
// void NUCLEO_F767ZI_board_early_init(void);

// HSE is 16MHz
#define MICROPY_HW_CLK_PLLM (8)
#define MICROPY_HW_CLK_PLLN (216)
#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV4)
#define MICROPY_HW_CLK_PLLQ (11)
#define MICROPY_HW_CLK_LAST_FREQ (1)
#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_C6)
// #define MICROPY_HW_UART6_RX         (pin_C7)
// #define MICROPY_HW_UART5_TX         (pin_B6)
// #define MICROPY_HW_UART5_RX         (pin_B12)
// #define MICROPY_HW_UART7_TX         (pin_F7)
// #define MICROPY_HW_UART7_RX         (pin_F6)
// #define MICROPY_HW_UART8_TX         (pin_E1)
// #define MICROPY_HW_UART8_RX         (pin_E0)

// #define MICROPY_HW_UART_REPL        PYB_UART_3
// #define MICROPY_HW_UART_REPL_BAUD   115200

// I2C busses
// #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)
// #define MICROPY_HW_I2C4_SCL         (pin_F14)
// #define MICROPY_HW_I2C4_SDA         (pin_F15)

// SPI
// #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 busses
// #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_C6) // green
#define MICROPY_HW_LED2             (pin_C7) // blue
#define MICROPY_HW_LED3             (pin_C8) // 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)
// USB config
// #define MICROPY_HW_USB_FS           (1)
// #define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)
// #define USBD_CDC_RX_DATA_SIZE       (256)
// #define USBD_CDC_TX_DATA_SIZE       (256)
// #define MICROPY_HW_USB_HS_IN_FS     (1)
// #define MICROPY_HW_USB_MAIN_DEV     (USB_PHY_FS_ID)
// #define MICROPY_HW_USB_MAIN_DEV     (USB_PHY_FS_ID)
// USB config
#define MICROPY_HW_USB_FS              (1)
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)
// #define MICROPY_HW_USB_OTG_ID_PIN      (pin_A10)
#define MBOOT_USB_AUTODETECT_PORT   (1)
#define MBOOT_FSLOAD                (1)
#define MBOOT_VFS_FAT               (1)
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)
// #define MICROPY_HW_USB_OTG_ID_PIN      (pin_A10)

// SD card detect switch (actual pin may need to be changed for a particular use)
// #define MICROPY_HW_SDCARD_DETECT_PIN        (pin_G2)
// #define MICROPY_HW_SDCARD_DETECT_PULL       (GPIO_PULLUP)
// #define MICROPY_HW_SDCARD_DETECT_PRESENT    (GPIO_PIN_RESET)

// 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)
Above is board definition

HSE 16MHZ
AND NO LSE CRYSTAL since this is minimal board design

Post Reply