ESP32-P4: Which GPIOs to use for RMII?
In the ESP32-P4, you can’t use any GPIOs for RMII. You need to use specific pins for the RMII interface. For many of the RMII functions, there are multiple functions.
There are three groups of RMII pin mappings, and each signal can be assigned independently to any of the groups. This means you can mix and match signals from different groups as needed - but for every signal, you must select one of the groups and use the corresponding pins
RMII pin mapping by group 🔧
| RMII function | RMII Group 1 | RMII Group 2 | RMII Group 3 |
|---|---|---|---|
| RMII_CRSDV | GPIO28 | GPIO45 | GPIO51 |
| RMII_RXD0 | GPIO29 | GPIO46 | GPIO52 |
| RMII_RXD1 | GPIO30 | GPIO47 | GPIO53 |
| RMII_RXER | GPIO31 | GPIO48 | GPIO54 |
| RMII_CLK | GPIO32 | GPIO44 | GPIO50 |
| RMII_TXEN | GPIO33 | GPIO40 | GPIO49 |
| RMII_TXD0 | GPIO34 | GPIO41 | - |
| RMII_TXD1 | GPIO35 | GPIO42 | - |
| RMII_TXER | GPIO36 | GPIO43 | - |
Note: Group 3 provides partial routing and excludes transmit signals except
RMII_TXEN; dashes indicate no mapping for that group.
Source: ESP32-P4 Datasheet, ESP32-P4 hardware design guidelines
Check out similar posts by category:
ESP32-P4, Ethernet, Electronics
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow