This is an automated email from the ASF dual-hosted git repository. cederom pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit a8495b118c0b83c27e99998858a74232398ca9c2 Author: Tiago Medicci Serrano <[email protected]> AuthorDate: Fri Mar 6 09:11:52 2026 -0300 Documentation: Add documentation for ESP32-P4 and Function-EV-Board This commit adds documentation entries for ESP32-P4 chip and its board (ESP32-P4 Function-EV-Board). Signed-off-by: Tiago Medicci Serrano <[email protected]> --- ...esp32-p4-function-ev-board-isometric_v1.5.2.png | Bin 0 -> 494986 bytes .../boards/esp32p4-function-ev-board/index.rst | 321 ++++++++++++++++++++ Documentation/platforms/risc-v/esp32p4/index.rst | 330 +++++++++++++++++++++ 3 files changed, 651 insertions(+) diff --git a/Documentation/platforms/risc-v/esp32p4/boards/esp32p4-function-ev-board/esp32-p4-function-ev-board-isometric_v1.5.2.png b/Documentation/platforms/risc-v/esp32p4/boards/esp32p4-function-ev-board/esp32-p4-function-ev-board-isometric_v1.5.2.png new file mode 100644 index 00000000000..601895eef52 Binary files /dev/null and b/Documentation/platforms/risc-v/esp32p4/boards/esp32p4-function-ev-board/esp32-p4-function-ev-board-isometric_v1.5.2.png differ diff --git a/Documentation/platforms/risc-v/esp32p4/boards/esp32p4-function-ev-board/index.rst b/Documentation/platforms/risc-v/esp32p4/boards/esp32p4-function-ev-board/index.rst new file mode 100644 index 00000000000..0a3b0555a47 --- /dev/null +++ b/Documentation/platforms/risc-v/esp32p4/boards/esp32p4-function-ev-board/index.rst @@ -0,0 +1,321 @@ +========================== +ESP32-P4-Function-EV-Board +========================== + +.. tags:: chip:esp32p4, arch:risc-v, vendor:espressif + +.. figure:: esp32-p4-function-ev-board-isometric_v1.5.2.png + :align: center + :alt: ESP32-P4-Function-EV-Board v1.5.2 + + ESP32-P4-Function-EV-Board v1.5.2 + +ESP32-P4-Function-EV-Board is a multimedia development board based on the +ESP32-P4 chip. The board pairs ESP32-P4 with external peripherals that showcase +its rich feature set, such as USB 2.0, MIPI-CSI/DSI, an H.264 encoder, audio +codec, and a 7-inch capacitive touch LCD with a resolution of 1024 x 600. + +Additionally, the board integrates a 2.4 GHz Wi‑Fi 6 and Bluetooth LE module +(``ESP32-C6-MINI-1``) for wireless connectivity. Most I/O pins are broken out to +pin headers for easy interfacing, allowing rapid prototyping for applications such +as smart displays, network cameras, and audio devices. + +The board is available in two hardware revisions: + +* **v1.5.2** (current): replaces the external CP2102N USB-to-UART bridge with + the ESP32-P4's built-in USB Serial/JTAG interface, and adds a dedicated + USB Full-speed port. This is the recommended revision for new designs. +* **v1.4** (legacy): uses a CP2102N USB-to-UART bridge chip connected to + UART0 (GPIO37/GPIO38) for flashing and serial debugging. + +For full board details refer to the official user guides: + +* `ESP32-P4-Function-EV-Board v1.5.2 User Guide <https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/user_guide.html>`_ (current) +* `ESP32-P4-Function-EV-Board v1.4 User Guide <https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/user_guide_v1.4.html>`_ (legacy) + +Features +======== + +* Based on ESP32-P4 SoC (RISC-V), featuring powerful image and voice processing +* In-package PSRAM (16 MB or 32 MB depending on chip variant) +* Rich multimedia I/O: USB 2.0, MIPI-CSI/DSI, H.264 encoder +* 7" 1024x600 capacitive touch LCD (via adapter board) +* On-board audio path: ES8311 codec + NS4150B audio power amplifier +* On-board microphone and speaker connector (up to 3 W into 4 Ω) +* Expansion header with the majority of GPIOs broken out (header ``J1``) +* External wireless module: ``ESP32-C6-MINI-1`` providing Wi‑Fi 6 and BLE +* Multiple USB-C ports: USB 2.0 OTG High-Speed, USB Full-speed (v1.5.2) or + USB Power-in (v1.4), and USB Serial/JTAG (v1.5.2) or USB-to-UART via + CP2102N (v1.4) for flashing and debug + +.. note:: + Wireless connectivity is provided by the on-board ``ESP32-C6-MINI-1`` module. + The ESP32-P4 itself does not integrate Wi‑Fi/BLE radios. + +Buttons and LEDs +================ + +Board Buttons +------------- + +* ``BOOT`` button: controls boot mode on reset; available for software input after boot. +* ``RST`` button: resets the board (chip enable / reset line), not software-controlled. + +Board LEDs +---------- + +* A power indicator LED may be present depending on hardware revision. +* No dedicated user-programmable LED is provided on the core board; LCD backlight is PWM-controlled instead (see below). + +Display and Camera +================== + +The LCD adapter connects to the ESP32-P4 MIPI DSI connector (J3 on adapter). +Default control pins on the EV board are: + +* ``GPIO27``: LCD Reset (``RST_LCD``) +* ``GPIO26``: LCD Backlight PWM (``PWM``) + +Connection summary (refer to the user guide for images and full directions): + +* LCD adapter ``J3`` header → EV-Board MIPI DSI connector (ribbon cable in reverse direction) +* LCD adapter ``RST_LCD`` (``J6``) → ``GPIO27`` (header ``J1``) +* LCD adapter ``PWM`` (``J6``) → ``GPIO26`` (header ``J1``) +* LCD adapter power: via its USB on ``J1`` or by wiring 5V/GND from the EV-Board + +The camera adapter connects to the MIPI CSI connector (ribbon cable in forward direction). + +Pin Mapping +=========== + +Most ESP32-P4 GPIOs are exposed on the header block ``J1``. The EV-Board user +guide documents the full pinout and header numbering; see the "Header Block" +tables in the user guide for details. Selected defaults used on this board: + +===== =========================== ============================================ +Pin Signal/Function Notes +===== =========================== ============================================ +26 PWM (LCD backlight) Default backlight control +27 RST_LCD (LCD reset) Default LCD reset control +37 U0TXD Default UART0 TX exposed on header +38 U0RXD Default UART0 RX exposed on header +===== =========================== ============================================ + +Power Supply +============ + +The board can be powered via any of the USB Type‑C ports. The available ports +differ by hardware revision: + +* **v1.5.2**: USB 2.0 Type-C Port (OTG High-Speed), USB Full-speed Port, or + USB Serial/JTAG Port. +* **v1.4**: USB 2.0 Type-C Port (OTG High-Speed), USB Power-in Port, or + USB-to-UART Port (CP2102N bridge). + +If the debug cable cannot provide enough current, use a separate power adapter +connected to any available USB‑C port. + +Installation +============ + +Follow the ESP32-P4 chip documentation for toolchain setup and required tools +(:doc:`/platforms/risc-v/esp32p4/index`). In summary: + +* Install a RISC‑V GCC toolchain (e.g., xPack riscv-none-elf-gcc) +* Install ``esptool.py`` (``pipx install esptool`` recommended or use a venv) +* Optionally, set up ``openocd-esp32`` for JTAG debugging + +Building NuttX +============== + +All configurations can be selected using the board identifier with the NuttX build +tools. The basic shell configuration: + +.. code-block:: console + + $ ./tools/configure.sh esp32p4-function-ev-board:nsh + $ make -j$(nproc) + +Flashing +======== + +Use the standard flashing flow. Replace ``<port>`` with the serial device exposed +by the board: + +* **v1.5.2**: the USB Serial/JTAG port creates a CDC ACM device, typically + ``/dev/ttyACM0``. Please note that most of the configs use UART0 (GPIO37/GPIO38) + as the serial console (except for `usbconsole`). For UART0-based terminal, an external + USB-to-UART bridge is required to be attached to UART0 port (GPIO37/GPIO38) pins and the + board requires to be manually set to download mode by pressing the BOOT button and then + the RST button (releasing the RST before the BOOT button). +* **v1.4**: the on-board CP2102N USB-to-UART bridge creates a USB-serial device, typically + ``/dev/ttyUSB0``. + + +Connect the appropriate USB‑C port and run: + +.. code-block:: console + + $ make -j$(nproc) flash ESPTOOL_PORT=<port> ESPTOOL_BINDIR=./ + +After flashing, connect a serial console at 115200 8N1 to interact with NSH. + +Configurations +============== + +All of the configurations presented below can be tested by running the following commands:: + + $ ./tools/configure.sh esp32p4-function-ev-board:<config_name> + $ make -j + +Where ``<config_name>`` is one of the names listed below (e.g., ``nsh``, ``adc``). +Then use a serial console terminal like ``picocom`` configured to 115200 8N1. + +adc +--- + +Enables the ADC driver. ADC unit(s) are registered (``/dev/adc0`` as ADC1). +Attenuation, mode, and channel set can be adjusted in ``ADC Configuration``. + +bmp180 +------ + +Enables the BMP180 pressure sensor over I2C. Use the ``bmp180`` app to read samples. + +buttons +------- + +Demonstrates the buttons subsystem. Run ``buttons`` and press the board's BOOT button +to see samples appearing. + +capture +------- + +Enables the capture driver and the capture example to measure duty cycle/frequency +of an external signal. + +crypto +------ + +Enables cryptographic hardware support for SHA algorithms and a ``/dev/crypto`` node. + +efuse +----- + +Enables the eFuse driver (supports virtual eFuses). Access via ``/dev/efuse``. + +gpio +---- + +Tests the GPIO driver. Provides examples for output control and edge-triggered interrupts. + +i2c +--- + +Enables I2C utilities. ``i2c dev 0x00 0x7f`` can scan the bus. + +i2schar +------- + +Enables the I2S character device and ``i2schar`` example for TX/RX testing over I2S0. + +motor +----- + +Enables the MCPWM peripheral for brushed DC motor control (``/dev/motor0``). + +nsh +--- + +Basic configuration to run the NuttShell (NSH). + +ostest +------ + +Runs OS tests from ``apps/testing/ostest``. + +pwm +--- + +Demonstrates PWM via LEDC. The ``pwm`` app toggles output with default frequency/duty. + +qencoder +-------- + +Enables Quadrature Encoder support via PCNT. The ``qe`` sample reads pulses on the configured pins. + +random +------ + +Demonstrates the hardware RNG. + +rmt +--- + +Configures an RMT TX/RX pair and the ``rmtchar`` example. Also includes ``ws2812`` for addressable LEDs. + +rtc +--- + +Demonstrates RTC alarms via the ``alarm`` app. + +sdm +--- + +Enables Sigma-Delta Modulation (SDM) driver for LED dimming/simple DAC; see ``dac`` test. + +spi +--- + +Enables SPI master driver. Loop MOSI↔MISO and run ``spi exch -b 2 "AB"`` to verify. + +spiflash +-------- + +Tests the external SPI flash via SPI1. Defaults to SmartFS; see ``mksmartfs``/``mount`` instructions. + +spislv +------ + +Enables SPI2 Slave mode for testing host-to-device transactions. + +temperature_sensor +------------------ + +Enables the internal temperature sensor and related character device/uORB options. + +tickless +-------- + +Enables tickless scheduling for reduced idle power. + +timers +------ + +Demonstrates general-purpose timers via the ``timer`` example. + +twai +---- + +Enables the Two-Wire Automotive Interface (CAN/TWAI). Loopback testing is available via Kconfig. + +usbconsole +---------- + +Tests the USB Serial/JTAG console. On v1.5.2 this uses the ESP32-P4's built-in +USB Serial/JTAG peripheral exposed on the dedicated USB Serial/JTAG port +(``/dev/ttyACM0``). +On v1.4, an external cable is required to be attached to USB Serial/JTAG port (GPIO24/GPIO25). + +watchdog +-------- + +Demonstrates MWDT/RWDT watchdog timers via the ``wdog`` app. + +Related Documentation +===================== + +* User Guide (current): `ESP32-P4-Function-EV-Board v1.5.2 <https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/user_guide.html>`_ +* User Guide (legacy): `ESP32-P4-Function-EV-Board v1.4 <https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/user_guide_v1.4.html>`_ +* ESP32-P4 Product Overview: `ESP32-P4 Product Overview <https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32p4/product-overview.html>`_ +* ESP32-P4 TRM: `ESP32-P4 Technical Reference Manual (v1.3) <https://documentation.espressif.com/esp32-p4-chip-revision-v1.3_technical_reference_manual_en.pdf>`_ diff --git a/Documentation/platforms/risc-v/esp32p4/index.rst b/Documentation/platforms/risc-v/esp32p4/index.rst new file mode 100644 index 00000000000..f8bac1e7439 --- /dev/null +++ b/Documentation/platforms/risc-v/esp32p4/index.rst @@ -0,0 +1,330 @@ +================== +Espressif ESP32-P4 +================== + +.. tags:: chip:esp32p4, arch:risc-v, vendor:espressif + +The ESP32-P4 is a high-performance, highly integrated SoC featuring RISC-V +processors, rich multimedia capabilities, and abundant peripherals. It targets +applications that demand efficient power usage, compact design, security, high +performance, and reliability. + +Key highlights include: + +* RISC-V 32-bit processors + * Dual-core High Performance (HP) running at 360 MHz + * Low Power core (LP) at 40 MHz +* Powerful image and voice processing capability +* In-package PSRAM (16 MB or 32 MB depending on the chip variant) +* 55 GPIOs and rich peripheral set +* Additional multimedia and I/O features commonly used on ESP32-P4 based designs, such as USB 2.0, MIPI-CSI/DSI, and H.264 encoder + +Typical application scenarios include smart home, industrial automation, audio devices, +IoT sensor hubs, data loggers, video streaming cameras, USB devices, and speech/image +recognition systems. + +References: see the ESP Hardware Design Guidelines for ESP32-P4 and the Technical +Reference Manual for detailed SoC architecture, memory map, and peripheral +descriptions. + +* Product overview: `ESP32-P4 Product Overview <https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32p4/product-overview.html>`_ +* Datasheet: `ESP32-P4 Datasheet (v1.3) <https://documentation.espressif.com/esp32-p4-chip-revision-v1.3_datasheet_en.pdf>`_ +* Technical Reference Manual: `ESP32-P4 TRM (v1.3) <https://documentation.espressif.com/esp32-p4-chip-revision-v1.3_technical_reference_manual_en.pdf>`_ + +ESP32-P4 Toolchain +================== + +A generic RISC-V toolchain can be used to build ESP32-P4 projects. It's recommended +to use the same toolchain version used by NuttX CI for RISC-V. +Please refer to the Docker +`container <https://github.com/apache/nuttx/tree/master/tools/ci/docker/linux/Dockerfile>`_ +and check for the current compiler version being used. For instance: + +.. code-block:: + + ############################################################################### + # Build image for tool required by RISCV builds + ############################################################################### + FROM nuttx-toolchain-base AS nuttx-toolchain-riscv + # Download the latest RISCV GCC toolchain prebuilt by xPack + RUN mkdir -p riscv-none-elf-gcc && \ + curl -s -L "https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v14.2.0-3/xpack-riscv-none-elf-gcc-14.2.0-3-linux-x64.tar.gz" \ + | tar -C riscv-none-elf-gcc --strip-components 1 -xz + +Installing +---------- + +First, create a directory to hold the toolchain: + +.. code-block:: console + + $ mkdir -p /path/to/your/toolchain/riscv-none-elf-gcc + +Download and extract the recommended toolchain (example uses xPack GCC): + +.. code-block:: console + + $ curl -s -L "https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v14.2.0-3/xpack-riscv-none-elf-gcc-14.2.0-3-linux-x64.tar.gz" \ + | tar -C /path/to/your/toolchain/riscv-none-elf-gcc --strip-components 1 -xz + +Add the toolchain to your ``PATH``: + +.. code-block:: console + + $ echo "export PATH=/path/to/your/toolchain/riscv-none-elf-gcc/bin:$PATH" >> ~/.bashrc + +You can edit your shell's rc files if you don't use bash. + +Building and flashing NuttX +=========================== + +Installing esptool +------------------ + +First, make sure that ``esptool.py`` is installed and up-to-date. +This tool is used to convert the ELF to an ESP image and to flash the image into the board. + +It can be installed with: ``pip install esptool``. + +.. warning:: + Installing ``esptool.py`` may require a Python virtual environment on newer systems. + If the ``pip install`` command is blocked by an externally-managed environment policy, + consider using a virtual environment (``python3 -m venv``) or a tool like ``pipx``. + +Bootloader and partitions +------------------------- + +NuttX supports booting ESP SoCs directly using "Simple Boot". Depending on future +requirements, an externally-built 2nd stage bootloader (e.g., MCUboot) may also be +used. Refer to board-specific documentation for the selected boot method and +partitioning. + +Building and Flashing +--------------------- + +Building and flashing are board-specific. Once an ESP32-P4 board is selected via +``./tools/configure.sh``, in general you can build and flash with: + +.. code-block:: console + + $ make -j$(nproc) + $ make -j$(nproc) flash ESPTOOL_PORT=<port> ESPTOOL_BINDIR=./ + +Where ``<port>`` is the serial/USB port connected to your board. + +Please check `Supported Boards`_ for the actual commands. + +Debugging +========= + +Debugging with ``openocd`` and ``gdb`` +-------------------------------------- + +Espressif uses a specific version of OpenOCD to support ESP chips: ``openocd-esp32``. +Please check `Building OpenOCD from Sources <https://docs.espressif.com/projects/esp-idf/en/stable/api-guides/jtag-debugging/index.html#jtag-debugging-building-openocd>`_ +for more information on how to build OpenOCD. + +ESP32-P4 integrates a USB-to-JTAG adapter, so no external JTAG adapter is necessary. + +OpenOCD can then be used:: + + openocd -s <tcl_scripts_path> -c 'set ESP_RTOS hwthread; set ESP_ONLYCPU 1' -f board/esp32p4-builtin.cfg -c 'init; reset halt; esp appimage_offset 0x2000' + +.. note:: + - ``appimage_offset`` should be set to ``0x2000`` when ``Simple Boot`` is used. + - ``-s <tcl_scripts_path>`` defines the path to the OpenOCD scripts. Usually set to `tcl` if running openocd from its source directory. + It can be omitted if `openocd-esp32` was installed in the system with `sudo make install`. + +Once OpenOCD is running, GDB can be used to connect to the device and debug the running application:: + + riscv-none-elf-gdb -x gdbinit nuttx + +whereas the content of the ``gdbinit`` file is:: + + target remote :3333 + set remote hardware-watchpoint-limit 2 + mon reset halt + flushregs + monitor reset halt + thb nsh_main + c + +.. note:: ``nuttx`` is the ELF file generated by the build process. Please note that ``CONFIG_DEBUG_SYMBOLS`` must be enabled in the ``menuconfig``. + +Please refer to :doc:`/quickstart/debugging` for more information about debugging techniques. + +Stack Dump and Backtrace Dump +----------------------------- + +NuttX can dump the stack of a task and produce backtraces to aid debugging, +especially when diagnosing exceptions and crashes. + +Enable the following options to use this feature: ``CONFIG_SCHED_BACKTRACE`` +and ``CONFIG_DEBUG_SYMBOLS``; optionally enable ``CONFIG_ALLSYMS`` to have +symbolized backtraces at runtime (at the expense of larger binary size). + +When ``CONFIG_ALLSYMS`` is not enabled, use NuttX's ``./tools/btdecode.sh`` tool to +translate addresses into symbols by providing the captured console log and the +ELF file. + +Example - Crash Dump +^^^^^^^^^^^^^^^^^^^^ + +A typical crash dump, caused by an illegal load with ``CONFIG_SCHED_BACKTRACE`` and +``CONFIG_DEBUG_SYMBOLS`` enabled, is shown below:: + + riscv_exception: EXCEPTION: Store/AMO access fault. MCAUSE: 00000007, EPC: 40017174, MTVAL: 00000000 + riscv_exception: PANIC!!! Exception = 00000007 + dump_assert_info: Current Version: NuttX 10.4.0 baf7d9dd3b-dirty Oct 24 2025 15:54:40 risc-v + dump_assert_info: Assertion failed panic: at file: common/riscv_exception.c:134 task: backtrace process: backtrace 0x4001712e + up_dump_register: EPC: 40017174 + up_dump_register: A0: 0000005a A1: 00000000 A2: 00000002 A3: 00000004 + up_dump_register: A4: 7ffffffe A5: 00000000 A6: 7fffffff A7: 00000000 + up_dump_register: T0: 4fc1a058 T1: 0000000f T2: ffffffff T3: 00000000 + up_dump_register: T4: 00000000 T5: 00000000 T6: 00000000 + up_dump_register: S0: 4ff0a776 S1: 4ff0a760 S2: 00000000 S3: 00000000 + up_dump_register: S4: 00000000 S5: 00000000 S6: 00000000 S7: 00000000 + up_dump_register: S8: 00000000 S9: 00000000 S10: 00000000 S11: 00000000 + up_dump_register: SP: 4ff0b710 FP: 4ff0a776 TP: 00000000 RA: 40017174 + dump_stackinfo: User Stack: + dump_stackinfo: base: 0x4ff0a780 + dump_stackinfo: size: 00004048 + dump_stackinfo: sp: 0x4ff0b710 + stack_dump: 0x4ff0b6f0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001880 + stack_dump: 0x4ff0b710: 00000000 4ff0a3b0 4001712e 400098f8 00000000 00000000 00000002 4ff0a760 + stack_dump: 0x4ff0b730: 00000000 00000000 00000000 400070c4 00000000 00000000 00000000 00000000 + stack_dump: 0x4ff0b750: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 + sched_dumpstack: backtrace| 2: 0x40017174 + dump_tasks: PID GROUP PRI POLICY TYPE NPX STATE EVENT SIGMASK STACKBASE STACKSIZE COMMAND + dump_tasks: ---- --- --- -------- ------- --- ------- ---------- ---------------- 0x4ff066c0 2048 irq + dump_task: 0 0 0 FIFO Kthread - Ready 0000000000000000 0x4ff08984 2032 Idle_Task + dump_task: 1 1 100 RR Task - Waiting Semaphore 0000000000000000 0x4ff09898 1992 nsh_main + dump_task: 2 2 255 RR Task - Running 0000000000000000 0x4ff0a780 4048 backtrace task + sched_dumpstack: backtrace| 0: 0x4000bb20 + sched_dumpstack: backtrace| 1: 0x4000c088 + sched_dumpstack: backtrace| 2: 0x40017174 + +The lines starting with ``sched_dumpstack`` show the backtrace of the tasks. By checking it, it is +possible to track the root cause of the crash. Saving this output to a file and using the ``btdecode.sh``:: + + ./tools/btdecode.sh esp32p4 backtrace.log + Backtrace for task 2: + 0x40017174: assert_on_task at backtrace_main.c:168 + (inlined by) backtrace_main at backtrace_main.c:204 + + Backtrace dump for all tasks: + + Backtrace for task 2: + 0x40017174: assert_on_task at backtrace_main.c:168 + (inlined by) backtrace_main at backtrace_main.c:204 + + Backtrace for task 1: + 0x4000c088: sys_call0 at syscall.h:161 + (inlined by) up_switch_context at riscv_switchcontext.c:83 + + Backtrace for task 0: + 0x4000bb20: up_idle at esp_idle.c:76 + +Peripheral Support +================== + +The following list indicates the state of peripherals' support in NuttX on +ESP32-P4 based on current Kconfig options and upstream support status. Refer to +board documentation for what is enabled by default. + +HP Peripherals +-------------- + +================= ======= ================================== +Peripheral Support NOTES +================= ======= ================================== +SPI Yes SPI2 master/slave; bitbang +I2C Yes +I2S Yes +ADC Yes +ISP No +PPA No +GPIO Yes Dedicated GPIO supported +UART Yes +Bit Scrambler No +SD/MMC Host No +H264 Encoder No +2D-DMA No +TWAI (CAN) Yes TWAI0/1 +Pulse Counter Yes Implemented as Quadrature Encoder +RMT Yes +USB Serial/JTAG Yes +JPEG Codec No +I3C No +GDMA Yes +SOC ETM No +USB 2.0 OTG No +Camera Interface No +MIPI CSI No +LED PWM Yes +MCPWM Yes Motor control and capture +Parallel IO No +LCD Interface No +MIPI DSI No +Timers Yes +Watchdog Yes MWDT0/1 and RWDT +Ethernet No +Brownout No +Debug Probe No +================= ======= ================================== + +LP Peripherals +-------------- + +================= ======= ================================== +Peripheral Support NOTES +================= ======= ================================== +LP SPI No +LP I2C No +LP I2S No +LP UART No +LP GPIO No +LP Timers No +LP ADC No +Temperature Yes Internal temperature sensor +Touch Sensor No +eFuse Yes Virtual eFuses supported +================= ======= ================================== + + +Security +-------- + +================= ======= ================================== +Peripheral Support NOTES +================= ======= ================================== +SHA Yes +RSA No +ECC No +HMAC No +TRNG No +ECDSA No +TEE No +APM No +AES No +Digital Signature No +Secure Boot No +XTS_AES No +4096-bit OTP No +PMP/PMA Mo +================= ======= ================================== + +.. note:: + The exact feature availability and default pin mapping depend on the board + and configuration. Consult the board documentation and the + :file:`arch/risc-v/src/common/espressif/Kconfig` for feature flags and + pin selections. + +Supported Boards +================ + +.. toctree:: + :glob: + :maxdepth: 1 + + boards/*/*
