/* * Copyright (C) 2018 Gunar Schorcht * Copyright (C) 2020 Google LLC * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level * directory for more details. */ /** * @defgroup boards_esp32_esp-ethernet-kit-v1_0 ESP32-Ethernet-Kit v1.0 * @ingroup boards_esp32 * @brief Support for for Espressif ESP32-Ethernet-Kit v1.0 * @author Gunar Schorcht * @author Erik Ekman ## Table of Contents 1. [Overview](#overview) 2. [Hardware](#hardware) 1. [MCU](#mcu) 2. [Board Configuration](#board_configuration) 3. [Board Pinout](#pinout) 3. [Flashing the Device](#flashing) 4. [On-Chip Debugging with the device](#debugging) 5. [Other Documentation Resources](#other-resources) ## Overview    [[TOC](#toc)] The Espressif [ESP32-Ethernet-Kit](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit-v1.0.html) is a development board that uses the ESP32-WROVER-B module. Most important features of the board are - 100 Mbps Ethernet via IP101G PHY - USB bridge with JTAG interface Furthermore, some GPIOs are broken out for extension. The USB bridge based on FDI FT2232HL provides a JTAG interface for OCD debugging through the USB interface. ## Hardware    [[TOC](#toc)] This section describes - the [MCU](#mcu), - the default [board configuration](#board_configuration), - the [board pinout](#pinout). ### MCU    [[TOC](#toc)] Most features of the board are provided by the ESP32 SoC. For detailed information about the ESP32, see section \ref esp32_mcu "MCU ESP32". ### Board Configuration    [[TOC](#toc)] ESP32-Ethernet-Kit v1.0 has the following on-board components - 100 Mbps Ethernet via IP101G PHY - USB bridge with JTAG interface For detailed information about the configuration of ESP32 boards, see section Peripherals in \ref esp32_riot. @note Only a few GPIOs are broken out and available for external hardware on ESP32-Ethernet-Kit boards. Which GPIOs are available as peripherals depends on used modules.
\anchor esp32_ethernet_kit_table_board_configuration Function | GPIOs | Remarks |Configuration :---------------|:-------|:--------|:---------------------------------- BTN0 | GPIO0 | not available if `esp_eth` is used | | ADC | GPIO34, GPIO35, GPIO36, GPIO39 | | \ref esp32_adc_channels "ADC Channels" DAC | - | | \ref esp32_dac_channels "DAC Channels" PWM_DEV(0) | GPIO4 | | \ref esp32_pwm_channels "PWM Channels" I2C_DEV(0):SDA | GPIO32 | | \ref esp32_i2c_interfaces "I2C Interfaces" I2C_DEV(0):SCL | GPIO33 | | \ref esp32_i2c_interfaces "I2C Interfaces" SPI_DEV(0):CLK | GPIO14 | HSPI is used | \ref esp32_spi_interfaces "SPI Interfaces" SPI_DEV(0):MISO | GPIO12 | HSPI is used | \ref esp32_spi_interfaces "SPI Interfaces" SPI_DEV(0):MOSI | GPIO13 | HSPI is used | \ref esp32_spi_interfaces "SPI Interfaces" SPI_DEV(0):CS0 | GPIO15 | HSPI is used | \ref esp32_spi_interfaces "SPI Interfaces" UART_DEV(0):TxD | GPIO1 | Console (configuration is fixed) | \ref esp32_uart_interfaces "UART interfaces" UART_DEV(0):RxD | GPIO3 | Console (configuration is fixed) | \ref esp32_uart_interfaces "UART interfaces"
@note - GPIO4 only works properly on the board if the function switch for GPIO4 (DIP SW 5) is OFF. - SPI_DEV(0) is not available if module `esp_jtag` is used. For the SPI_DEV(0) pins to work properly, the function switches (DIP switches) for the JTAG signals must be set to OFF. ### Board Pinout    [[TOC](#toc)] The board schematic can be found [here](https://dl.espressif.com/dl/schematics/SCH_ESP32-ETHERNET-KIT_A_V1.0_20190517.pdf). By default, only 3 bidirectional GPIO pins are unused: GPIO4, GPIO32, GPIO33. The suggested configuration is for PWM and I2C, but they can also be used for SPI or another serial port. By disabling the JTAG interface on the board, another 4 GPIOs can be made available (GPIO12, GPIO13, GPIO14, GPIO15). ## Flashing the Device    [[TOC](#toc)] Flashing RIOT is quite straight forward. The board has a Micro-USB connector with reset/boot/flash logic. Just connect the board using the programming port to your host computer and type: ``` make flash BOARD=esp32-ethernet-kit-v1_0 ... ``` The USB bridge is based on FDI FT2232HL and offers two USB interfaces: - the first interface is the JTAG interface for [On-Chip debugging](#debugging) - the second interface is the console interface, which is also used for flashing Therefore, you have to declare the USB interface in the make command. For example, if the ESP32-Ethernet-Kit is connected to the host computer through the USB interfaces `/dev/ttyUSB0` and `/dev/ttyUSB1`, the make command would be used as following: ``` make flash BOARD=esp32-ethernet-kit-v1_0 PORT=/dev/ttyUSB1 ... ``` For detailed information about ESP32 as well as configuring and compiling RIOT for ESP32 boards, see \ref esp32_riot. ## On-Chip Debugging with the Device    [[TOC](#toc)] Since the USB bridge based on FDI FT2232HL provides a JTAG interface for debugging through an USB interface, using ESP32-Ethernet-Kit is the easiest and most convenient way for On-Chip debugging. Please refer the [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/index.html) for details on how to setup and how to use ESP32-Ethernet-Kit and OpenOCD. To use the JTAG interface, the `esp_jtag' module must be used to disable the `SPI_DEV(0)` which normally uses the GPIOs for the JTAG signals. USEMODULE=esp_jtag make flash BOARD=esp32-ethernet-kit-v1_0 ... Furthermore the function switches (DIP switches) for the JTAG signals must be set to ON. ## Other Documentation Resources    [[TOC](#toc)] There is a comprehensive [Getting Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit-v1.0.html) for the ESP32-Ethernet-Kit with a lot information about hardware configuration. */