How to handle overloaded pins for UART, EMAC, JTAG on ESP32?

marcelrobitaille
Posts: 1
Joined: Thu Apr 13, 2023 7:54 am

How to handle overloaded pins for UART, EMAC, JTAG on ESP32?

Postby marcelrobitaille » Thu Apr 13, 2023 8:15 am

Hello,

I am designing a PCB where I want to put an ESP32-PICO-D4. The board needs to have Ethernet, so I want to use the Ethernet MAC included in this microcontroller. However, I noticed that some of the pins are shared between the EMAC interface and the UART interface. From what I understand, UART is required for programming the microcontroller. I would also prefer to have access to JTAG debugging, but again, some of these pins are shared between EMAC and JTAG.

How should I wire these interfaces? If UART is only required for programming and EMAC is only required when the microcontroller is running, maybe it's fine? Do I have to somehow disable my Ethernet PHY when programming? Is there any way I can use JTAG and EMAC at the same time?

U0TXD conflicts with EMAC_RXD2. EMAC_TXD3, EMAC_RX_ER, EMAC_RXD2, and EMAC_RXD3 conflict with JTAG pins MTDI, MTCK, MTMS, and MTDO, respectively.

I tried looking at the Espressif Ethernet Kit schematics. They seem to get around this by only using RMII, which has fewer pins than MII. If the chip is advertised as having full MII, then there must be a way to wire this, right?

I'm new to ESP, so I apologize if these are stupid questions. I also surprisingly could not find anyone else asking about this; I'm sorry if I missed something.

Thank you

Who is online

Users browsing this forum: No registered users and 143 guests