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:
parent
115a3ea100
commit
d68c82661f
38
boards/esp32s3-usb-otg/Kconfig
Normal file
38
boards/esp32s3-usb-otg/Kconfig
Normal 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"
|
5
boards/esp32s3-usb-otg/Makefile
Normal file
5
boards/esp32s3-usb-otg/Makefile
Normal file
@ -0,0 +1,5 @@
|
||||
MODULE = board
|
||||
|
||||
DIRS = $(RIOTBOARD)/common/esp32s3
|
||||
|
||||
include $(RIOTBASE)/Makefile.base
|
32
boards/esp32s3-usb-otg/Makefile.dep
Normal file
32
boards/esp32s3-usb-otg/Makefile.dep
Normal 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
|
17
boards/esp32s3-usb-otg/Makefile.features
Normal file
17
boards/esp32s3-usb-otg/Makefile.features
Normal 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
|
5
boards/esp32s3-usb-otg/Makefile.include
Normal file
5
boards/esp32s3-usb-otg/Makefile.include
Normal file
@ -0,0 +1,5 @@
|
||||
PORT_LINUX ?= /dev/ttyACM0
|
||||
|
||||
OPENOCD_CONFIG ?= board/esp32s3-builtin.cfg
|
||||
|
||||
include $(RIOTBOARD)/common/esp32s3/Makefile.include
|
26
boards/esp32s3-usb-otg/board.c
Normal file
26
boards/esp32s3-usb-otg/board.c
Normal 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
|
||||
}
|
185
boards/esp32s3-usb-otg/doc.txt
Normal file
185
boards/esp32s3-usb-otg/doc.txt
Normal 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 ...
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
*/
|
199
boards/esp32s3-usb-otg/include/board.h
Normal file
199
boards/esp32s3-usb-otg/include/board.h
Normal 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 */
|
||||
/** @} */
|
75
boards/esp32s3-usb-otg/include/gpio_params.h
Normal file
75
boards/esp32s3-usb-otg/include/gpio_params.h
Normal 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 */
|
||||
/** @} */
|
132
boards/esp32s3-usb-otg/include/periph_conf.h
Normal file
132
boards/esp32s3-usb-otg/include/periph_conf.h
Normal 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 */
|
||||
/** @} */
|
Loading…
Reference in New Issue
Block a user