|
| 1 | +/* |
| 2 | + * Copyright (C) 2024 Isikcan 'Jon' Yilmaz |
| 3 | + * |
| 4 | + * This file is subject to the terms and conditions of the GNU Lesser |
| 5 | + * General Public License v2.1. See the file LICENSE in the top level |
| 6 | + * directory for more details. |
| 7 | + */ |
| 8 | + |
| 9 | +/** |
| 10 | + * @defgroup boards_esp32s3_seeedstudio ESP32 Seeed Studio XIAO Board |
| 11 | + * @ingroup boards_esp32s3 |
| 12 | + * @brief Support for the Seeed Studio Xiao ESP32S3 |
| 13 | + * @author Isikcan 'Jon' Yilmaz < [email protected]> |
| 14 | + |
| 15 | +\section esp32s3_seeedstudio Seeed Studio Xiao ESP32 |
| 16 | + |
| 17 | +## Table of Contents {#esp32s3_seeedstudio_toc} |
| 18 | + |
| 19 | +1. [Overview](#esp32s3_seeedstudio_overview) |
| 20 | +2. [Hardware](#esp32s3_seeedstudio_hardware) |
| 21 | + 1. [MCU](#esp32s3_seeedstudio_mcu) |
| 22 | + 2. [Board Configuration](#esp32s3_seeedstudio_board_configuration) |
| 23 | + 3. [Board Pinout](#esp32s3_seeedstudio_pinout) |
| 24 | +3. [Flashing the Device](#esp32s3_seeedstudio_flashing) |
| 25 | +4. [Using STDIO](#esp32s3_seeedstudio_stdio) |
| 26 | + |
| 27 | +## Overview {#esp32s3_seeedstudio_overview} |
| 28 | + |
| 29 | +The Seeed Studio ESP32S3 is one of the ESP32-S3 boards from Seeed Studio. |
| 30 | +\image html https://files.seeedstudio.com/wiki/SeeedStudio-XIAO-ESP32S3/img/xiaoesp32s3.jpg "Seeed Studio ESP32S3" width=800px |
| 31 | + |
| 32 | +Vendor's info page for the board [here](https://wiki.seeedstudio.com/xiao_esp32s3_getting_started/) |
| 33 | + |
| 34 | +The main features of the board are: |
| 35 | + |
| 36 | +- ESP32-S3 SoC with 2.4 GHz WiFi 802.11b/g/n and Bluetooth5, BLE |
| 37 | +- 8 MByte Flash |
| 38 | +- 8 MByte QSPI RAM |
| 39 | +- Native USB and USB Serial JTAG |
| 40 | +- 21 x 17.8 mm footprint |
| 41 | + |
| 42 | +[Back to table of contents](#esp32s3_seeedstudio_toc) |
| 43 | + |
| 44 | +## Hardware {#esp32s3_seeedstudio_hardware} |
| 45 | + |
| 46 | +This section describes |
| 47 | + |
| 48 | +- the [MCU](#esp32s3_seeedstudio_mcu), |
| 49 | +- the default [board configuration](#esp32s3_seeedstudio_board_configuration), |
| 50 | +- the [board pinout](#esp32s3_seeedstudio_pinout). |
| 51 | + |
| 52 | +[Back to table of contents](#esp32s3_seeedstudio_toc) |
| 53 | + |
| 54 | +### MCU {#esp32s3_seeedstudio_mcu} |
| 55 | + |
| 56 | +Most features of the board are provided by the ESP32-S3 SoC. For detailed |
| 57 | +information about the ESP32-S3 SoC variant (family) and ESP32x SoCs, |
| 58 | +see section \ref esp32_mcu_esp32 "ESP32 SoC Series". |
| 59 | + |
| 60 | +[Back to table of contents](#esp32s3_seeedstudio_toc) |
| 61 | + |
| 62 | +### Board Configuration {#esp32s3_seeedstudio_board_configuration} |
| 63 | + |
| 64 | +Seeed Studio Xiao ESP32S3 boards have no special hardware on board, besides a yellow LED connected to GPIO21. |
| 65 | + |
| 66 | +The default board configuration provides: |
| 67 | + |
| 68 | +- 9 x ADC |
| 69 | +- 1 x SPI |
| 70 | +- 1 x I2C |
| 71 | +- 1 x UART |
| 72 | +- 10 x PWM, 4 channels each |
| 73 | + |
| 74 | +For detailed information about the peripheral configurations of ESP32-S3 |
| 75 | +boards, see section \ref esp32_peripherals "Common Peripherals". |
| 76 | + |
| 77 | +[Back to table of contents](#esp32s3_seeedstudio_toc) |
| 78 | + |
| 79 | +### Board Pinout {#esp32s3_seeedstudio_pinout} |
| 80 | + |
| 81 | +The following figure shows the pinout as configured by board definition (excluding the camera module). |
| 82 | + |
| 83 | +@image html https://files.seeedstudio.com/wiki/SeeedStudio-XIAO-ESP32S3/img/2.jpg "Seeed Studio Xiao ESP32S3 Pinout" width=900px |
| 84 | + |
| 85 | +The corresponding board schematic can be found |
| 86 | +[here](https://files.seeedstudio.com/wiki/SeeedStudio-XIAO-ESP32S3/res/XIAO_ESP32S3_SCH_v1.2.pdf) |
| 87 | + |
| 88 | +[Back to table of contents](#esp32s3_seeedstudio_toc) |
| 89 | + |
| 90 | +## Flashing the Device {#esp32s3_seeedstudio_flashing} |
| 91 | + |
| 92 | +Since the board does not have a USB-to-Serial chip, the easiest way to flash |
| 93 | +the board is using the USB Serial/JTAG interface. Just connect the board to |
| 94 | +your host computer and use the following command: |
| 95 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 96 | +BOARD=esp32s3-seeedstudio make flash ... |
| 97 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 98 | + |
| 99 | +@note Usually the make system resets the board before flashing to enable the |
| 100 | +USB Serial/JTAG interface. In some special cases this reset does not work so |
| 101 | +that the programmer cannot connect to the board and the flashing is aborted |
| 102 | +with a timeout: |
| 103 | +``` |
| 104 | +Serial port /dev/ttyACM0 |
| 105 | +Connecting... |
| 106 | +... |
| 107 | +serial.serialutil.SerialTimeoutException: Write timeout |
| 108 | +``` |
| 109 | +This can happen for example if the board is not yet flashed with RIOT or the |
| 110 | +USB interface is used for another purpose. In this case, restart the board |
| 111 | +manually in download mode by pressing and releasing the RESET button while |
| 112 | +holding down the BOOT button. In download mode, the USB Serial/JTAG interface is |
| 113 | +always available. |
| 114 | + |
| 115 | +For detailed information about ESP32-S3 as well as configuring and compiling |
| 116 | +RIOT for ESP32-S3 boards, see \ref esp32_riot. |
| 117 | + |
| 118 | +[Back to table of contents](#esp32s3_seeedstudio_toc) |
| 119 | + |
| 120 | +## Using STDIO {#esp32s3_seeedstudio_stdio} |
| 121 | + |
| 122 | +Since the board does not have a USB-to-Serial chip, the USB Serial/JTAG |
| 123 | +interface is used by default for the STDIO (module `stdio_usb_serial_jtag`) |
| 124 | +which provides an USB CDC ACM interface. |
| 125 | + |
| 126 | +If the USB port is used by the USBUS stack or the tinyUSB stack, implicitly |
| 127 | +the module `stdio_cdc_acm` or `stdio_tinyusb_cdc_acm` is used for the STDIO |
| 128 | +via the USB CDC ACM interface. |
| 129 | + |
| 130 | +Alternatively, the UART interface could be used with an external USB-to-Serial |
| 131 | +adapter. Simply add `stdio_uart` to the list of used modules for this purpose: |
| 132 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 133 | +BOARD=esp32s3-seeedstudio USEMODULE=stdio_uart make flash ... |
| 134 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 135 | + |
| 136 | + */ |
0 commit comments