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

boards: add support for ESP32-S3-USB-OTG

This commit is contained in:
Gunar Schorcht 2023-07-07 15:34:35 +02:00
parent 115a3ea100
commit d68c82661f
10 changed files with 714 additions and 0 deletions

View File

@ -0,0 +1,38 @@
# Copyright (c) 2020 HAW Hamburg
# 2022 Gunar Schorcht
#
# 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 "esp32s3-usb-otg" if BOARD_ESP32S3_USB_OTG
config BOARD_ESP32S3_USB_OTG
bool
default y
select BOARD_COMMON_ESP32S3
select CPU_MODEL_ESP32S3_MINI_1X_N8
select HAS_ESP_JTAG
select HAS_HIGHLEVEL_STDIO
select HAS_PERIPH_ADC
select HAS_PERIPH_PWM
select HAS_PERIPH_SPI
select HAS_PERIPH_UART
select HAS_PERIPH_USBDEV
select HAS_SDCARD_SPI
select HAS_TINYUSB_DEVICE
select HAVE_MTD_SDCARD_DEFAULT
select HAVE_ST7789
select MODULE_FATFS_VFS if MODULE_VFS_DEFAULT
# Only this board has a requirement to use USB_BOARD_RESET with STDIO_USB_SERIAL_JTAG
select MODULE_USB_BOARD_RESET if MODULE_STDIO_USB_SERIAL_JTAG
select REQUIRES_USB_STDIO if MODULE_USBUS || MODULE_TINYUSB_DEVICE
choice STDIO_IMPLEMENTATION
default MODULE_STDIO_CDC_ACM if MODULE_USBUS
default MODULE_STDIO_TINYUSB_CDC_ACM if MODULE_TINYUSB_DEVICE
default MODULE_STDIO_USB_SERIAL_JTAG
endchoice
source "$(RIOTBOARD)/common/esp32s3/Kconfig"

View File

@ -0,0 +1,5 @@
MODULE = board
DIRS = $(RIOTBOARD)/common/esp32s3
include $(RIOTBASE)/Makefile.base

View File

@ -0,0 +1,32 @@
ifeq (,$(filter stdio_% slipdev_stdio usbus usbus% tinyusb_device,$(USEMODULE)))
# Use stdio_usb_serial_jtag if no other stdio is requested explicitly
# and neither USBUS nor tinyusb_device are used
USEMODULE += stdio_usb_serial_jtag
# Even if only stdio_usb_serial_jtag is enabled, usb_board_reset is enabled
# since there should be a CDC ACM interface in any case. This is necessary,
# for example, to reset the board if stdio_cdc_acm or stdio_tinyusb_cdc_acm
# was previously used.
USEMODULE += usb_board_reset
include $(RIOTMAKE)/tools/usb_board_reset.mk
endif
include $(RIOTBOARD)/common/esp32s3/Makefile.dep
include $(RIOTBOARD)/common/makefiles/stdio_cdc_acm.dep.mk
# default to using fatfs on SD card
ifneq (,$(filter vfs_default,$(USEMODULE)))
USEMODULE += fatfs_vfs
USEMODULE += mtd
endif
ifneq (,$(filter mtd,$(USEMODULE)))
USEMODULE += mtd_sdcard_default
endif
ifneq (,$(filter disp_dev,$(USEMODULE)))
USEMODULE += st7789
endif
ifneq (,$(filter st7735,$(USEMODULE)))
USEMODULE += st7789
endif

View File

@ -0,0 +1,17 @@
CPU_MODEL = esp32s3_mini_1x_n8
# common board and CPU features
include $(RIOTBOARD)/common/esp32s3/Makefile.features
# additional features provided by the board
FEATURES_PROVIDED += periph_adc
FEATURES_PROVIDED += periph_pwm
FEATURES_PROVIDED += periph_spi
FEATURES_PROVIDED += periph_uart
FEATURES_PROVIDED += periph_usbdev
# unique features provided by the board
FEATURES_PROVIDED += esp_jtag
FEATURES_PROVIDED += highlevel_stdio
FEATURES_PROVIDED += sdcard_spi
FEATURES_PROVIDED += tinyusb_device

View File

@ -0,0 +1,5 @@
PORT_LINUX ?= /dev/ttyACM0
OPENOCD_CONFIG ?= board/esp32s3-builtin.cfg
include $(RIOTBOARD)/common/esp32s3/Makefile.include

View File

@ -0,0 +1,26 @@
/*
* Copyright (C) 2023 Gunar Schorcht
*
* 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.
*/
/**
* @ingroup boards_esp32s3_usb_otg
* @{
*
* @file
* @brief Board specific initializations for ESP32-S3-USB-OTG boards
*
* @author Gunar Schorcht <gunar@schorcht.net>
*/
#include "board.h"
void board_init(void)
{
#if MODULE_ST7735
gpio_init(LCD_BACKLIGHT, GPIO_OUT);
#endif
}

View File

@ -0,0 +1,185 @@
/*
* Copyright (C) 2023 Gunar Schorcht
*
* 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_esp32s3_usb_otg ESP32-S3-USB-OTG Board
* @ingroup boards_esp32s3
* @brief Support for the ESP32-S3-USB-OTG board
* @author Gunar Schorcht <gunar@schorcht.net>
\section esp32s3_usb_otg ESP32-S3-USB-OTG
## Table of Contents {#esp32s3_usb_otg_toc}
1. [Overview](#esp32s3_usb_otg_overview)
2. [Hardware](#esp32s3_usb_otg_hardware)
1. [MCU](#esp32s3_usb_otg_mcu)
2. [Board Configuration](#esp32s3_usb_otg_board_configuration)
3. [Flashing the Device](#esp32s3_usb_otg_flashing)
4. [Using STDIO](esp32s3_usb_otg_stdio)
## Overview {#esp32s3_usb_otg_overview}
The Espressif ESP32-S3-USB-OTG is a development board designed for the
development of applications that use the USB interface. For this purpose
it is equipped with two USB type A ports:
- `USB_DEV` male port that is used to connect the board as a USB device to a host.
- `USB_HOST` female port that is used to connect other USB devices to the board.
\image html "https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/_images/pic_board_top_lable.png" "Espressif ESP32-S3-USB-OTG" width=600px
@note RIOT-OS does only support the `USB_DEV` port, that is the board can only
be used as USB device.
The main features of the board are:
| Feature | Support |
|:-------------------------------|:--------------:|
| ESP32-S3 SoC | yes (1 core) |
| 2.4 GHz WiFi 802.11b/g/n | yes |
| Bluetooth5, BLE | yes |
| 8 MByte Flash | yes |
| USB Type-A Host Interface | no |
| USB Type-A Device Interface | yes |
| SD Card Slot | yes (SPI mode) |
| LCD Color Display 240 x 240 | yes |
## Hardware {#esp32s3_usb_otg_hardware}
This section describes
- the [MCU](#esp32s3_usb_otg_mcu),
- the default [board configuration](#esp32s3_usb_otg_board_configuration),
[Back to table of contents](#esp32s3_usb_otg_toc)
### MCU {#esp32s3_usb_otg_mcu}
Most features of the board are provided by the ESP32-S3 SoC. For detailed
information about the ESP32-S3 SoC variant (family) and ESP32x SoCs,
see section \ref esp32_mcu_esp32 "ESP32 SoC Series".
[Back to table of contents](#esp32s3_usb_otg_toc)
### Board Configuration {#esp32s3_usb_otg_board_configuration}
The Espressif ESP32-S3-USB-OTG is a development board that uses the
ESP32-S3-MINI-1 module. Most important features of the board are
- Micro-SD Card interface
- 1.3" Color LCD display with ST7789 display controller
- USB-to-UART bridge
- `USB_DEV` Type-A male port
- `USB_HOST` Type-A female port
<center>
Function | GPIOs | Remarks | Configuration
:-----------------|:-------|:------------|:----------------------------------
BTN0 | GPIO0 | OK Button | |
BTN1 | GPIO14 | MENU Button | |
BTN2 | GPIO11 | DW- Button | |
BTN3 | GPIO10 | UP+ active | |
LED0 | GPIO15 | Green LED | |
LED1 | GPIO16 | Yellow LED | |
LCD_DC | GPIO4 | | |
LCD_EN | GPIO5 | | |
LCD_RST | GPIO8 | | |
LCD_BL | GPIO9 | LCD Backlight | |
ADC_LINE(0) | GPIO1 | USB_HOST Voltage | \ref esp32_adc_channels "ADC Channels"
ADC_LINE(1) | GPIO2 | Battery Voltage | \ref esp32_adc_channels "ADC Channels"
PWM_DEV(0):0 | GPIO15 | LED0 | \ref esp32_pwm_channels "PWM Channels"
PWM_DEV(0):1 | GPIO16 | LED1 | \ref esp32_pwm_channels "PWM Channels"
SPI_DEV(0):SCK | GPIO6 | LCD_SCLK | \ref esp32_spi_interfaces "SPI Interfaces" |
SPI_DEV(0):MOSI | GPIO7 | LCD_SDA | \ref esp32_spi_interfaces "SPI Interfaces" |
SPI_DEV(0):MISO | GPIO3 | no used | \ref esp32_spi_interfaces "SPI Interfaces" |
SPI_DEV(0):CS0 | GPIO5 | LCD_EN | \ref esp32_spi_interfaces "SPI Interfaces" |
SPI_DEV(1):SCK | GPIO36 | SD_CLK | \ref esp32_spi_interfaces "SPI Interfaces" |
SPI_DEV(1):MOSI | GPIO35 | SD_CMD | \ref esp32_spi_interfaces "SPI Interfaces" |
SPI_DEV(1):MISO | GPIO37 | SD_DATA0 | \ref esp32_spi_interfaces "SPI Interfaces" |
SPI_DEV(1):CS0 | GPIO34 | SD_DATA3 | \ref esp32_spi_interfaces "SPI Interfaces" |
UART_DEV(0):TxD | GPIO43 | USB-to-UART bridge | \ref esp32_uart_interfaces "UART interfaces"
UART_DEV(0):RxD | GPIO44 | USB-to-UART bridge | \ref esp32_uart_interfaces "UART interfaces"
</center>
\n
For detailed information about the peripheral configurations of ESP32-S3
boards, see section \ref esp32_peripherals "Common Peripherals".
The corresponding board schematic can be found
[here](https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/_static/esp32-s3-usb-otg/schematics/SCH_ESP32-S3_USB_OTG.pdf)
[Back to table of contents](#esp32s3_usb_otg_toc)
## Flashing the Device {#esp32s3_usb_otg_flashing}
There are two options to flash the board:
1. USB Serial/JTAG interface using the `USB_DEV` port (default)
2. UART-to-UART bridge
### Flashing the device using the USB Serial/JTAG interface (`USB_DEV` port)
To flash the board via the USB Serial/JTAG interface just connect the board
with the `USB_DEV` port to your host computer and use the following command:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BOARD=esp32s3_usb_otg make flash ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Usually the make system resets the board before flashing to enable the
USB Serial/JTAG controller and to reboot the ESP32-S3 in download mode.
In some very special cases this reset does not work and the programmer cannot
connect to the card, so the flashing is aborted with a timeout:
```
Serial port /dev/ttyACM0
Connecting...
...
serial.serialutil.SerialTimeoutException: Write timeout
```
This can happen either if RIOT is not yet installed or if the USB port was
previously used with the USB OTG controller, for example with USBUS or tinyUSB.
In this case, restart the board manually into download mode by pressing and
releasing the RESET button while holding down the BOOT button.
In download mode, the USB Serial/JTAG interface is always available.
@note If the USB port was previously used with the USB OTG controller, an
automatic restart of the ESP32-S3 with the flashed application is not
possible. In this case the board must be reset manually using the RESET
button. In all other cases the ESP32-S3 automatically restarts with
the flashed application.
### Flashing the device using USB-to-UART bridge
Flashing RIOT using the USB-to-UART bridge is quite easy. The board has a
Micro-USB connector with reset/boot/flash logic. Just connect the board to
your host computer and type using the programming port:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BOARD=esp32s3-usb-otg make flash ... PORT=/dev/ttyUSB0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For detailed information about ESP32-S3 as well as configuring and compiling
RIOT for ESP32-S3 boards, see \ref esp32_riot.
[Back to table of contents](#esp32s3_usb_otg_toc)
## Using STDIO {#esp32s3_usb_otg_stdio}
By default, the `USB_DEV` port and the USB Serial/JTAG interface are used for
the STDIO (module `stdio_usb_serial_jtag`). If the USB port is used by the
USBUS stack or the tinyUSB stack, implicitly the module `stdio_cdc_acm` or
`stdio_tinyusb_cdc_acm` is used for the STDIO via the USB CDC ACM interface.
Alternatively, the USB-to-UART bridge and `UART_DEV(0)` could be used for the
STDIO. Simply add `stdio_uart` to the list of used modules for this purpose:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BOARD=esp32s3-usb-otg USEMODULE=stdio_uart make flash ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

View File

@ -0,0 +1,199 @@
/*
* Copyright (C) 2023 Gunar Schorcht
*
* 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.
*/
/**
* @ingroup boards_esp32s3_usb_otg
* @brief Board definitions for the ESP32-S3-USB-OTG boards
* @{
*
* Any modifications required for specific applications
* can be overridden by \ref esp32_application_specific_configurations
* "application-specific board configuration".
*
* @file
* @author Gunar Schorcht <gunar@schorcht.net>
*/
#ifndef BOARD_H
#define BOARD_H
#include <stdint.h>
/**
* @name Button pin definitions
* @{
*/
/**
* @brief BOOT/OK button GPIO pin definition
*
* The BOOT button is connected to GPIO0 and is used as OK button during
* normal operation. The button is LOW active.
*/
#define BTN0_PIN GPIO0
/**
* @brief BOOT/OK button GPIO mode definition
*/
#define BTN0_MODE GPIO_IN_PU
/**
* @brief Default interrupt flank definition for the BOOT/OK button GPIO
*/
#ifndef BTN0_INT_FLANK
#define BTN0_INT_FLANK GPIO_FALLING
#endif
/**
* @brief Definition for compatibility with previous versions
*/
#define BUTTON0_PIN BTN0_PIN
/**
* @brief MENU button GPIO pin definition
*
* The MENU button is connected to GPIO14. It is LOW active.
*/
#define BTN1_PIN GPIO14
/**
* @brief MENU button GPIO mode definition
*/
#define BTN1_MODE GPIO_IN_PU
/**
* @brief Default interrupt flank definition for the MENU button GPIO
*/
#ifndef BTN1_INT_FLANK
#define BTN1_INT_FLANK GPIO_FALLING
#endif
/**
* @brief Definition for compatibility with previous versions
*/
#define BUTTON1_PIN BTN1_PIN
/**
* @brief DW- button GPIO pin definition
*
* The DW- button is connected to GPIO11. It is LOW active.
*/
#define BTN2_PIN GPIO11
/**
* @brief DW- button GPIO mode definition
*/
#define BTN2_MODE GPIO_IN_PU
/**
* @brief Default interrupt flank definition for the DW- button GPIO
*/
#ifndef BTN2_INT_FLANK
#define BTN2_INT_FLANK GPIO_FALLING
#endif
/**
* @brief Definition for compatibility with previous versions
*/
#define BUTTON2_PIN BTN2_PIN
/**
* @brief UP+ button GPIO pin definition
*
* The MENU button is connected to GPIO10. It is LOW active.
*/
#define BTN3_PIN GPIO10
/**
* @brief UP+ button GPIO mode definition
*/
#define BTN3_MODE GPIO_IN_PU
/**
* @brief Default interrupt flank definition for the UP+ button GPIO
*/
#ifndef BTN3_INT_FLANK
#define BTN3_INT_FLANK GPIO_FALLING
#endif
/**
* @brief Definition for compatibility with previous versions
*/
#define BUTTON3_PIN BTN3_PIN
/** @} */
/**
* @name LED (on-board) configuration
*
* ESP32-S3-USB-OTG boards have two LEDs on board.
* @{
*/
#define LED0_PIN GPIO15 /**< Green LED */
#define LED0_ACTIVE (1) /**< Green LED is high active */
#define LED1_PIN GPIO16 /**< Yellow LED */
#define LED1_ACTIVE (1) /**< Yellow LED is high active */
/** @} */
/**
* @name LCD configuration
*
* This configuration cannot be changed.
* @{
*/
#if MODULE_ST7735
#define LCD_DC GPIO4 /**< LCD DC signal */
#define LCD_CS GPIO5 /**< LCD EN signal */
#define LCD_RST GPIO8 /**< LCD RST signal */
#define LCD_BACKLIGHT GPIO9 /**< LCD BL signal */
#define ST7735_PARAM_SPI SPI_DEV(0)
#define ST7735_PARAM_CS LCD_CS
#define ST7735_PARAM_DCX LCD_DC
#define ST7735_PARAM_RST LCD_RST
#define ST7735_PARAM_NUM_LINES 240
#define ST7735_PARAM_RGB_CHANNELS 240
#define ST7735_PARAM_ROTATION LCD_MADCTL_MV | LCD_MADCTL_MX | LCD_MADCTL_MY
#define ST7735_PARAM_INVERTED 1
#define ST7735_PARAM_RGB 1
#define BACKLIGHT_ON gpio_set(LCD_BACKLIGHT)
#define BACKLIGHT_OFF gpio_clear(LCD_BACKLIGHT)
#endif
/** @} */
/**
* @name SD-Card interface configuration
*
* SD-Card interface uses SPI_DEV(1) on this board.
* @{
*/
#if (MODULE_SDCARD_SPI) || DOXYGEN
#define SDCARD_SPI_PARAM_SPI SPI_DEV(1)
#define SDCARD_SPI_PARAM_CS SPI1_CS0
#define SDCARD_SPI_PARAM_CLK SPI1_SCK
#define SDCARD_SPI_PARAM_MOSI SPI1_MOSI
#define SDCARD_SPI_PARAM_MISO SPI1_MISO
#define SDCARD_SPI_PARAM_POWER GPIO_UNDEF
#endif
/** @} */
/* include common board definitions as last step */
#include "board_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
} /* end extern "C" */
#endif
#endif /* BOARD_H */
/** @} */

View File

@ -0,0 +1,75 @@
/*
* Copyright (C) 2023 Gunar Schorcht
*
* 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.
*/
#ifndef GPIO_PARAMS_H
#define GPIO_PARAMS_H
/**
* @ingroup boards_esp32s3_usb_otg
* @brief Board specific configuration of direct mapped GPIOs
* @file
* @author Gunar Schorcht <gunar@schorcht.net>
* @{
*/
#include "board.h"
#include "saul/periph.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief LED and Button configuration
*/
static const saul_gpio_params_t saul_gpio_params[] =
{
{
.name = "OK",
.pin = BTN0_PIN,
.mode = BTN0_MODE,
.flags = SAUL_GPIO_INVERTED
},
{
.name = "MENU",
.pin = BTN1_PIN,
.mode = BTN1_MODE,
.flags = SAUL_GPIO_INVERTED
},
{
.name = "DW-",
.pin = BTN2_PIN,
.mode = BTN2_MODE,
.flags = SAUL_GPIO_INVERTED
},
{
.name = "UP+",
.pin = BTN3_PIN,
.mode = BTN3_MODE,
.flags = SAUL_GPIO_INVERTED
},
{
.name = "LED red",
.pin = LED0_PIN,
.mode = GPIO_OUT,
.flags = SAUL_GPIO_INIT_CLEAR
},
{
.name = "LED yellow",
.pin = LED1_PIN,
.mode = GPIO_OUT,
.flags = SAUL_GPIO_INIT_CLEAR
},
};
#ifdef __cplusplus
}
#endif
#endif /* GPIO_PARAMS_H */
/** @} */

View File

@ -0,0 +1,132 @@
/*
* Copyright (C) 2023 Gunar Schorcht
*
* 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.
*/
/**
* @ingroup boards_esp32s3_usb_otg
* @brief Peripheral configurations for ESP32-S3-USB-OTG boards
* @{
*
* Any modifications required for specific applications
* can be overridden by \ref esp32_application_specific_configurations
* "application-specific board configuration".
*
* For detailed information about the peripheral configuration for ESP32-S3
* boards, see section \ref esp32_peripherals "Common Peripherals".
*
* @file
* @author Gunar Schorcht <gunar@schorcht.net>
*/
#ifndef PERIPH_CONF_H
#define PERIPH_CONF_H
#include <stdint.h>
#include "board.h"
#include "periph_cpu.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name ADC channel configuration
* @{
*/
/**
* @brief Declaration of GPIOs that can be used as ADC channels
*
* GPIO1 can be used for USB_DEV voltage monitoring as ADC_LINE(0).
* GPIO2 can be used for Battery voltage monitoring as ADC_LINE(1).
*/
#ifndef ADC_GPIOS
#define ADC_GPIOS { GPIO1, GPIO2 }
#endif
/** @} */
/**
* @name PWM channel configuration
* @{
*/
/**
* @brief Declaration of the channels for device PWM_DEV(0)
*
* LED pins are used as PWM channels.
*/
#ifndef PWM0_GPIOS
#define PWM0_GPIOS { LED0_PIN, LED1_PIN }
#endif
/** @} */
/**
* @name SPI configuration
*
* SPI_DEV(0) is used for LCD display
* SPI_DEV(1) is used for SPI SD Card (only configured if `sdcard_spi` is enabled)
* @{
*/
#ifndef SPI0_CTRL
#define SPI0_CTRL SPI2_HOST /**< FSPI is configured as SPI_DEV(0) */
#endif
#ifndef SPI0_SCK
#define SPI0_SCK GPIO6 /**< LCD SCLK */
#endif
#ifndef SPI0_MOSI
#define SPI0_MOSI GPIO7 /**< LCD SDA */
#endif
#ifndef SPI0_MISO
#define SPI0_MISO GPIO3 /**< not used (dummy pin) */
#endif
#ifndef SPI0_CS0
#define SPI0_CS0 GPIO5 /**< LCD CS */
#endif
#if IS_USED(MODULE_SDCARD_SPI)
#ifndef SPI1_CTRL
#define SPI1_CTRL SPI3_HOST /**< FSPI is configured as SPI_DEV(0) */
#endif
#ifndef SPI1_SCK
#define SPI1_SCK GPIO36 /**< SD SCLK */
#endif
#ifndef SPI1_MOSI
#define SPI1_MOSI GPIO35 /**< SD MOSI */
#endif
#ifndef SPI1_MISO
#define SPI1_MISO GPIO37 /**< SD MISO */
#endif
#ifndef SPI1_CS0
#define SPI1_CS0 GPIO34 /**< SD CS */
#endif
#endif
/** @} */
/**
* @name UART configuration
*
* ESP32-S3 provides 3 UART interfaces at maximum:
*
* UART_DEV(0) uses fixed standard configuration.<br>
* UART_DEV(1) is not used.<br>
*
* @{
*/
#define UART0_TXD GPIO43 /**< direct I/O pin for UART_DEV(0) TxD, can't be changed */
#define UART0_RXD GPIO44 /**< direct I/O pin for UART_DEV(0) RxD, can't be changed */
/** @} */
#ifdef __cplusplus
} /* end extern "C" */
#endif
/* include common peripheral definitions as last step */
#include "periph_conf_common.h"
#endif /* PERIPH_CONF_H */
/** @} */