From 5b70fa0a64c076f8c1b894893d02fad49ad6bf5b Mon Sep 17 00:00:00 2001 From: Hierophect Date: Wed, 18 Dec 2019 15:40:08 -0500 Subject: [PATCH] enable internal SPI intercepts. can brick USB --- ports/stm32f4/boards/meowbit_v121/mpconfigboard.h | 8 ++++---- ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk | 14 +++++++------- ports/stm32f4/boards/meowbit_v121/pins.c | 2 ++ supervisor/spi_flash_api.h | 4 ++++ 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/ports/stm32f4/boards/meowbit_v121/mpconfigboard.h b/ports/stm32f4/boards/meowbit_v121/mpconfigboard.h index 89cdee6d95..eb526d0a75 100644 --- a/ports/stm32f4/boards/meowbit_v121/mpconfigboard.h +++ b/ports/stm32f4/boards/meowbit_v121/mpconfigboard.h @@ -39,7 +39,7 @@ #define BOARD_NO_VBUS // On-board flash -// #define SPI_FLASH_MOSI_PIN (&pin_PB15) -// #define SPI_FLASH_MISO_PIN (&pin_PB14) -// #define SPI_FLASH_SCK_PIN (&pin_PB13) -// #define SPI_FLASH_CS_PIN (&pin_PB01) +#define SPI_FLASH_MOSI_PIN (&pin_PB15) +#define SPI_FLASH_MISO_PIN (&pin_PB14) +#define SPI_FLASH_SCK_PIN (&pin_PB13) +#define SPI_FLASH_CS_PIN (&pin_PB01) diff --git a/ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk b/ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk index 1642120e80..20cad80a0c 100644 --- a/ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk +++ b/ports/stm32f4/boards/meowbit_v121/mpconfigboard.mk @@ -4,19 +4,19 @@ USB_PRODUCT = "Meowbit" USB_MANUFACTURER = "Kittenbot" USB_DEVICES = "CDC,MSC" -# SPI_FLASH_FILESYSTEM = 1 -# EXTERNAL_FLASH_DEVICE_COUNT = 1 -# EXTERNAL_FLASH_DEVICES = W25Q16JV_IQ -# LONGINT_IMPL = MPZ +SPI_FLASH_FILESYSTEM = 1 +EXTERNAL_FLASH_DEVICE_COUNT = 1 +EXTERNAL_FLASH_DEVICES = W25Q16JV_IQ +LONGINT_IMPL = MPZ -INTERNAL_FLASH_FILESYSTEM = 1 -LONGINT_IMPL = NONE +# INTERNAL_FLASH_FILESYSTEM = 1 +# LONGINT_IMPL = NONE MCU_SERIES = m4 MCU_VARIANT = stm32f4 MCU_SUB_VARIANT = stm32f401xe MCU_PACKAGE = 64 CMSIS_MCU = STM32F401xE -LD_FILE = boards/STM32F401_fs.ld +LD_FILE = boards/STM32F401.ld TEXT0_ADDR = 0x08010000 TEXT1_ADDR = 0x08020000 \ No newline at end of file diff --git a/ports/stm32f4/boards/meowbit_v121/pins.c b/ports/stm32f4/boards/meowbit_v121/pins.c index 8a798dcb48..2d5f2e8fae 100644 --- a/ports/stm32f4/boards/meowbit_v121/pins.c +++ b/ports/stm32f4/boards/meowbit_v121/pins.c @@ -1,4 +1,5 @@ #include "shared-bindings/board/__init__.h" +#include "supervisor/spi_flash_api.h" STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_LED_RED), MP_ROM_PTR(&pin_PB04) }, @@ -59,5 +60,6 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_P0), MP_ROM_PTR(&pin_PA00) }, { MP_ROM_QSTR(MP_QSTR_P3), MP_ROM_PTR(&pin_PB00) }, + { MP_ROM_QSTR(MP_QSTR_INTERNAL_SPI), MP_ROM_PTR(&spi) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); diff --git a/supervisor/spi_flash_api.h b/supervisor/spi_flash_api.h index 28cccb1b1a..b477308bab 100644 --- a/supervisor/spi_flash_api.h +++ b/supervisor/spi_flash_api.h @@ -31,6 +31,10 @@ #include "supervisor/shared/external_flash/devices.h" +#include "shared-bindings/busio/SPI.h" + +extern busio_spi_obj_t spi; //Used to share SPI bus on some boards + // This API is implemented for both normal SPI peripherals and QSPI peripherals. bool spi_flash_command(uint8_t command);