Streamline Peripheral Pin Mapping
General notes
field means that all MCUs can be mapped identically.
field means it is missing the peripheral.
field means that pins are not same across all MCUs.
field is I2Sx_MCK only exist on one pin.
RP2350
Trying to avoid 12 - 19 as these can be used for HSTX but they should be wired to backplane.
SWD
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 | Remarks |
|---|---|---|---|---|---|---|---|---|---|
| All | SWDIO | PA13 | PA13 | PA13 | PA13 | PA13 | PA13 | SWDIO | RP Pico Dedicated pin |
| SWCLK | PA14 | PA14 | PA14 | PA14 | PA14 | PA14 | SWCLK | ||
| SWO | PB3 | PB3 | PB3 | N/A | PB3 | PB3 | TBD | N/A |
UARTs
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 | Remarks |
|---|---|---|---|---|---|---|---|---|---|
| USART1 | TX | PA9 | PA9 | PA9 | PA9 | PA9 | PA9 | GPIO0 | Connect default RP2350 UART0 |
| RX | PA10 | PA10 | PA10 | PA10 | PA10 | PA10 | GPIO1 | ||
| USART1A | TX | PB6 | PB6 | PB6 | PB6 | PB6 | PB6 | ||
| RX | PB7 | PB7 | PB7 | PB7 | PB7 | PB7 | |||
| USART2 | TX | PA2 | PA2 | PA2 | PA2 | PA2 | PA2 | GPIO44 | RP2350 UART1 |
| RX | PA3 | PA3 | PA3 | PA3 | PA3 | PA3 | GPIO45 | ||
| USART2A | TX | PD5 | PD5 | PD5 | PD5 | PD5 | PD5 | GPIO4 | RP2350 UART1 |
| RX | PD6 | PD6 | PD6 | PD6 | PD6 | PD6 | GPIO5 | ||
| USART3 | TX | PB10 | PB10 | PB10 | N/A | PB10 | PB10 | ||
| RX | PB11 | PB11 | PB11 | N/A | PB11 | PB11 | |||
| USART3A1 | TX | PD8 | PD8 | PD8 | N/A | PD8 | PD8 | GPIO6 | |
| RX | PD9 | PD9 | PD9 | N/A | PD9 | PD9 | GPIO7 | ||
| USART3A2 | TX | PC10 | PC10 | PC10 | N/A | PC10 | PC10 | N/A | |
| RX | PC11 | PC11 | PC11 | N/A | PC11 | PC11 | N/A | ||
| UART4 | TX | PA0 | PA0 | PA0 | N/A | PA0 | PA0 | ||
| RX | PA1 | PA1 | PA1 | N/A | PA1 | PA1 | |||
| UART4A | TX | PC10 | PC10 | PC10 | N/A | PC10 | PC10 | ||
| RX | PC11 | PC11 | PC11 | N/A | PC11 | PC11 | |||
| UART5 | TX | PC12 | PC12 | PC12 | N/A | PC12 | PC12 | TBD | |
| RX | PD2 | PD2 | PD2 | N/A | PD2 | PD2 | TBD | ||
| USART6 | TX | PC6 | N/A | PC6 | N/A | N/A | PC6 | TBD | |
| RX | PC7 | N/A | PC7 | N/A | N/A | PC7 | TBD |
CAN
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 | Remarks |
|---|---|---|---|---|---|---|---|---|---|
| CAN1 | TX | PA12 | PA12 | PA12 | N/A | PA12 | PA12 | TBD | Conflict with USB |
| RX | PA11 | PA11 | PA11 | N/A | PA11 | PA11 | TBD | ||
| CAN1A | TX | PD1 | PD1 | PD1 | N/A | PD1 | PD1 | TBD | |
| RX | PD0 | PD0 | PD0 | N/A | PD0 | PD0 | TBD | ||
| CAN2 | TX | PB13 | N/A | PB13 | N/A | N/A | PB13 | TBD | |
| RX | PB12 | N/A | PB13 | N/A | N/A | PB13 | TBD | ||
| CAN2A | TX | PB6 | N/A | PB6 | N/A | N/A | PB6 | TBD | |
| RX | PB5 | N/A | PB6 | N/A | N/A | PB6 | TBD |
USB
STM32F407=HS/FS host/device/otg
STM32L475=FS host/device/otg no crystal
STM32H562=FS PD
STM32C071=FS no crystal
STM32C551=FS host/device
STM32H723=HS/FS host/device/otg
RP2354=FS host/device
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 | Remarks |
|---|---|---|---|---|---|---|---|---|---|
| All | DM | PA11 | PA11 | PA11 | PA11 | PA11 | PA11 | DM | RP2350 dedicated pins |
| DP | PA12 | PA12 | PA12 | PA12 | PA12 | PA12 | DP |
I2C
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 | Remarks |
|---|---|---|---|---|---|---|---|---|---|
| I2C1 | SCL | PB6 | PB6 | PB6 | PB6 | PB6 | PB6 | GPIO9 | RP2350 ICL0 |
| SDA | PB7 | PB7 | PB7 | PB7 | PB7 | PB7 | GPIO8 | ||
| I2C1A | SCL | PB8 | PB8 | PB8 | PB8 | PB8 | PB8 | TBD | |
| SDA | PB9 | PB9 | PB9 | PB9 | PB9 | PB9 | TBD | ||
| I2C2 | SCL | PB10 | PB10 | PB10 | PB10 | PB10 | PB10 | GPIO3 | RP2350 I2C1 |
| SDA | PB11 | PB11 | PB11 | PB11 | PB11 | PB11 | GPIO2 | ||
| I2C3 | SCL | PA8 | PC0 | PA8 | N/A | N/A | PA8 | TBD | |
| SDA | PC9 | PC1 | PC9 | N/A | N/A | PC9 | TBD |
SPI
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 | Remarks |
|---|---|---|---|---|---|---|---|---|---|
| SPI1 | SCK | PA5 | PA5 | PA5 | PA5 | PA5 | PA5 | GPIO42 | RP2350 SPI1 |
| MISO | PA6 | PA6 | PA6 | PA6 | PA6 | PA6 | GPIO40 | ||
| MOSI | PA7 | PA7 | PA7 | PA7 | PA7 | PA7 | GPIO43 | ||
| SPI1A | SCK | PB3 | PB3 | PB3 | PB3 | PB3 | PB3 | PB3 conflicts with SWO | |
| MISO | PB4 | PB4 | PB4 | PB4 | PB4 | PB4 | |||
| MOSI | PB5 | PB5 | PB5 | PB5 | PB5 | PB5 | |||
| SPI2 | SCK | PB10 | PB10 | PB10 | PB10 | PB10 | PB10 | ||
| MISO | PC2 | PC2 | PC2 | PC2 | PC2 | PC2 | |||
| MOSI | PC3 | PC3 | PC3 | PC3 | PC3 | PC3 | |||
| SPI2A | SCK | PB13 | PB13 | PB13 | PB13 | PB13 | PB13 | GPIO22 | RP2350 SPI0 |
| MISO | PB14 | PB14 | PB14 | PB14 | PB14 | PB14 | GPIO20 | ||
| MOSI | PB15 | PB15 | PB15 | PB15 | PB15 | PB15 | GPIO23 | ||
| SPI3 | SCK | PC10 | PC10 | PC10 | N/A | PC10 | PC10 | ||
| MISO | PC11 | PC11 | PC11 | N/A | PC11 | PC11 | |||
| MOSI | PC12 | PC12 | PC12 | N/A | PC12 | PC12 | |||
| SPI3A | SCK | PB3 | PB3 | PB3 | N/A | PB3 | PB3 | Conflicts with SWO | |
| MISO | PB4 | PB4 | PB4 | N/A | PB4 | PB4 | |||
| MOSI | PB5 | PB5 | PB5 | N/A | PB5 | PB5 |
SDIO
STM32F407: SDIO
STM32L475: SDMMC
STM32H562: SDMMC
STM32C071: N/A
STM32C551: N/A
STM32H723: SDMMC
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 |
|---|---|---|---|---|---|---|---|---|
| Only | CMD | PD2 | PD2 | PD2 | N/A | N/A | PD2 | GPIO30 |
| CK | PC12 | PC12 | PC12 | N/A | N/A | PC12 | GPIO31 | |
| D0 | PC8 | PC8 | PC8 | N/A | N/A | PC8 | GPIO35 | |
| D1 | PC9 | PC9 | PC9 | N/A | N/A | PC9 | GPIO34 | |
| D2 | PC10 | PC10 | PC10 | N/A | N/A | PC10 | GPIO33 | |
| D3 | PC11 | PC11 | PC11 | N/A | N/A | PC11 | GPIO32 |
Ethernet (RMII)
STM32F407:
STM32L475:
STM32H562:
STM32C071:
STM32C551:
STM32H723:
RP2354: With PIO, https://github.com/rscott2049/pico-rmii-ethernet_nce
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 |
|---|---|---|---|---|---|---|---|---|
| Only | MDIO | PA2 | N/A | PA2 | N/A | N/A | PA2 | GPIO44 |
| REF_CLK | PA1 | N/A | PA1 | N/A | N/A | PA1 | GPIO41 | |
| MDC | PC1 | N/A | PC1 | N/A | N/A | PC1 | GPIO47 | |
| TX_EN | PB11 | N/A | PB11 | N/A | N/A | PB11 | GPIO2 | |
| TXD0 | PB12 | N/A | PB12 | N/A | N/A | PB12 | GPIO24 | |
| TXD1 | PB13 | N/A | PB15 | N/A | N/A | PB13 | GPIO22 | |
| RXD0 | PC4 | N/A | PC4 | N/A | N/A | PC4 | GPIO10 | |
| RXD1 | PC5 | N/A | PC5 | N/A | N/A | PC5 | GPIO11 | |
| CRS_DV | PA7 | N/A | PA7 | N/A | N/A | PA7 | GPIO43 |
ULPI
STM32F407: ULPI
STM32L475: N/A
STM32H562: N/A
STM32C071: N/A
STM32C551: N/A
STM32H723: ULPI
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 |
|---|---|---|---|---|---|---|---|---|
| Only | STP | PC0 | N/A | N/A | N/A | N/A | PC0 | N/A |
| DIR | PC2 | N/A | N/A | N/A | N/A | PC2 | N/A | |
| NXT | PC3 | N/A | N/A | N/A | N/A | PC3 | N/A | |
| CK | PA5 | N/A | N/A | N/A | N/A | PA5 | N/A | |
| D0 | PA3 | N/A | N/A | N/A | N/A | PA3 | N/A | |
| D1 | PB0 | N/A | N/A | N/A | N/A | PB0 | N/A | |
| D2 | PB1 | N/A | N/A | N/A | N/A | PB1 | N/A | |
| D3 | PB10 | N/A | N/A | N/A | N/A | PB10 | N/A | |
| D4 | PB11 | N/A | N/A | N/A | N/A | PB11 | N/A | |
| D5 | PB12 | N/A | N/A | N/A | N/A | PB12 | N/A | |
| D6 | PB13 | N/A | N/A | N/A | N/A | PB13 | N/A | |
| D7 | PB5 | N/A | N/A | N/A | N/A | PB5 | N/A |
I2S
STM32F407: I2S2, I2S3
STM32L475: SAI1, SAI2 (serial audio interface)
STM32H562: I2S1, I2S2, I2S3
STM32C071: I2S1 (half duplex only)
STM32C551: I2S1, I2S2, I2S3
STM32H723: I2S1, I2S2, I2S3
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 |
|---|---|---|---|---|---|---|---|---|
| I2S1 | MCK | N/A | PB8 | PC4 | PA6, PA11, PD5, PB4, PB6 | PC4 | PC4 | GPIO10 |
| SDI | N/A | PB5 | PA6 | PA2,PA7,PA12,PB5,PD6,PB6†† | PA6 | PA6 | GPIO40 | |
| SDO | N/A | PC3 | PA7 | PA7 | PA7 | PA7 | GPIO43 | |
| CK | N/A | PB10 | PA5 | PA5 | PA5 | PA5 | GPIO42 | |
| WS | N/A | PB9 | PA4 | PA1,PA5,PD8,PB3,PB6 | PA4 | PA4 | GPIO27 | |
| I2S2 | MCK | PC6 | PB14 | PC6 | N/A | PC6 | PC6 | GPIO26 |
| SDI | PC2 | PC12 | PC2 | N/A | PC2 | PC2 | GPIO25 | |
| SDO | PC3 | PD11 | PC3 | N/A | PC3 | PC3 | GPIO21 | |
| CK | PB10 | PD10 | PB10 | N/A | PB10 | PB10 | GPIO3 | |
| WS | PB12 | PB12 | PB12 | N/A | PB12 | PB12 | GPIO24 | |
| I2S2a | MCK | N/A | PD9 | N/A | N/A | N/A | N/A | |
| SDI | PB14 | N/A | PB14 | N/A | PB14 | PB14 | GPIO20 | |
| SDO | PB15 | PB15 | PB15 | N/A | PB15 | PB15 | GPIO23 | |
| CK | PB13 | PB13 | PB13 | N/A | PB13 | PB13 | GPIO22 | |
| WS | PB9 | PB9 | PB9 | N/A | PB9 | PB9 | GPIO28 | |
| I2S3 | MCK | PC7 | N/A | PC7 | N/A | PC7 | PC7 | |
| SDI | PC11 | N/A | PC11 | N/A | PC11 | PC11 | ||
| SDO | PC12 | N/A | PC12 | N/A | PC12 | PC12 | ||
| CK | PC10 | N/A | PC10 | N/A | PC10 | PC10 | ||
| WS | PA4 | N/A | PA4 | N/A | PA4 | PA4 | ||
| I2S3a | MCK | N/A | N/A | N/A | N/A | N/A | N/A | |
| SDI | PB4 | N/A | PB4 | N/A | PB4 | PB4 | ||
| SDO | PB5 | N/A | PB5 | N/A | PB5 | PB5 | ||
| CK | PB3 | N/A | PB3 | N/A | PB3 | PB3 | ||
| WS | PA15 | N/A | PA15 | N/A | PA15,PB8,PE4 ††† | PA15 |
Notes;
†† The STM32C071 has only one half-duplex I2S, and the _SD pin can either be in INPUT or OUTPUT mode. Many pins, how do we map?
††† I2S3_WS is ONLY mapped on PA15 (used for SWDIO), except on STM32C551 which ALSO has it on PB8.
DACs
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 |
|---|---|---|---|---|---|---|---|---|
| DAC1 | OUT1 | PA4 | PA4 | PA4 | N/A | PA4 | PA4 | N/A |
| OUT2 | PA5 | PA5 | PA5 | N/A | N/A | PA5 | N/A |
ADCs
ADCs are so numerous that comparative tables are difficult to establish.
STM32F407; 12 channels common for ADC1, ADC2 and ADC3. 4 channels for ADC1 and ADC2
STM32F407; 4 channels common for ADC1, ADC2 and ADC3. 12 channels for ADC1 and ADC2
STM32H562; All 16 channels common for ADC1 and ADC2, can also be configured as 8 differential pair inputs.
STM32C071; Only ADC1, 19 external channels.
STM32C551; 7 channels common for ADC1 and ADC2.
STM32H723; ADC1 and ADC2 are 16 bits, ADC3 is 12 bits. All 3 can also be configured as 8 differential pair inputs.
RP2354; One ADC, 12 bits, 0.5 Msps
| Variant | PIN | STM32F407 | STM32L475 | STM32H562 | STM32C071 | STM32C551 | STM32H723 | RP2354 |
|---|---|---|---|---|---|---|---|---|
| ADC1 | Pins | PA0-PA7,PC0-PC5,PB0-PB1 | PA0-PA7,PC0-PC5,PB0-PB1 | PA0-PA7,PC0-PC5,PB0-PB1 | PA0-PA8,PA13-PA14,PC0-PC5,PB0-PB2,PB10-PB12 | PA0-PA7,PC0-PC3 | PA0-PA7,PC0-PC2,PC4-PC5,PB0-PB1 | GPIO40-GPIO47 |
| Channels | 16 | 16 | 16 | 19 | 12 | 15 | 8 | |
| Msps | 2.4 | 5 | 5 | 2.5 | 2.25 | 3.6 | 0.5 | |
| ADC2 | Pins | PA0-PA7,PC0-PC5,PB0-PB1 | PA0-PA7,PC0-PC5,PB0-PB1 | PA0-PA7,PC0-PC5,PB0-PB1 | N/A | PA0-PA3,PC1-PC5,PB0-PB2 | PA2-PA7,PC0-PC2,PC4-PC5,PB0-PB1 | N/A |
| Channels | 16 | 16 | 16 | N/A | 12 | 13 | N/A | |
| Msps | 2.4 | 5 | 5 | N/A | 2.25 | 3.6 | N/A | |
| ADC3 | Pins | PA0-PA7,PC0-PC3 | PC0-PC3 | N/A | N/A | N/A | PC0-PC3 | N/A |
| Channels | 6 | 4 | N/A | N/A | N/A | 4 (12 bits) | N/A | |
| Msps | 2.4 | 5 | N/A | N/A | N/A | 5 | N/A |