docs(esp_eth): added warning to not use ESP32 as ETH CLK source with WiFi

This commit is contained in:
Ondrej Kosta 2024-08-09 15:53:08 +02:00
parent 997512ace2
commit 50704ffa70
3 changed files with 14 additions and 11 deletions

View File

@ -62,13 +62,11 @@ menu "Ethernet"
bool "Output RMII clock from GPIO0 (Experimental!)" bool "Output RMII clock from GPIO0 (Experimental!)"
default n default n
help help
GPIO0 can be set to output a pre-divided PLL clock (test only!). GPIO0 can be set to output a pre-divided PLL clock. Enabling this option will configure
Enabling this option will configure GPIO0 to output a 50MHz clock. GPIO0 to output a 50MHz clock. In fact this clock doesn't have directly relationship with
In fact this clock doesn't have directly relationship with EMAC peripheral. EMAC peripheral. Sometimes this clock may not work well with your PHY chip.
Sometimes this clock won't work well with your PHY chip. You might need to WARNING: If you want the Ethernet to work with WiFi, dont select ESP32 as RMII CLK output
add some extra devices after GPIO0 (e.g. inverter). as it would result in clock instability!
Note that outputting RMII clock on GPIO0 is an experimental practice.
If you want the Ethernet to work with WiFi, don't select GPIO0 output mode for stability.
if !ETH_RMII_CLK_OUTPUT_GPIO0 if !ETH_RMII_CLK_OUTPUT_GPIO0
config ETH_RMII_CLK_OUT_GPIO config ETH_RMII_CLK_OUT_GPIO
@ -78,6 +76,8 @@ menu "Ethernet"
default 17 default 17
help help
Set the GPIO number to output RMII Clock. Set the GPIO number to output RMII Clock.
WARNING: If you want the Ethernet to work with WiFi, dont select ESP32 as RMII CLK output
as it would result in clock instability!
endif # !ETH_RMII_CLK_OUTPUT_GPIO0 endif # !ETH_RMII_CLK_OUTPUT_GPIO0
endif # ETH_RMII_CLK_OUTPUT endif # ETH_RMII_CLK_OUTPUT

View File

@ -51,6 +51,8 @@ typedef enum {
/** /**
* @brief RMII Clock GPIO number Options for ESP32 * @brief RMII Clock GPIO number Options for ESP32
* *
* @warning If you want the Ethernet to work with WiFi, dont select ESP32 as RMII CLK output as it would result in clock instability.
*
*/ */
typedef enum { typedef enum {
/** /**
@ -64,10 +66,8 @@ typedef enum {
/** /**
* @brief Output RMII Clock from internal APLL Clock available at GPIO0 * @brief Output RMII Clock from internal APLL Clock available at GPIO0
* *
* @note GPIO0 can be set to output a pre-divided PLL clock (test only!). Enabling this option will configure GPIO0 to output a 50MHz clock. * @note GPIO0 can be set to output a pre-divided PLL clock. Enabling this option will configure GPIO0 to output a 50MHz clock.
* In fact this clock doesnt have directly relationship with EMAC peripheral. Sometimes this clock wont work well with your PHY chip. * In fact this clock doesnt have directly relationship with EMAC peripheral. Sometimes this clock may not work well with your PHY chip.
* You might need to add some extra devices after GPIO0 (e.g. inverter). Note that outputting RMII clock on GPIO0 is an experimental practice.
* If you want the Ethernet to work with WiFi, dont select GPIO0 output mode for stability.
* *
*/ */
EMAC_APPL_CLK_OUT_GPIO = 0, EMAC_APPL_CLK_OUT_GPIO = 0,

View File

@ -165,6 +165,9 @@ The Ethernet driver is composed of two parts: MAC and PHY.
* Force the PHY device to reset status (as the case **a** in the picture). **This could fail for some PHY device** (i.e., it still outputs signals to GPIO0 even in reset state). * Force the PHY device to reset status (as the case **a** in the picture). **This could fail for some PHY device** (i.e., it still outputs signals to GPIO0 even in reset state).
.. warning::
If you want the **Ethernet to work with WiFi**, dont select ESP32 as source of ``REF_CLK`` as it would result in ``REF_CLK`` instability. Either disable WiFi or use a PHY or an external oscillator as the ``REF_CLK`` source.
.. only:: not esp32 .. only:: not esp32
.. note:: .. note::