From 8cae48c08d11d85925e3f4c1d8904202cc9917ce Mon Sep 17 00:00:00 2001 From: MCUdude Date: Thu, 6 Feb 2020 09:01:39 +0100 Subject: [PATCH 1/2] Fix SPI mapping Make use of SPI3 on PA15, PB3, PB4 and PB5. This will make the generic F4 pinouts more similar, so it will be easier to migrate fron one chip to another without beaking code changes due to the pin mapping --- variants/Generic_F401Cx/variant.h | 8 ++++---- variants/Generic_F401Rx/PeripheralPins.c | 16 ++++++++-------- variants/Generic_F401Rx/variant.h | 8 ++++---- variants/Generic_F411Cx/variant.h | 6 +++--- variants/Generic_F411Rx/PeripheralPins.c | 12 ++++++------ variants/Generic_F411Rx/variant.h | 6 +++--- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/variants/Generic_F401Cx/variant.h b/variants/Generic_F401Cx/variant.h index 610d9a79c2..b621a2bf53 100644 --- a/variants/Generic_F401Cx/variant.h +++ b/variants/Generic_F401Cx/variant.h @@ -40,14 +40,14 @@ extern "C" { #define PA12 12 // | 12 | | USART6_RX | | | | #define PA13 13 // | 13 | | | | | SWD_SWDIO | #define PA14 14 // | 14 | | | | | SWD_SWCLK | -#define PA15 15 // | 15 | | | | SPI1_SS, (SPI3_SS) | | +#define PA15 15 // | 15 | | | | SPI3_SS, (SPI1_SS) | | // |---------|--------|-----------|----------|------------------------|-----------| #define PB0 A8 // | 16 | A8 | | | | | #define PB1 A9 // | 17 | A9 | | | | | #define PB2 18 // | 18 | | | | | BOOT1 | -#define PB3 19 // | 19 | | | TWI2_SDA | SPI1_SCK, (SPI3_SCK) | | -#define PB4 20 // | 20 | | | TWI3_SDA | SPI1_MISO, (SPI3_MISO) | | -#define PB5 21 // | 21 | | | | SPI1_MOSI, (SPI3_MOSI) | | +#define PB3 19 // | 19 | | | TWI2_SDA | SPI3_SCK, (SPI1_SCK) | | +#define PB4 20 // | 20 | | | TWI3_SDA | SPI3_MISO, (SPI1_MISO) | | +#define PB5 21 // | 21 | | | | SPI3_MOSI, (SPI1_MOSI) | | #define PB6 22 // | 22 | | USART1_TX | TWI1_SCL | | | #define PB7 23 // | 23 | | USART1_RX | TWI1_SDA | | | #define PB8 24 // | 24 | | | TWI1_SCL | | | diff --git a/variants/Generic_F401Rx/PeripheralPins.c b/variants/Generic_F401Rx/PeripheralPins.c index 46d77ac8ab..3957069f28 100644 --- a/variants/Generic_F401Rx/PeripheralPins.c +++ b/variants/Generic_F401Rx/PeripheralPins.c @@ -179,8 +179,8 @@ WEAK const PinMap PinMap_UART_CTS[] = { #ifdef HAL_SPI_MODULE_ENABLED WEAK const PinMap PinMap_SPI_MOSI[] = { {PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - // {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + // {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PC_3, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PC_12, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, @@ -191,8 +191,8 @@ WEAK const PinMap PinMap_SPI_MOSI[] = { #ifdef HAL_SPI_MODULE_ENABLED WEAK const PinMap PinMap_SPI_MISO[] = { {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - // {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + // {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PC_2, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PC_11, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, @@ -203,8 +203,8 @@ WEAK const PinMap PinMap_SPI_MISO[] = { #ifdef HAL_SPI_MODULE_ENABLED WEAK const PinMap PinMap_SPI_SCLK[] = { {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - // {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + // {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PC_10, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, @@ -216,8 +216,8 @@ WEAK const PinMap PinMap_SPI_SCLK[] = { WEAK const PinMap PinMap_SPI_SSEL[] = { {PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, // {PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, - {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - // {PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + // {PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + {PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {NC, NP, 0} diff --git a/variants/Generic_F401Rx/variant.h b/variants/Generic_F401Rx/variant.h index 28d9d59af6..d9d8e56d96 100644 --- a/variants/Generic_F401Rx/variant.h +++ b/variants/Generic_F401Rx/variant.h @@ -41,14 +41,14 @@ extern "C" { #define PA12 12 // | 12 | | USART6_RX | | | | #define PA13 13 // | 13 | | | | | SWD_SWDIO | #define PA14 14 // | 14 | | | | | SWD_SWCLK | -#define PA15 15 // | 15 | | | | SPI1_SS, (SPI3_SS) | | +#define PA15 15 // | 15 | | | | SPI3_SS, (SPI1_SS) | | // |---------|--------|-----------|----------|------------------------|-----------| #define PB0 A8 // | 16 | A8 | | | | | #define PB1 A9 // | 17 | A9 | | | | | #define PB2 18 // | 18 | | | | | BOOT1 | -#define PB3 19 // | 19 | | | TWI2_SDA | SPI1_SCK, (SPI3_SCK) | | -#define PB4 20 // | 20 | | | TWI3_SDA | SPI1_MISO, (SPI3_MISO) | | -#define PB5 21 // | 21 | | | | SPI1_MOSI, (SPI3_MOSI) | | +#define PB3 19 // | 19 | | | TWI2_SDA | SPI3_SCK, (SPI1_SCK) | | +#define PB4 20 // | 20 | | | TWI3_SDA | SPI3_MISO, (SPI1_MISO) | | +#define PB5 21 // | 21 | | | | SPI3_MOSI, (SPI1_MOSI) | | #define PB6 22 // | 22 | | USART1_TX | TWI1_SCL | | | #define PB7 23 // | 23 | | USART1_RX | TWI1_SDA | | | #define PB8 24 // | 24 | | | TWI1_SCL | | | diff --git a/variants/Generic_F411Cx/variant.h b/variants/Generic_F411Cx/variant.h index b2db3e381b..5e925a2389 100644 --- a/variants/Generic_F411Cx/variant.h +++ b/variants/Generic_F411Cx/variant.h @@ -45,9 +45,9 @@ extern "C" { #define PB0 A8 // | 16 | A8 | | | SPI5_SCK | | #define PB1 A9 // | 17 | A9 | | | SPI5_SS | | #define PB2 18 // | 18 | | | | | BOOT1 | -#define PB3 19 // | 19 | | USART1_RX | TWI2_SDA | SPI1_SCK, (SPI3_SCK) | | -#define PB4 20 // | 20 | | | TWI3_SDA | SPI1_MISO, (SPI3_MISO) | | -#define PB5 21 // | 21 | | | | SPI1_MOSI, (SPI3_MOSI) | | +#define PB3 19 // | 19 | | USART1_RX | TWI2_SDA | SPI3_SCK, (SPI1_SCK) | | +#define PB4 20 // | 20 | | | TWI3_SDA | SPI3_MISO, (SPI1_MISO) | | +#define PB5 21 // | 21 | | | | SPI3_MOSI, (SPI1_MOSI) | | #define PB6 22 // | 22 | | USART1_TX | TWI1_SCL | | | #define PB7 23 // | 23 | | USART1_RX | TWI1_SDA | | | #define PB8 24 // | 24 | | | TWI1_SCL, (TWI3_SDA) | SPI5_MOSI | | diff --git a/variants/Generic_F411Rx/PeripheralPins.c b/variants/Generic_F411Rx/PeripheralPins.c index 693864438f..a55dc01cd1 100644 --- a/variants/Generic_F411Rx/PeripheralPins.c +++ b/variants/Generic_F411Rx/PeripheralPins.c @@ -168,8 +168,8 @@ WEAK const PinMap PinMap_SPI_MOSI[] = { {PA_1, SPI4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI4)}, {PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PA_10, SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, - {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - // {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + // {PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_8, SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, {PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PC_3, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, @@ -183,8 +183,8 @@ WEAK const PinMap PinMap_SPI_MISO[] = { {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PA_11, SPI4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI4)}, {PA_12, SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, - {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - // {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + // {PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PC_2, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PC_11, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, @@ -196,8 +196,8 @@ WEAK const PinMap PinMap_SPI_MISO[] = { WEAK const PinMap PinMap_SPI_SCLK[] = { {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, {PB_0, SPI5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI5)}, - {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, - // {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, + // {PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, + {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)}, {PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, {PB_12, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_SPI3)}, // {PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)}, diff --git a/variants/Generic_F411Rx/variant.h b/variants/Generic_F411Rx/variant.h index a02e6508e5..345eabc2d9 100644 --- a/variants/Generic_F411Rx/variant.h +++ b/variants/Generic_F411Rx/variant.h @@ -46,9 +46,9 @@ extern "C" { #define PB0 A8 // | 16 | A8 | | | SPI5_SCK | | #define PB1 A9 // | 17 | A9 | | | SPI5_SS | | #define PB2 18 // | 18 | | | | | BOOT1 | -#define PB3 19 // | 19 | | USART1_RX | TWI2_SDA | SPI1_SCK, (SPI3_SCK) | | -#define PB4 20 // | 20 | | | TWI3_SDA | SPI1_MISO, (SPI3_MISO) | | -#define PB5 21 // | 21 | | | | SPI1_MOSI, (SPI3_MOSI) | | +#define PB3 19 // | 19 | | USART1_RX | TWI2_SDA | SPI3_SCK, (SPI1_SCK) | | +#define PB4 20 // | 20 | | | TWI3_SDA | SPI3_MISO, (SPI1_MISO) | | +#define PB5 21 // | 21 | | | | SPI3_MOSI, (SPI1_MOSI) | | #define PB6 22 // | 22 | | USART1_TX | TWI1_SCL | | | #define PB7 23 // | 23 | | USART1_RX | TWI1_SDA | | | #define PB8 24 // | 24 | | | TWI1_SCL, (TWI3_SDA) | SPI5_MOSI | | From 41c6676caa62676a6cca90f1180863ac27e16f57 Mon Sep 17 00:00:00 2001 From: MCUdude Date: Thu, 6 Feb 2020 11:29:43 +0100 Subject: [PATCH 2/2] Add missing SPI and i2c definitions --- variants/Generic_F410Cx/variant.h | 13 +++++++++++++ variants/Generic_F410Rx/variant.h | 14 ++++++++++++++ variants/Generic_F446Rx/variant.h | 13 +++++++++++++ 3 files changed, 40 insertions(+) diff --git a/variants/Generic_F410Cx/variant.h b/variants/Generic_F410Cx/variant.h index 4901efb8f7..be01e77e66 100644 --- a/variants/Generic_F410Cx/variant.h +++ b/variants/Generic_F410Cx/variant.h @@ -85,6 +85,19 @@ extern "C" { #define USER_BTN PC13 #endif +// SPI definitions +#define PIN_SPI_SS PA4 +#define PIN_SPI_SS1 PA4 +#define PIN_SPI_SS2 PB12 +#define PIN_SPI_SS5 PB1 +#define PIN_SPI_MOSI PA7 +#define PIN_SPI_MISO PA6 +#define PIN_SPI_SCK PA5 + +// I2C definitions +#define PIN_WIRE_SDA PB9 +#define PIN_WIRE_SCL PB8 + // Timer Definitions // Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin #define TIMER_TONE TIM6 diff --git a/variants/Generic_F410Rx/variant.h b/variants/Generic_F410Rx/variant.h index 0daff2c35c..b7e716ffcb 100644 --- a/variants/Generic_F410Rx/variant.h +++ b/variants/Generic_F410Rx/variant.h @@ -104,6 +104,20 @@ extern "C" { #define TIMER_TONE TIM6 #define TIMER_SERVO TIM7 +// SPI definitions +#define PIN_SPI_SS PA4 +#define PIN_SPI_SS1 PA4 +#define PIN_SPI_SS2 PB9 +#define PIN_SPI_SS3 PA15 +#define PIN_SPI_SS5 PB1 +#define PIN_SPI_MOSI PA7 +#define PIN_SPI_MISO PA6 +#define PIN_SPI_SCK PA5 + +// I2C definitions +#define PIN_WIRE_SDA PB9 +#define PIN_WIRE_SCL PB8 + // UART Definitions #define SERIAL_UART_INSTANCE 2 // Connected to ST-Link diff --git a/variants/Generic_F446Rx/variant.h b/variants/Generic_F446Rx/variant.h index ffc9b0b08a..d07d745d02 100644 --- a/variants/Generic_F446Rx/variant.h +++ b/variants/Generic_F446Rx/variant.h @@ -100,6 +100,19 @@ extern "C" { #define USER_BTN PC13 #endif +// SPI definitions +#define PIN_SPI_SS PA4 +#define PIN_SPI_SS1 PA4 +#define PIN_SPI_SS2 PB9 +#define PIN_SPI_SS3 PA15 +#define PIN_SPI_MOSI PA7 +#define PIN_SPI_MISO PA6 +#define PIN_SPI_SCK PA5 + +// I2C definitions +#define PIN_WIRE_SDA PB9 +#define PIN_WIRE_SCL PB8 + // Timer Definitions // Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin #define TIMER_TONE TIM6