|
| 1 | +.. _esp32s3_devkitm: |
| 2 | + |
| 3 | +ESP32S3-DevKitM |
| 4 | +############### |
| 5 | + |
| 6 | +Overview |
| 7 | +******** |
| 8 | + |
| 9 | +The ESP32-S3-DevKitM is an entry-level development board equipped with either ESP32-S3-MINI-1 |
| 10 | +or ESP32-S3-MINI-1U, a module named for its small size. This board integrates complete Wi-Fi |
| 11 | +and Bluetooth Low Energy functions. For more information, check `ESP32-S3 DevKitM`_ |
| 12 | + |
| 13 | +Hardware |
| 14 | +******** |
| 15 | + |
| 16 | +ESP32-S3 is a low-power MCU-based system on a chip (SoC) with integrated 2.4 GHz Wi-Fi |
| 17 | +and Bluetooth® Low Energy (Bluetooth LE). It consists of high-performance dual-core microprocessor |
| 18 | +(Xtensa® 32-bit LX7), a low power coprocessor, a Wi-Fi baseband, a Bluetooth LE baseband, |
| 19 | +RF module, and numerous peripherals. |
| 20 | + |
| 21 | +ESP32-S3 DevKitM includes the following features: |
| 22 | + |
| 23 | +- Dual core 32-bit Xtensa Microprocessor (Tensilica LX7), running up to 240MHz |
| 24 | +- Additional vector instructions support for AI acceleration |
| 25 | +- 512KB of SRAM |
| 26 | +- 384KB of ROM |
| 27 | +- Wi-Fi 802.11b/g/n |
| 28 | +- Bluetooth LE 5.0 with long-range support and up to 2Mbps data rate |
| 29 | + |
| 30 | +Digital interfaces: |
| 31 | + |
| 32 | +- 45 programmable GPIOs |
| 33 | +- 4x SPI |
| 34 | +- 1x LCD interface (8-bit ~16-bit parallel RGB, I8080 and MOTO6800), supporting conversion between RGB565, YUV422, YUV420 and YUV411 |
| 35 | +- 1x DVP 8-bit ~16-bit camera interface |
| 36 | +- 3x UART |
| 37 | +- 2x I2C |
| 38 | +- 2x I2S |
| 39 | +- 1x RMT (TX/RX) |
| 40 | +- 1x pulse counter |
| 41 | +- LED PWM controller, up to 8 channels |
| 42 | +- 1x full-speed USB OTG |
| 43 | +- 1x USB Serial/JTAG controller |
| 44 | +- 2x MCPWM |
| 45 | +- 1x SDIO host controller with 2 slots |
| 46 | +- General DMA controller (GDMA), with 5 transmit channels and 5 receive channels |
| 47 | +- 1x TWAI® controller, compatible with ISO 11898-1 (CAN Specification 2.0) |
| 48 | +- Addressable RGB LED, driven by GPIO48. |
| 49 | + |
| 50 | +Analog interfaces: |
| 51 | + |
| 52 | +- 2x 12-bit SAR ADCs, up to 20 channels |
| 53 | +- 1x temperature sensor |
| 54 | +- 14x touch sensing IOs |
| 55 | + |
| 56 | +Timers: |
| 57 | + |
| 58 | +- 4x 54-bit general-purpose timers |
| 59 | +- 1x 52-bit system timer |
| 60 | +- 3x watchdog timers |
| 61 | + |
| 62 | +Low Power: |
| 63 | + |
| 64 | +- Power Management Unit with five power modes |
| 65 | +- Ultra-Low-Power (ULP) coprocessors: ULP-RISC-V and ULP-FSM |
| 66 | + |
| 67 | +Security: |
| 68 | + |
| 69 | +- Secure boot |
| 70 | +- Flash encryption |
| 71 | +- 4-Kbit OTP, up to 1792 bits for users |
| 72 | +- Cryptographic hardware acceleration: (AES-128/256, Hash, RSA, RNG, HMAC, Digital signature) |
| 73 | + |
| 74 | +For more information, check the datasheet at `ESP32-S3 Datasheet`_. |
| 75 | + |
| 76 | +Supported Features |
| 77 | +================== |
| 78 | + |
| 79 | +Current Zephyr's ESP32-S3-DevKitM board supports the following features: |
| 80 | + |
| 81 | ++------------+------------+-------------------------------------+ |
| 82 | +| Interface | Controller | Driver/Component | |
| 83 | ++============+============+=====================================+ |
| 84 | ++------------+------------+-------------------------------------+ |
| 85 | +| UART | on-chip | serial port | |
| 86 | ++------------+------------+-------------------------------------+ |
| 87 | +| GPIO | on-chip | gpio | |
| 88 | ++------------+------------+-------------------------------------+ |
| 89 | +| PINMUX | on-chip | pinmux | |
| 90 | ++------------+------------+-------------------------------------+ |
| 91 | +| USB-JTAG | on-chip | hardware interface | |
| 92 | ++------------+------------+-------------------------------------+ |
| 93 | + |
| 94 | +Prerequisites |
| 95 | +------------- |
| 96 | + |
| 97 | +Espressif HAL requires WiFi and Bluetooth binary blobs in order work. Run the command |
| 98 | +below to retrieve those files. |
| 99 | + |
| 100 | +.. code-block:: console |
| 101 | +
|
| 102 | + west blobs fetch hal_espressif |
| 103 | +
|
| 104 | +.. note:: |
| 105 | + |
| 106 | + It is recommended running the command above after :file:`west update`. |
| 107 | + |
| 108 | +Building & Flashing |
| 109 | +------------------- |
| 110 | + |
| 111 | +Build and flash applications as usual (see :ref:`build_an_application` and |
| 112 | +:ref:`application_run` for more details). |
| 113 | + |
| 114 | +.. zephyr-app-commands:: |
| 115 | + :zephyr-app: samples/hello_world |
| 116 | + :board: esp32s3_devkitm |
| 117 | + :goals: build |
| 118 | + |
| 119 | +The usual ``flash`` target will work with the ``esp32s3_devkitm`` board |
| 120 | +configuration. Here is an example for the :ref:`hello_world` |
| 121 | +application. |
| 122 | + |
| 123 | +.. zephyr-app-commands:: |
| 124 | + :zephyr-app: samples/hello_world |
| 125 | + :board: esp32s3_devkitm |
| 126 | + :goals: flash |
| 127 | + |
| 128 | +Open the serial monitor using the following command: |
| 129 | + |
| 130 | +.. code-block:: shell |
| 131 | +
|
| 132 | + west espressif monitor |
| 133 | +
|
| 134 | +After the board has automatically reset and booted, you should see the following |
| 135 | +message in the monitor: |
| 136 | + |
| 137 | +.. code-block:: console |
| 138 | +
|
| 139 | + ***** Booting Zephyr OS vx.x.x-xxx-gxxxxxxxxxxxx ***** |
| 140 | + Hello World! esp32s3_devkitm |
| 141 | +
|
| 142 | +Debugging |
| 143 | +--------- |
| 144 | + |
| 145 | +As with much custom hardware, the ESP32 modules require patches to |
| 146 | +OpenOCD that are not upstreamed yet. Espressif maintains their own fork of |
| 147 | +the project. The custom OpenOCD can be obtained at `OpenOCD ESP32`_ |
| 148 | + |
| 149 | +The Zephyr SDK uses a bundled version of OpenOCD by default. You can overwrite that behavior by adding the |
| 150 | +``-DOPENOCD=<path/to/bin/openocd> -DOPENOCD_DEFAULT_PATH=<path/to/openocd/share/openocd/scripts>`` |
| 151 | +parameter when building. |
| 152 | + |
| 153 | +Here is an example for building the :ref:`hello_world` application. |
| 154 | + |
| 155 | +.. zephyr-app-commands:: |
| 156 | + :zephyr-app: samples/hello_world |
| 157 | + :board: esp32s3_devkitm |
| 158 | + :goals: build flash |
| 159 | + :gen-args: -DOPENOCD=<path/to/bin/openocd> -DOPENOCD_DEFAULT_PATH=<path/to/openocd/share/openocd/scripts> |
| 160 | + |
| 161 | +You can debug an application in the usual way. Here is an example for the :ref:`hello_world` application. |
| 162 | + |
| 163 | +.. zephyr-app-commands:: |
| 164 | + :zephyr-app: samples/hello_world |
| 165 | + :board: esp32s3_devkitm |
| 166 | + :goals: debug |
| 167 | + |
| 168 | +References |
| 169 | +********** |
| 170 | + |
| 171 | +.. _`ESP32-S3 DevKitM`: https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitm-1.html |
| 172 | +.. _`ESP32-S3 Datasheet`: https://www.espressif.com/sites/default/files/documentation/esp32-s3-mini-1_mini-1u_datasheet_en.pdf |
| 173 | +.. _`ESP32 Technical Reference Manual`: https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_en.pdf |
| 174 | +.. _`JTAG debugging for ESP32-S3`: https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/jtag-debugging/ |
| 175 | +.. _`OpenOCD ESP32`: https://github.com/espressif/openocd-esp32/releases |
0 commit comments