mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 21:14:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			309 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			309 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| menu "Example Ethernet Configuration"
 | |
| 
 | |
|     orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps"
 | |
| 
 | |
|     config EXAMPLE_USE_INTERNAL_ETHERNET
 | |
|         depends on SOC_EMAC_SUPPORTED
 | |
|         select ETH_USE_ESP32_EMAC
 | |
|         default y
 | |
|         bool "Internal EMAC"
 | |
|         help
 | |
|             Use internal Ethernet MAC controller.
 | |
| 
 | |
|     if EXAMPLE_USE_INTERNAL_ETHERNET
 | |
|         choice EXAMPLE_ETH_PHY_MODEL
 | |
|             prompt "Ethernet PHY Device"
 | |
|             default EXAMPLE_ETH_PHY_IP101
 | |
|             help
 | |
|                 Select the Ethernet PHY device to use in the example.
 | |
| 
 | |
|             config EXAMPLE_ETH_PHY_GENERIC
 | |
|                 bool "Generic 802.3 PHY"
 | |
|                 help
 | |
|                     Any Ethernet PHY chip compliant with IEEE 802.3 can be used. However, while
 | |
|                     basic functionality should always work, some specific features might be limited,
 | |
|                     even if the PHY meets IEEE 802.3 standard. A typical example is loopback
 | |
|                     functionality, where certain PHYs may require setting a specific speed mode to
 | |
|                     operate correctly.
 | |
| 
 | |
|             config EXAMPLE_ETH_PHY_IP101
 | |
|                 bool "IP101"
 | |
|                 help
 | |
|                     IP101 is a single port 10/100 MII/RMII/TP/Fiber Fast Ethernet Transceiver.
 | |
|                     Goto http://www.icplus.com.tw/pp-IP101G.html for more information about it.
 | |
| 
 | |
|             config EXAMPLE_ETH_PHY_RTL8201
 | |
|                 bool "RTL8201/SR8201"
 | |
|                 help
 | |
|                     RTL8201F/SR8201F is a single port 10/100Mb Ethernet Transceiver with auto MDIX.
 | |
|                     Goto http://www.corechip-sz.com/productsview.asp?id=22 for more information about it.
 | |
| 
 | |
|             config EXAMPLE_ETH_PHY_LAN87XX
 | |
|                 bool "LAN87xx"
 | |
|                 help
 | |
|                     Below chips are supported:
 | |
|                     LAN8710A is a small footprint MII/RMII 10/100 Ethernet Transceiver with HP Auto-MDIX and
 | |
|                         flexPWR® Technology.
 | |
|                     LAN8720A is a small footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX Support.
 | |
|                     LAN8740A/LAN8741A is a small footprint MII/RMII 10/100 Energy Efficient Ethernet Transceiver
 | |
|                         with HP Auto-MDIX and flexPWR® Technology.
 | |
|                     LAN8742A is a small footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX and
 | |
|                         flexPWR® Technology.
 | |
|                     Goto https://www.microchip.com for more information about them.
 | |
| 
 | |
|             config EXAMPLE_ETH_PHY_DP83848
 | |
|                 bool "DP83848"
 | |
|                 help
 | |
|                     DP83848 is a single port 10/100Mb/s Ethernet Physical Layer Transceiver.
 | |
|                     Goto http://www.ti.com/product/DP83848J for more information about it.
 | |
| 
 | |
|             config EXAMPLE_ETH_PHY_KSZ80XX
 | |
|                 bool "KSZ80xx"
 | |
|                 help
 | |
|                     With the KSZ80xx series, Microchip offers single-chip 10BASE-T/100BASE-TX
 | |
|                     Ethernet Physical Layer Transceivers (PHY).
 | |
|                     The following chips are supported: KSZ8001, KSZ8021, KSZ8031, KSZ8041,
 | |
|                         KSZ8051, KSZ8061, KSZ8081, KSZ8091
 | |
|                     Goto https://www.microchip.com for more information about them.
 | |
|         endchoice # EXAMPLE_ETH_PHY_MODEL
 | |
| 
 | |
|         config EXAMPLE_ETH_MDC_GPIO
 | |
|             int "SMI MDC GPIO number"
 | |
|             range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
 | |
|             default 23 if IDF_TARGET_ESP32
 | |
|             default 31 if IDF_TARGET_ESP32P4
 | |
|             help
 | |
|                 Set the GPIO number used by SMI MDC.
 | |
| 
 | |
|         config EXAMPLE_ETH_MDIO_GPIO
 | |
|             int "SMI MDIO GPIO number"
 | |
|             range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
 | |
|             default 18 if IDF_TARGET_ESP32
 | |
|             default 52 if IDF_TARGET_ESP32P4
 | |
|             help
 | |
|                 Set the GPIO number used by SMI MDIO.
 | |
| 
 | |
|         config EXAMPLE_ETH_PHY_RST_GPIO
 | |
|             int "PHY Reset GPIO number"
 | |
|             range -1 ENV_GPIO_OUT_RANGE_MAX
 | |
|             default 5 if IDF_TARGET_ESP32
 | |
|             default 51 if IDF_TARGET_ESP32P4
 | |
|             help
 | |
|                 Set the GPIO number used to reset PHY chip.
 | |
|                 Set to -1 to disable PHY chip hardware reset.
 | |
| 
 | |
|         config EXAMPLE_ETH_PHY_ADDR
 | |
|             int "PHY Address"
 | |
|             range -1 31
 | |
|             default 1
 | |
|             help
 | |
|                 Set PHY address according your board schematic.
 | |
|                 Set to -1 to driver find the PHY address automatically.
 | |
|     endif # EXAMPLE_USE_INTERNAL_ETHERNET
 | |
| 
 | |
|     config EXAMPLE_USE_SPI_ETHERNET
 | |
|         bool "SPI Ethernet"
 | |
|         default n
 | |
|         select ETH_USE_SPI_ETHERNET
 | |
|         help
 | |
|             Use external SPI-Ethernet module(s).
 | |
| 
 | |
|     if EXAMPLE_USE_SPI_ETHERNET
 | |
|         config EXAMPLE_SPI_ETHERNETS_NUM
 | |
|             int "Number of SPI Ethernet modules to use at a time"
 | |
|             range 1 2
 | |
|             default 1
 | |
|             help
 | |
|                 Set the number of SPI Ethernet modules you want to use at a time. Multiple SPI modules can be connected
 | |
|                 to one SPI interface and can be separately accessed based on state of associated Chip Select (CS).
 | |
| 
 | |
|         choice EXAMPLE_ETHERNET_TYPE_SPI
 | |
|             prompt "Ethernet SPI"
 | |
|             default EXAMPLE_USE_W5500
 | |
|             help
 | |
|                 Select which kind of Ethernet will be used in the example.
 | |
| 
 | |
|             config EXAMPLE_USE_DM9051
 | |
|                 bool "DM9051 Module"
 | |
|                 select ETH_SPI_ETHERNET_DM9051
 | |
|                 help
 | |
|                     Select external SPI-Ethernet module (DM9051).
 | |
| 
 | |
|             config EXAMPLE_USE_KSZ8851SNL
 | |
|                 bool "KSZ8851SNL Module"
 | |
|                 select ETH_SPI_ETHERNET_KSZ8851SNL
 | |
|                 help
 | |
|                     Select external SPI-Ethernet module (KSZ8851SNL).
 | |
| 
 | |
|             config EXAMPLE_USE_W5500
 | |
|                 bool "W5500 Module"
 | |
|                 select ETH_SPI_ETHERNET_W5500
 | |
|                 help
 | |
|                     Select external SPI-Ethernet module (W5500).
 | |
|         endchoice
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_HOST
 | |
|             int "SPI Host Number"
 | |
|             range 0 2
 | |
|             default 1
 | |
|             help
 | |
|                 Set the SPI host used to communicate with the SPI Ethernet Controller.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_SCLK_GPIO
 | |
|             int "SPI SCLK GPIO number"
 | |
|             range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
 | |
|             default 14 if IDF_TARGET_ESP32
 | |
|             default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
 | |
|             default 6 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C61
 | |
|             default 4 if IDF_TARGET_ESP32H2
 | |
|             default 33 if IDF_TARGET_ESP32P4
 | |
|             default 8 if IDF_TARGET_ESP32C5
 | |
|             help
 | |
|                 Set the GPIO number used by SPI SCLK.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_MOSI_GPIO
 | |
|             int "SPI MOSI GPIO number"
 | |
|             range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
 | |
|             default 13 if IDF_TARGET_ESP32
 | |
|             default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
 | |
|             default 7 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C61
 | |
|             default 5 if IDF_TARGET_ESP32H2
 | |
|             default 32 if IDF_TARGET_ESP32P4
 | |
|             default 10 if IDF_TARGET_ESP32C5
 | |
|             help
 | |
|                 Set the GPIO number used by SPI MOSI.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_MISO_GPIO
 | |
|             int "SPI MISO GPIO number"
 | |
|             range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
 | |
|             default 12 if IDF_TARGET_ESP32
 | |
|             default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
 | |
|             default 2 if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C61
 | |
|             default 0 if IDF_TARGET_ESP32H2
 | |
|             default 24 if IDF_TARGET_ESP32P4
 | |
|             default 9 if IDF_TARGET_ESP32C5
 | |
|             help
 | |
|                 Set the GPIO number used by SPI MISO.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_CLOCK_MHZ
 | |
|             int "SPI clock speed (MHz)"
 | |
|             range 5 80
 | |
|             default 16
 | |
|             help
 | |
|                 Set the clock speed (MHz) of SPI interface.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_CS0_GPIO
 | |
|             int "SPI CS0 GPIO number for SPI Ethernet module #1"
 | |
|             range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
 | |
|             default 15 if IDF_TARGET_ESP32
 | |
|             default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C2
 | |
|             default 3 if IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C61
 | |
|             default 1 if IDF_TARGET_ESP32H2
 | |
|             default 21 if IDF_TARGET_ESP32P4
 | |
|             help
 | |
|                 Set the GPIO number used by SPI CS0, i.e. Chip Select associated with the first SPI Eth module).
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_CS1_GPIO
 | |
|             depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
 | |
|             int "SPI CS1 GPIO number for SPI Ethernet module #2"
 | |
|             range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
 | |
|             default 32 if IDF_TARGET_ESP32
 | |
|             default 7 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
 | |
|             default 8 if IDF_TARGET_ESP32C3
 | |
|             default 21 if IDF_TARGET_ESP32C6
 | |
|             default 3 if IDF_TARGET_ESP32C2
 | |
|             default 11 if IDF_TARGET_ESP32H2
 | |
|             default 23 if IDF_TARGET_ESP32P4 || IDF_TARGET_ESP32C61
 | |
|             default 1 if IDF_TARGET_ESP32C5
 | |
|             help
 | |
|                 Set the GPIO number used by SPI CS1, i.e. Chip Select associated with the second SPI Eth module.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_INT0_GPIO
 | |
|             int "Interrupt GPIO number SPI Ethernet module #1"
 | |
|             range -1 ENV_GPIO_IN_RANGE_MAX
 | |
|             default 4 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
 | |
|             default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C5
 | |
|             default 10 if IDF_TARGET_ESP32H2
 | |
|             default 48 if IDF_TARGET_ESP32P4
 | |
|             default 0 if IDF_TARGET_ESP32C61
 | |
|             help
 | |
|                 Set the GPIO number used by the first SPI Ethernet module interrupt line.
 | |
|                 Set -1 to use SPI Ethernet module in polling mode.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_INT1_GPIO
 | |
|             depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
 | |
|             int "Interrupt GPIO number SPI Ethernet module #2"
 | |
|             range -1 ENV_GPIO_IN_RANGE_MAX
 | |
|             default 33 if IDF_TARGET_ESP32
 | |
|             default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C2
 | |
|             default 5 if IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C5
 | |
|             default 9 if IDF_TARGET_ESP32H2
 | |
|             default 47 if IDF_TARGET_ESP32P4
 | |
|             default 1 if IDF_TARGET_ESP32C61
 | |
|             help
 | |
|                 Set the GPIO number used by the second SPI Ethernet module interrupt line.
 | |
|                 Set -1 to use SPI Ethernet module in polling mode.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_POLLING0_MS_VAL
 | |
|             depends on EXAMPLE_ETH_SPI_INT0_GPIO < 0
 | |
|             int "Polling period in msec of SPI Ethernet Module #1"
 | |
|             default 10
 | |
|             help
 | |
|                 Set SPI Ethernet module polling period.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_POLLING1_MS_VAL
 | |
|             depends on EXAMPLE_SPI_ETHERNETS_NUM > 1 && EXAMPLE_ETH_SPI_INT1_GPIO < 0
 | |
|             int "Polling period in msec of SPI Ethernet Module #2"
 | |
|             default 10
 | |
|             help
 | |
|                 Set SPI Ethernet module polling period.
 | |
| 
 | |
|         # Hidden variable to ensure that polling period option is visible only when interrupt is set disabled and
 | |
|         # it is set to known value (0) when interrupt is enabled at the same time.
 | |
|         config EXAMPLE_ETH_SPI_POLLING0_MS
 | |
|             int
 | |
|             default EXAMPLE_ETH_SPI_POLLING0_MS_VAL if EXAMPLE_ETH_SPI_POLLING0_MS_VAL > 0
 | |
|             default 0
 | |
| 
 | |
|         # Hidden variable to ensure that polling period option is visible only when interrupt is set disabled and
 | |
|         # it is set to known value (0) when interrupt is enabled at the same time.
 | |
|         config EXAMPLE_ETH_SPI_POLLING1_MS
 | |
|             depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
 | |
|             int
 | |
|             default EXAMPLE_ETH_SPI_POLLING1_MS_VAL if EXAMPLE_ETH_SPI_POLLING1_MS_VAL > 0
 | |
|             default 0
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_PHY_RST0_GPIO
 | |
|             int "PHY Reset GPIO number of SPI Ethernet Module #1"
 | |
|             range -1 ENV_GPIO_OUT_RANGE_MAX
 | |
|             default -1
 | |
|             help
 | |
|                 Set the GPIO number used to reset PHY chip on the first SPI Ethernet module.
 | |
|                 Set to -1 to disable PHY chip hardware reset.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_PHY_RST1_GPIO
 | |
|             depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
 | |
|             int "PHY Reset GPIO number of SPI Ethernet Module #2"
 | |
|             range -1 ENV_GPIO_OUT_RANGE_MAX
 | |
|             default -1
 | |
|             help
 | |
|                 Set the GPIO number used to reset PHY chip on the second SPI Ethernet module.
 | |
|                 Set to -1 to disable PHY chip hardware reset.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_PHY_ADDR0
 | |
|             int "PHY Address of SPI Ethernet Module #1"
 | |
|             range 0 31
 | |
|             default 1
 | |
|             help
 | |
|                 Set the first SPI Ethernet module PHY address according your board schematic.
 | |
| 
 | |
|         config EXAMPLE_ETH_SPI_PHY_ADDR1
 | |
|             depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
 | |
|             int "PHY Address of SPI Ethernet Module #2"
 | |
|             range 0 31
 | |
|             default 1
 | |
|             help
 | |
|                 Set the second SPI Ethernet module PHY address according your board schematic.
 | |
|     endif # EXAMPLE_USE_SPI_ETHERNET
 | |
| endmenu
 | 
