diff --git a/boards/esp32-ethernet-kit-v1_0/Makefile.include b/boards/esp32-ethernet-kit-v1_0/Makefile.include index 1491356c36..616000ecbb 100644 --- a/boards/esp32-ethernet-kit-v1_0/Makefile.include +++ b/boards/esp32-ethernet-kit-v1_0/Makefile.include @@ -1,5 +1,3 @@ -PSEUDOMODULES += esp32_ethernet_kit -PSEUDOMODULES += esp32_ethernet_kit_v1_0 # configure the serial interface PORT_LINUX ?= /dev/ttyUSB1 diff --git a/boards/esp32-ethernet-kit-v1_0/doc.txt b/boards/esp32-ethernet-kit-v1_0/doc.txt index ec17a3ccf2..cdb93978ba 100644 --- a/boards/esp32-ethernet-kit-v1_0/doc.txt +++ b/boards/esp32-ethernet-kit-v1_0/doc.txt @@ -8,8 +8,8 @@ */ /** - * @defgroup boards_esp32_esp-ethernet-kit-v1_0 ESP32-Ethernet-Kit v1.0 - * @ingroup boards_esp32 + * @defgroup boards_esp32_esp-ethernet-kit-v1_0 v1.0 Board + * @ingroup boards_esp32_esp-ethernet-kit * @brief Support for for Espressif ESP32-Ethernet-Kit v1.0 * @author Gunar Schorcht * @author Erik Ekman @@ -18,12 +18,9 @@ 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) + 1. [Board Configuration](#board_configuration) + 2. [Board Pinout](#pinout) +3. [Other Documentation Resources](#other-resources) ## Overview    [[TOC](#toc)] @@ -33,20 +30,15 @@ The Espressif [ESP32-Ethernet-Kit](https://docs.espressif.com/projects/esp-idf/e - 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. +For flashing and debugging the board, see \ref boards_esp32_esp-ethernet-kit common board documentation. ## 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 @@ -61,7 +53,7 @@ section Peripherals in \ref esp32_riot. 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 +\anchor esp32_ethernet_kit_v1_0_table_board_configuration Function | GPIOs | Remarks |Configuration :---------------|:-------|:--------|:---------------------------------- BTN0 | GPIO0 | not available if `esp_eth` is used | | @@ -90,33 +82,6 @@ By default, only 3 bidirectional GPIO pins are unused: GPIO4, GPIO32, GPIO33. Th 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. diff --git a/boards/esp32-ethernet-kit-v1_0/doc_common.txt b/boards/esp32-ethernet-kit-v1_0/doc_common.txt new file mode 100644 index 0000000000..c6833fef5e --- /dev/null +++ b/boards/esp32-ethernet-kit-v1_0/doc_common.txt @@ -0,0 +1,92 @@ +/* + * 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 ESP32-Ethernet-Kit + * @ingroup boards_esp32 + * @brief Support for for Espressif ESP32-Ethernet-Kit + * @author Gunar Schorcht + * @author Erik Ekman + +## Table of Contents + +1. [Overview](#overview) +2. [Hardware](#hardware) + 1. [MCU](#mcu) + 2. [Board Configuration](#common_board_configuration) +3. [Flashing the Device](#flashing) +4. [On-Chip Debugging with the device](#debugging) + +## 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.html) is a development board that uses a ESP32-WROVER module (-B or -E depending on version). 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. + +There are different revisions of the board: +- \ref boards_esp32_esp-ethernet-kit-v1_0 +- \ref boards_esp32_esp-ethernet-kit-v1_1 + +## Hardware    [[TOC](#toc)] + +This section describes + +- the [MCU](#mcu), +- the default [board configuration](#common_board_configuration). + +### 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 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. + +The board is available in different versions. See the per-version file for details. + +## 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_X ... +``` +where `X` is the minor revision number of the board. + +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, it might be necessary 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_X PORT=/dev/ttyUSB1 ... +``` +Please note that `/dev/ttyUSB1` is used as the console port by default. Therefore the variable `PORT` only needs to be defined if the console port is another port. + +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_X ... +Furthermore the function switches (DIP switches) for the JTAG signals must be set to ON. + + */ diff --git a/boards/esp32-ethernet-kit-v1_0/include/board.h b/boards/esp32-ethernet-kit-v1_0/include/board.h index 980865e8c7..42d16b78d1 100644 --- a/boards/esp32-ethernet-kit-v1_0/include/board.h +++ b/boards/esp32-ethernet-kit-v1_0/include/board.h @@ -8,7 +8,7 @@ */ /** - * @ingroup boards_esp32_esp-ethernet-kit-v1_0 + * @ingroup boards_esp32_esp-ethernet-kit * @file * @{ */ diff --git a/boards/esp32-ethernet-kit-v1_0/include/gpio_params.h b/boards/esp32-ethernet-kit-v1_0/include/gpio_params.h index 865b9071a2..8fc4f851ce 100644 --- a/boards/esp32-ethernet-kit-v1_0/include/gpio_params.h +++ b/boards/esp32-ethernet-kit-v1_0/include/gpio_params.h @@ -11,7 +11,7 @@ #define GPIO_PARAMS_H /** - * @ingroup boards_esp32_esp-ethernet-kit-v1_0 + * @ingroup boards_esp32_esp-ethernet-kit * @brief Board specific configuration of direct mapped GPIOs * @file * @author Gunar Schorcht diff --git a/boards/esp32-ethernet-kit-v1_0/include/periph_conf.h b/boards/esp32-ethernet-kit-v1_0/include/periph_conf.h index d729eccdb9..2e7b0e6aee 100644 --- a/boards/esp32-ethernet-kit-v1_0/include/periph_conf.h +++ b/boards/esp32-ethernet-kit-v1_0/include/periph_conf.h @@ -8,7 +8,7 @@ */ /** - * @ingroup boards_esp32_esp-ethernet-kit-v1_0 + * @ingroup boards_esp32_esp-ethernet-kit * @brief Peripheral MCU configuration for Espressif ESP32-Ethernet-Kit * @file * @author Gunar Schorcht @@ -80,7 +80,7 @@ * @{ */ #ifndef PWM0_GPIOS -#ifdef MODULE_ESP32_ETHERNET_KIT_V1_0 +#ifdef BOARD_ESP32_ETHERNET_KIT_V1_0 #define PWM0_GPIOS { GPIO4 } #else #define PWM0_GPIOS { GPIO2, GPIO4 } diff --git a/boards/esp32-ethernet-kit-v1_1/Kconfig b/boards/esp32-ethernet-kit-v1_1/Kconfig new file mode 100644 index 0000000000..a758d6ee0b --- /dev/null +++ b/boards/esp32-ethernet-kit-v1_1/Kconfig @@ -0,0 +1,22 @@ +# Copyright (c) 2020 HAW Hamburg +# 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. + +config BOARD + default "esp32-ethernet-kit-v1_1" if BOARD_ESP32_ETHERNET_KIT_V1_1 + +config BOARD_ESP32_ETHERNET_KIT_V1_1 + bool + default y + select BOARD_COMMON_ESP32 + select CPU_MODEL_ESP32_WROVER_B + select HAS_ESP_SPI_RAM + select HAS_PERIPH_ADC + select HAS_PERIPH_ETH + select HAS_PERIPH_I2C + select HAS_PERIPH_PWM + +source "$(RIOTBOARD)/common/esp32/Kconfig" diff --git a/boards/esp32-ethernet-kit-v1_1/Makefile b/boards/esp32-ethernet-kit-v1_1/Makefile new file mode 100644 index 0000000000..6540e80666 --- /dev/null +++ b/boards/esp32-ethernet-kit-v1_1/Makefile @@ -0,0 +1,2 @@ +DIRS = $(RIOTBOARD)/esp32-ethernet-kit-v1_0 +include $(RIOTBASE)/Makefile.base diff --git a/boards/esp32-ethernet-kit-v1_1/Makefile.dep b/boards/esp32-ethernet-kit-v1_1/Makefile.dep new file mode 100644 index 0000000000..a9e4aaaf8a --- /dev/null +++ b/boards/esp32-ethernet-kit-v1_1/Makefile.dep @@ -0,0 +1 @@ +include $(RIOTBOARD)/esp32-ethernet-kit-v1_0/Makefile.dep diff --git a/boards/esp32-ethernet-kit-v1_1/Makefile.features b/boards/esp32-ethernet-kit-v1_1/Makefile.features new file mode 100644 index 0000000000..bffae42372 --- /dev/null +++ b/boards/esp32-ethernet-kit-v1_1/Makefile.features @@ -0,0 +1 @@ +include $(RIOTBOARD)/esp32-ethernet-kit-v1_0/Makefile.features diff --git a/boards/esp32-ethernet-kit-v1_1/Makefile.include b/boards/esp32-ethernet-kit-v1_1/Makefile.include new file mode 100644 index 0000000000..9410f3e3ad --- /dev/null +++ b/boards/esp32-ethernet-kit-v1_1/Makefile.include @@ -0,0 +1,3 @@ + +INCLUDES += -I$(RIOTBOARD)/esp32-ethernet-kit-v1_0/include +include $(RIOTBOARD)/esp32-ethernet-kit-v1_0/Makefile.include diff --git a/boards/esp32-ethernet-kit-v1_1/doc.txt b/boards/esp32-ethernet-kit-v1_1/doc.txt new file mode 100644 index 0000000000..27941a7384 --- /dev/null +++ b/boards/esp32-ethernet-kit-v1_1/doc.txt @@ -0,0 +1,87 @@ +/* + * 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_1 v1.1 Board + * @ingroup boards_esp32_esp-ethernet-kit + * @brief Support for for Espressif ESP32-Ethernet-Kit v1.1 + * @author Gunar Schorcht + * @author Erik Ekman + +## Table of Contents + +1. [Overview](#overview) +2. [Hardware](#hardware) + 1. [Board Configuration](#board_configuration) + 2. [Board Pinout](#pinout) +3. [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.1.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. +For flashing and debugging the board, see \ref boards_esp32_esp-ethernet-kit common board documentation. + +## Hardware    [[TOC](#toc)] + +This section describes + +- the default [board configuration](#board_configuration), +- the [board pinout](#pinout). + +### Board Configuration    [[TOC](#toc)] + +ESP32-Ethernet-Kit v1.1 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_v1_1_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) | GPIO2, 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 +- 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.1_20190711.pdf). + +By default, only 4 bidirectional GPIO pins are unused: GPIO2, 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). + +## 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.1.html) for the ESP32-Ethernet-Kit with a lot information about hardware configuration. + */