# Dummy PHY (EMAC to EMAC) The `Dummy PHY` component enables you a direct **EMAC to EMAC** communication between two Ethernet capable devices without usage of external PHY transceiver. The design idea is to provide EMAC to EMAC connection between two devices without any modification to ESP-IDF Ethernet driver. Note that usage of the `Dummy PHY` component does not conform with the RevMII standard! As such, it does not provide any management interface and so the speed/duplex mode needs to be statically configured to **the same mode in both devices**. Default configuration is 100Mbps/full duplex mode. If you need to change it, use `esp_eth_ioctl()` function with `ETH_CMD_S_SPEED` or `ETH_CMD_S_DUPLEX_MODE` command. ## API ### Steps to use the component in an example code 1. Add this component to your project using `idf.py add-dependency` command. 2. Include `esp_eth_phy_dummy.h` 3. Create a dummy `phy` driver instance by calling `esp_eth_phy_new_dummy`and initialize Ethernet as you are used to. The only difference is to set SMI GPIOs to `-1` since the management interface is not utilized. ```c // Init common MAC and PHY configs to default eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG(); eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG(); // Update PHY config based on board specific configuration phy_config.reset_gpio_num = -1; // no HW reset // Init vendor specific MAC config to default eth_esp32_emac_config_t esp32_emac_config = ETH_ESP32_EMAC_DEFAULT_CONFIG(); // Update vendor specific MAC config based on board configuration // No SMI, speed/duplex must be statically configured the same in both devices esp32_emac_config.smi_mdc_gpio_num = -1; esp32_emac_config.smi_mdio_gpio_num = -1; // Create new ESP32 Ethernet MAC instance esp_eth_mac_t *mac = esp_eth_mac_new_esp32(&esp32_emac_config, &mac_config); // Create dummy PHY instance esp_eth_phy_t *phy = esp_eth_phy_new_dummy(&phy_config); ``` ## Examples Please refer to [Simple Example](./examples/simple/README.md) for more information.
idf.py add-dependency "espressif/eth_dummy_phy^0.5.0"