1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

boards/esp32: add ESP32-Ethernet-Kit v1.1 board

Split docs in v1_0 directory to board common and version specific parts.
This commit is contained in:
Erik Ekman 2020-08-07 18:37:31 +02:00
parent 8e767373fb
commit f586548d9c
12 changed files with 219 additions and 48 deletions

View File

@ -1,5 +1,3 @@
PSEUDOMODULES += esp32_ethernet_kit
PSEUDOMODULES += esp32_ethernet_kit_v1_0
# configure the serial interface
PORT_LINUX ?= /dev/ttyUSB1

View File

@ -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 <gunar@schorcht.net>
* @author Erik Ekman <eekman@google.com>
@ -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)
## <a name="overview"> Overview </a> &nbsp;&nbsp; [[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.
## <a name="hardware"> Hardware </a> &nbsp;&nbsp; [[TOC](#toc)]
This section describes
- the [MCU](#mcu),
- the default [board configuration](#board_configuration),
- the [board pinout](#pinout).
### <a name="mcu"> MCU </a> &nbsp;&nbsp; [[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".
### <a name="board_configuration"> Board Configuration </a> &nbsp;&nbsp; [[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.
<center>
\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).
## <a name="flashing"> Flashing the Device </a> &nbsp;&nbsp; [[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.
## <a name="debugging"> On-Chip Debugging with the Device </a> &nbsp;&nbsp; [[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.
## <a name="other-resources"> Other Documentation Resources </a> &nbsp;&nbsp; [[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.

View File

@ -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 <gunar@schorcht.net>
* @author Erik Ekman <eekman@google.com>
## <a name="toc"> Table of Contents </a>
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)
## <a name="overview"> Overview </a> &nbsp;&nbsp; [[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
## <a name="hardware"> Hardware </a> &nbsp;&nbsp; [[TOC](#toc)]
This section describes
- the [MCU](#mcu),
- the default [board configuration](#common_board_configuration).
### <a name="mcu"> MCU </a> &nbsp;&nbsp; [[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".
### <a name="common_board_configuration"> Board Configuration </a> &nbsp;&nbsp; [[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.
## <a name="flashing"> Flashing the Device </a> &nbsp;&nbsp; [[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.
## <a name="debugging"> On-Chip Debugging with the Device </a> &nbsp;&nbsp; [[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.
*/

View File

@ -8,7 +8,7 @@
*/
/**
* @ingroup boards_esp32_esp-ethernet-kit-v1_0
* @ingroup boards_esp32_esp-ethernet-kit
* @file
* @{
*/

View File

@ -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 <gunar@schorcht.net>

View File

@ -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 <gunar@schorcht.net>
@ -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 }

View File

@ -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"

View File

@ -0,0 +1,2 @@
DIRS = $(RIOTBOARD)/esp32-ethernet-kit-v1_0
include $(RIOTBASE)/Makefile.base

View File

@ -0,0 +1 @@
include $(RIOTBOARD)/esp32-ethernet-kit-v1_0/Makefile.dep

View File

@ -0,0 +1 @@
include $(RIOTBOARD)/esp32-ethernet-kit-v1_0/Makefile.features

View File

@ -0,0 +1,3 @@
INCLUDES += -I$(RIOTBOARD)/esp32-ethernet-kit-v1_0/include
include $(RIOTBOARD)/esp32-ethernet-kit-v1_0/Makefile.include

View File

@ -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 <gunar@schorcht.net>
* @author Erik Ekman <eekman@google.com>
## <a name="toc"> Table of Contents </a>
1. [Overview](#overview)
2. [Hardware](#hardware)
1. [Board Configuration](#board_configuration)
2. [Board Pinout](#pinout)
3. [Other Documentation Resources](#other-resources)
## <a name="overview"> Overview </a> &nbsp;&nbsp; [[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.
## <a name="hardware"> Hardware </a> &nbsp;&nbsp; [[TOC](#toc)]
This section describes
- the default [board configuration](#board_configuration),
- the [board pinout](#pinout).
### <a name="board_configuration"> Board Configuration </a> &nbsp;&nbsp; [[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.
<center>
\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"
</center>
@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.
### <a name="pinout"> Board Pinout </a> &nbsp;&nbsp; [[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).
## <a name="other-resources"> Other Documentation Resources </a> &nbsp;&nbsp; [[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.
*/