From 5b13abcacb8c90faec437c609ad35ff904af21e1 Mon Sep 17 00:00:00 2001 From: 3DSmitty <51137582+3DSmitty@users.noreply.github.com> Date: Tue, 18 Jun 2019 03:38:18 -0400 Subject: [PATCH] Fix SPI_SD Outside of HAL_STM32F1 (#14306) --- .../src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp | 8 ---- Marlin/src/HAL/HAL_STM32F1/spi_pins.h | 38 +++++++++++-------- Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h | 13 ++++++- 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/Marlin/src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp b/Marlin/src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp index b5c49bd08..90a09ca83 100644 --- a/Marlin/src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp +++ b/Marlin/src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp @@ -113,9 +113,7 @@ void spiInit(uint8_t spiRate) { * @details */ uint8_t spiRec(void) { - WRITE(SS_PIN, LOW); uint8_t returnByte = SPI.transfer(0xFF); - WRITE(SS_PIN, HIGH); return returnByte; } @@ -129,9 +127,7 @@ uint8_t spiRec(void) { * @details Uses DMA */ void spiRead(uint8_t* buf, uint16_t nbyte) { - WRITE(SS_PIN, LOW); SPI.dmaTransfer(0, const_cast(buf), nbyte); - WRITE(SS_PIN, HIGH); } /** @@ -142,9 +138,7 @@ void spiRead(uint8_t* buf, uint16_t nbyte) { * @details */ void spiSend(uint8_t b) { - WRITE(SS_PIN, LOW); SPI.send(b); - WRITE(SS_PIN, HIGH); } /** @@ -156,10 +150,8 @@ void spiSend(uint8_t b) { * @details Use DMA */ void spiSendBlock(uint8_t token, const uint8_t* buf) { - WRITE(SS_PIN, LOW); SPI.send(token); SPI.dmaSend(const_cast(buf), 512); - WRITE(SS_PIN, HIGH); } #if ENABLED(SPI_EEPROM) diff --git a/Marlin/src/HAL/HAL_STM32F1/spi_pins.h b/Marlin/src/HAL/HAL_STM32F1/spi_pins.h index c2222110a..b830f0e25 100644 --- a/Marlin/src/HAL/HAL_STM32F1/spi_pins.h +++ b/Marlin/src/HAL/HAL_STM32F1/spi_pins.h @@ -23,28 +23,36 @@ */ /** - * Define SPI Pins: SCK, MISO, MOSI, SS - * - * Any PIN can be used for Chip Select (SS) + * STM32F1 Default SPI Pins * + * SS SCK MISO MOSI + * +-----------------------------+ + * SPI1 | PA4 PA5 PA6 PA7 | + * SPI2 | PB12 PB13 PB14 PB15 | + * SPI3 | PA15 PB3 PB4 PB5 | + * +-----------------------------+ + * Any pin can be used for Chip Select (SS_PIN) * SPI1 is enabled by default */ +#ifndef SCK_PIN + #define SCK_PIN PA5 +#endif +#ifndef MISO_PIN + #define MISO_PIN PA6 +#endif +#ifndef MOSI_PIN + #define MOSI_PIN PA7 +#endif +#ifndef SS_PIN + #define SS_PIN PA4 +#endif +#undef SDSS +#define SDSS SS_PIN + #if ENABLED(ENABLE_SPI3) #define SPI_DEVICE 3 - #define SCK_PIN BOARD_SPI3_SCK_PIN - #define MISO_PIN BOARD_SPI3_MISO_PIN - #define MOSI_PIN BOARD_SPI3_MOSI_PIN - #define SS_PIN BOARD_SPI3_NSS_PIN #elif ENABLED(ENABLE_SPI2) #define SPI_DEVICE 2 - #define SCK_PIN BOARD_SPI2_SCK_PIN - #define MISO_PIN BOARD_SPI2_MISO_PIN - #define MOSI_PIN BOARD_SPI2_MOSI_PIN - #define SS_PIN BOARD_SPI2_NSS_PIN #else #define SPI_DEVICE 1 - #define SCK_PIN BOARD_SPI1_SCK_PIN - #define MISO_PIN BOARD_SPI1_MISO_PIN - #define MOSI_PIN BOARD_SPI1_MOSI_PIN - #define SS_PIN BOARD_SPI1_NSS_PIN #endif diff --git a/Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h b/Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h index 221345a0d..8b0ab0cd0 100644 --- a/Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h +++ b/Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h @@ -133,8 +133,17 @@ //#define STM32_SD_LCD #if ENABLED(STM32_SD_LCD) - #define SD_DETECT_PIN PB9 #define ENABLE_SPI3 + #define SD_DETECT_PIN PB9 + #define SCK_PIN PB3 + #define MISO_PIN PB4 + #define MOSI_PIN PB5 + #define SS_PIN PA15 #else - #define SD_DETECT_PIN PA3 + #define ENABLE_SPI1 + #define SD_DETECT_PIN PA3 + #define SCK_PIN PA5 + #define MISO_PIN PA6 + #define MOSI_PIN PA7 + #define SS_PIN PA4 #endif