-
Notifications
You must be signed in to change notification settings - Fork 2.1k
boards/esp32s2-mini: add definition for ESP32 S2 Mini #18863
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
7607b9c
4b5df64
9a39c88
ed5bfb7
17b0f3e
bc4c0fb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| ifeq (,$(filter stdio_% slipdev_stdio,$(USEMODULE))) | ||
| # Use stdio_tinyusb_cdc_acm only if no other stdio is requested explicitly. | ||
| # and usbus is used for any other reason | ||
| ifneq (,$(filter usbus,$(USEMODULE))) | ||
| USEMODULE += stdio_cdc_acm | ||
| else | ||
| USEMODULE += stdio_tinyusb_cdc_acm | ||
| endif | ||
|
|
||
| FEATURES_REQUIRED += highlevel_stdio | ||
| endif | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| # Copyright (c) 2022 Benjamin Valentin | ||
| # | ||
| # 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 "esp32s2-wemos-mini" if BOARD_ESP32S2_WEMOS_MINI | ||
|
|
||
| config BOARD_ESP32S2_WEMOS_MINI | ||
| bool | ||
| default y | ||
| select BOARD_COMMON_ESP32S2 | ||
| select CPU_MODEL_ESP32S2_FN4R2 | ||
| select HAS_PERIPH_ADC | ||
| select HAS_PERIPH_DAC | ||
| select HAS_PERIPH_I2C | ||
| select HAS_PERIPH_PWM | ||
| select HAS_PERIPH_SPI | ||
| select HAS_PERIPH_USBDEV | ||
| select HAS_TINYUSB_DEVICE | ||
| select HAS_HIGHLEVEL_STDIO | ||
|
|
||
| source "$(RIOTBOARD)/common/esp32s2/Kconfig" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| MODULE = board | ||
|
|
||
| DIRS = $(RIOTBOARD)/common/esp32s2 | ||
|
|
||
| include $(RIOTBASE)/Makefile.base |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,2 @@ | ||||||
| include $(RIOTBOARD)/common/makefiles/stdio_tinyusb_cdc_acm.dep.mk | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shouldn't we use
Suggested change
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That does not work unfortunately:
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Strange, I don't have any problem with
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oops, forgot that this problem isn't solved. Have you tried another cable or port?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think it's a connection issue, it works when I use the tinyUSB stack, but not with usbus - without touching the connection.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
In principle yes, I would have supposed that too. But maybe there are timing issues caused by the poor signal quality that lead to different behavior in different implementations. The implementation of the
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Huh you are right! but tinyUSB appears more stable indeed |
||||||
| include $(RIOTBOARD)/common/esp32s2/Makefile.dep | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| CPU_MODEL = esp32s2_fn4r2 | ||
|
|
||
| # common board and CPU features | ||
| include $(RIOTBOARD)/common/esp32s2/Makefile.features | ||
|
|
||
| # additional features provided by the board | ||
| FEATURES_PROVIDED += periph_adc | ||
| FEATURES_PROVIDED += periph_dac | ||
| FEATURES_PROVIDED += periph_i2c | ||
| FEATURES_PROVIDED += periph_pwm | ||
| FEATURES_PROVIDED += periph_spi | ||
| FEATURES_PROVIDED += periph_usbdev | ||
|
|
||
benpicco marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| FEATURES_PROVIDED += highlevel_stdio | ||
| FEATURES_PROVIDED += tinyusb_device | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| PORT_LINUX ?= /dev/ttyACM0 | ||
|
|
||
| USB_VID ?= $(USB_VID_TESTING) | ||
| USB_PID ?= $(USB_PID_TESTING) | ||
|
|
||
| CFLAGS += -DCONFIG_CONSOLE_UART_TX=39 | ||
| CFLAGS += -DCONFIG_CONSOLE_UART_RX=37 | ||
|
|
||
| include $(RIOTBOARD)/common/esp32s2/Makefile.include | ||
benpicco marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| /* | ||
| * Copyright (C) 2022 Benjamin Valentin | ||
| * | ||
| * 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_esp32s2-wemos-mini Wemos S2 mini Board | ||
| * @ingroup boards_esp32s2 | ||
| * @brief Support for Wemos S2 mini Board | ||
| * @author Benjamin Valentin <[email protected]> | ||
|
|
||
| \section esp32s2-wemos-mini Wemos S2 mini | ||
|
|
||
| ## Overview {#esp32s2-wemos-mini_overview} | ||
|
|
||
| \image html "https://www.wemos.cc/en/latest/_images/s2_mini_v1.0.0_4_16x9.jpg" "Wemos S2 mini" width=600px | ||
|
|
||
| Documentation for the board can be found on the vendor page: | ||
|
|
||
| - [Wemos S2 mini](https://www.wemos.cc/en/latest/s2/s2_mini.html) | ||
| - [Schematic](https://www.wemos.cc/en/latest/_static/files/sch_s2_mini_v1.0.0.pdf) | ||
|
|
||
| ## Flashing the Device {#esp32s2-wemos-mini_flashing} | ||
|
|
||
| Flashing RIOT is quite easy. The board has a Micro-USB connector with | ||
| reset/boot/flash logic. Just connect the board to your host computer | ||
gschorcht marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| and type using the programming port: | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| BOARD=esp32s2-wemos-mini make flash | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| If RIOT is already on the device, it should automatically enter bootloader mode. | ||
| If this does not work or the device is stuck in some other mode, you can force | ||
| it into bootloader mode by pressing the Reset (RST) button while holding the BOOT (0) | ||
| button. | ||
|
|
||
| For detailed information about ESP32-S2 as well as configuring and compiling | ||
| RIOT for ESP32-S2 boards, see \ref esp32_riot. | ||
|
|
||
| [Back to table of contents](#esp32s2-wemos-mini_toc) | ||
| */ | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| CONFIG_PACKAGE_TINYUSB=y | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is again exactly the problem I tried to solve in PR #19038 for the boards with only one USB interface. Using such an application configurations in the board definition prevents switching between the stacks. PR #19086 provides an approach that could solve the problem, by selecting the stack implementation that should be used first and the modules of the according stack afterwards. But let's continue as is for now. |
||
| CONFIG_MODULE_STDIO_TINYUSB_CDC_ACM=y | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| /* | ||
| * Copyright (C) 2022 Benjamin Valentin | ||
| * | ||
| * 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_esp32s2-wemos-mini | ||
| * @brief Board definitions for Wemos S2 mini board | ||
| * @{ | ||
| * | ||
| * The board definitions in this file is valid for the Wemos S2 mini board. | ||
| * | ||
| * @file | ||
| * @author Benjamin Valentin <[email protected]> | ||
| */ | ||
|
|
||
| #ifndef BOARD_H | ||
| #define BOARD_H | ||
|
|
||
| #include <stdint.h> | ||
|
|
||
| /** | ||
| * @name Button pin definitions | ||
| * @{ | ||
| */ | ||
|
|
||
| /** | ||
| * @brief Default button GPIO pin definition | ||
| * | ||
| * Wemos S2 mini boards have a BOOT button connected to GPIO0, which can be | ||
| * used as button during normal operation. Since the GPIO0 pin is pulled up, | ||
| * the button signal is inverted, i.e., pressing the button will give a | ||
| * low signal. | ||
| */ | ||
| #define BTN0_PIN GPIO0 | ||
|
|
||
| /** | ||
| * @brief Default button GPIO mode definition | ||
| */ | ||
| #define BTN0_MODE GPIO_IN_PU | ||
|
|
||
| /** | ||
| * @brief Default interrupt flank definition for the 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 | ||
|
|
||
| /** @} */ | ||
|
|
||
| /** | ||
| * @name LED (on-board) configuration | ||
| * | ||
| * @{ | ||
| */ | ||
| #define LED0_PIN GPIO15 /**< LED is connected to GPIO15 */ | ||
| #define LED0_ACTIVE 1 /**< LED is high active */ | ||
| /** @} */ | ||
benpicco marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| /* 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 */ | ||
| /** @} */ | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| /* | ||
| * Copyright (C) 2022 Benjamin Valentin | ||
| * | ||
| * 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_esp32s2-wemos-mini | ||
| * @brief Board specific configuration of direct mapped GPIOs | ||
| * @file | ||
| * @author Benjamin Valentin <[email protected]> | ||
| * @{ | ||
| */ | ||
|
|
||
| #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[] = | ||
| { | ||
| { | ||
benpicco marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| .name = "LED", | ||
| .pin = LED0_PIN, | ||
| .mode = GPIO_OUT, | ||
| }, | ||
| { | ||
| .name = "BOOT", | ||
| .pin = BTN0_PIN, | ||
| .mode = BTN0_MODE, | ||
| .flags = SAUL_GPIO_INVERTED | ||
| }, | ||
| }; | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif /* GPIO_PARAMS_H */ | ||
| /** @} */ | ||
Uh oh!
There was an error while loading. Please reload this page.