Documentation: Add entry about the RMT peripheral for ESP32 family

Add documentation about the RMT peripheral (and using it to drive
WS2812 addressable RGB LEDs) for ESP32-S2, ESP32-S3, ESP32-C3,
ESP32-C6 and ESP32-H2.
This commit is contained in:
Tiago Medicci Serrano 2024-02-09 11:00:06 -03:00 committed by Xiang Xiao
parent 1d645318cc
commit d453f94f63
10 changed files with 155 additions and 0 deletions

View File

@ -105,6 +105,35 @@ To test it, just execute the ``pwm`` application::
pwm_main: starting output with frequency: 10000 duty: 00008000
pwm_main: stopping output
rmt
---
This configuration configures the transmitter and the receiver of the
Remote Control Transceiver (RMT) peripheral on the ESP32-C3 using GPIOs 8
and 2, respectively. The RMT peripheral is better explained
`here <https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-reference/peripherals/rmt.html>`__,
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by ``rmt_item32_t`` in the driver:
.. figure:: rmt_symbol.png
:align: center
The example ``rmtchar`` can be used to test the RMT peripheral. Connecting
these pins externally to each other will make the transmitter send RMT items
and demonstrates the usage of the RMT peripheral::
nsh> rmtchar
**WS2812 addressable RGB LEDs**
This same configuration enables the usage of the RMT peripheral and the example
``ws2812`` to drive addressable RGB LEDs::
nsh> ws2812
Please note that this board contains an on-board WS2812 LED connected to GPIO8
and, by default, this config configures the RMT transmitter in the same pin.
rtc
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -140,6 +140,35 @@ To test it, just execute the ``pwm`` application::
pwm_main: starting output with frequency: 10000 duty: 00008000
pwm_main: stopping output
rmt
---
This configuration configures the transmitter and the receiver of the
Remote Control Transceiver (RMT) peripheral on the ESP32-C6 using GPIOs 8
and 2, respectively. The RMT peripheral is better explained
`here <https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/rmt.html>`__,
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by ``rmt_item32_t`` in the driver:
.. figure:: rmt_symbol.png
:align: center
The example ``rmtchar`` can be used to test the RMT peripheral. Connecting
these pins externally to each other will make the transmitter send RMT items
and demonstrates the usage of the RMT peripheral::
nsh> rmtchar
**WS2812 addressable RGB LEDs**
This same configuration enables the usage of the RMT peripheral and the example
``ws2812`` to drive addressable RGB LEDs::
nsh> ws2812
Please note that this board contains an on-board WS2812 LED connected to GPIO8
and, by default, this config configures the RMT transmitter in the same pin.
rtc
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -139,6 +139,35 @@ To test it, just execute the ``pwm`` application::
pwm_main: starting output with frequency: 10000 duty: 00008000
pwm_main: stopping output
rmt
---
This configuration configures the transmitter and the receiver of the
Remote Control Transceiver (RMT) peripheral on the ESP32-H2 using GPIOs 8
and 2, respectively. The RMT peripheral is better explained
`here <https://docs.espressif.com/projects/esp-idf/en/latest/esp32h2/api-reference/peripherals/rmt.html>`__,
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by ``rmt_item32_t`` in the driver:
.. figure:: rmt_symbol.png
:align: center
The example ``rmtchar`` can be used to test the RMT peripheral. Connecting
these pins externally to each other will make the transmitter send RMT items
and demonstrates the usage of the RMT peripheral::
nsh> rmtchar
**WS2812 addressable RGB LEDs**
This same configuration enables the usage of the RMT peripheral and the example
``ws2812`` to drive addressable RGB LEDs::
nsh> ws2812
Please note that this board contains an on-board WS2812 LED connected to GPIO8
and, by default, this config configures the RMT transmitter in the same pin.
rtc
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -335,6 +335,35 @@ To test it, just run ``rand`` to get 32 randomly generated bytes::
0000 98 b9 66 a2 a2 c0 a2 ae 09 70 93 d1 b5 91 86 c8 ..f......p......
0010 8f 0e 0b 04 29 64 21 72 01 92 7c a2 27 60 6f 90 ....)d!r..|.'`o.
rmt
---
This configuration configures the transmitter and the receiver of the
Remote Control Transceiver (RMT) peripheral on the ESP32-S2 using GPIOs 18
and 2, respectively. The RMT peripheral is better explained
`here <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/rmt.html>`__,
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by ``rmt_item32_t`` in the driver:
.. figure:: rmt_symbol.png
:align: center
The example ``rmtchar`` can be used to test the RMT peripheral. Connecting
these pins externally to each other will make the transmitter send RMT items
and demonstrates the usage of the RMT peripheral::
nsh> rmtchar
**WS2812 addressable RGB LEDs**
This same configuration enables the usage of the RMT peripheral and the example
``ws2812`` to drive addressable RGB LEDs::
nsh> ws2812
Please note that this board contains an on-board WS2812 LED connected to GPIO18
and, by default, this config configures the RMT transmitter in the same pin.
rtc
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -46,6 +46,14 @@ Board LEDs
There are several on-board LEDs for that indicate the presence of power
and USB activity. None of these are available for use by software.
Another WS2812 LED is connected to GPIO48 or GPIO38 depending on the boards
version.
.. note:: Both the initial and v1.1 versions of ESP32-S3-DevKitC-1 are
available on the market. The main difference lies in the GPIO assignment
for the RGB LED: the initial version (1.0) uses GPIO48, whereas v1.1 uses
GPIO38. The initial version is selected by default, but one can select
``CONFIG_ESP32S3_DEVKITC_1_V11`` through ``make menuconfig``.
I2S
===
@ -372,6 +380,37 @@ To test it, just run ``rand`` to get 32 randomly generated bytes::
0000 98 b9 66 a2 a2 c0 a2 ae 09 70 93 d1 b5 91 86 c8 ..f......p......
0010 8f 0e 0b 04 29 64 21 72 01 92 7c a2 27 60 6f 90 ....)d!r..|.'`o.
rmt
---
This configuration configures the transmitter and the receiver of the
Remote Control Transceiver (RMT) peripheral on the ESP32-S3 using GPIOs 48
(or 38, depending on the board version) and 2, respectively.
The RMT peripheral is better explained
`here <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/rmt.html>`__,
in the ESP-IDF documentation. The minimal data unit in the frame is called the
RMT symbol, which is represented by ``rmt_item32_t`` in the driver:
.. figure:: rmt_symbol.png
:align: center
The example ``rmtchar`` can be used to test the RMT peripheral. Connecting
these pins externally to each other will make the transmitter send RMT items
and demonstrates the usage of the RMT peripheral::
nsh> rmtchar
**WS2812 addressable RGB LEDs**
This same configuration enables the usage of the RMT peripheral and the example
``ws2812`` to drive addressable RGB LEDs::
nsh> ws2812
Please note that this board contains an on-board WS2812 LED connected to GPIO48
(or GPIO38, depending on the board version) and, by default, this config
configures the RMT transmitter in the same pin.
rtc
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB