This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit ce9e298fa0b045dc1157638705d7a0b8a750c4d8 Author: Eren Terzioglu <[email protected]> AuthorDate: Mon Mar 18 10:37:52 2024 +0300 Docs/esp32c6: Add ESP32C6-DevKitM documentation --- .../esp32-c6-devkitm-1-isometric.png | Bin 0 -> 472294 bytes .../esp32-c6-devkitm-1-pin-layout.png | Bin 0 -> 363955 bytes .../esp32-c6-devkitm-1-v1-annotated-photo.png | Bin 0 -> 463973 bytes .../esp32-c6-devkitm-1-v1-block-diagram.png | Bin 0 -> 76304 bytes .../esp32c6/boards/esp32c6-devkitm/index.rst | 238 +++++++++++++++++++++ .../esp32c6/boards/esp32c6-devkitm/rmt_symbol.png | Bin 0 -> 1934 bytes 6 files changed, 238 insertions(+) diff --git a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-isometric.png b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-isometric.png new file mode 100644 index 0000000000..11cf41908f Binary files /dev/null and b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-isometric.png differ diff --git a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-pin-layout.png b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-pin-layout.png new file mode 100644 index 0000000000..b6e0255f31 Binary files /dev/null and b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-pin-layout.png differ diff --git a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-v1-annotated-photo.png b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-v1-annotated-photo.png new file mode 100644 index 0000000000..b9aab3de7d Binary files /dev/null and b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-v1-annotated-photo.png differ diff --git a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-v1-block-diagram.png b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-v1-block-diagram.png new file mode 100644 index 0000000000..57d5a29f15 Binary files /dev/null and b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/esp32-c6-devkitm-1-v1-block-diagram.png differ diff --git a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.rst b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.rst new file mode 100644 index 0000000000..6138b81931 --- /dev/null +++ b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.rst @@ -0,0 +1,238 @@ +================== +ESP32-C6-DevKitM-1 +================== + +ESP32-C6-DevKitM-1 is an entry-level development board based on ESP32-C6-MINI-1(U), +a general-purpose module with a 4 MB SPI flash. This board integrates complete Wi-Fi, +Bluetooth LE, Zigbee, and Thread functions. You can find the board schematic +`here <https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/_static/esp32-c6-devkitm-1/schematics/esp32-c6-devkitm-1-schematics.pdf>`_. + +Most of the I/O pins are broken out to the pin headers on both sides for easy interfacing. +Developers can either connect peripherals with jumper wires or mount ESP32-C6-DevKitM-1 on +a breadboard. + +.. figure:: esp32-c6-devkitm-1-isometric.png + :alt: ESP32-C6-DevKitM-1 Board Layout + :figclass: align-center + + ESP32-C6-DevKitM-1 Board Layout + +The block diagram below presents main components of the ESP32-C6-DevKitM-1. + +.. figure:: esp32-c6-devkitm-1-v1-block-diagram.png + :alt: ESP32-C6-DevKitM-1 Electrical Block Diagram + :figclass: align-center + + ESP32-C6-DevKitM-1 Electrical Block Diagram + +Hardware Components +------------------- + +.. figure:: esp32-c6-devkitm-1-v1-annotated-photo.png + :alt: ESP32-C6-DevKitM-1 Hardware Components + :figclass: align-center + + ESP32-C6-DevKitM-1 Hardware Components + +Buttons and LEDs +================ + +Board Buttons +-------------- +There are two buttons labeled Boot and RST. The RST button is not available +to software. It pulls the chip enable line that doubles as a reset line. + +The BOOT button is connected to IO9. On reset it is used as a strapping +pin to determine whether the chip boots normally or into the serial +bootloader. After reset, however, the BOOT button can be used for software +input. + +Board LEDs +---------- + +There is one on-board LED that indicates the presence of power. +Another WS2812 LED is connected to GPIO8 and is available for software. + +Current Measurement +=================== + +The J5 headers on the ESP32-C6-DevKitM-1 can be used for measuring the current +drawn by the ESP32-C6-MINI-1(U) module: + + - Remove the jumper: Power supply between the module and peripherals on the + board is cut off. To measure the module's current, connect the board with an + ammeter via J5 headers; + - Apply the jumper (factory default): Restore the board's normal functionality. + +.. note:: + When using 3V3 and GND pin headers to power the board, please remove the J5 jumper, + and connect an ammeter in series to the external circuit to measure the module's current. + +Pin Mapping +=========== + +.. figure:: esp32-c6-devkitm-1-pin-layout.png + :alt: ESP32-C6-DevKitM pin layout + :figclass: align-center + + ESP32-C6-DevKitM-1 Pin Layout + +Configurations +============== + +All of the configurations presented below can be tested by running the following commands:: + + $ ./tools/configure.sh esp32c6-devkitm:<config_name> + $ make flash ESPTOOL_PORT=/dev/ttyUSB0 -j + +Where <config_name> is the name of board configuration you want to use, i.e.: nsh, buttons, wifi... +Then use a serial console terminal like ``picocom`` configured to 115200 8N1. + +coremark +-------- + +This configuration sets the CoreMark benchmark up for running on the maximum +number of cores for this system. It also enables some optimization flags and +disables the NuttShell to get the best possible score. + +.. note:: As the NSH is disabled, the application will start as soon as the + system is turned on. + +gpio +---- + +This is a test for the GPIO driver. It uses GPIO1 and GPIO2 as outputs and +GPIO9 as an interrupt pin. + +At the nsh, we can turn the outputs on and off with the following:: + + nsh> gpio -o 1 /dev/gpio0 + nsh> gpio -o 1 /dev/gpio1 + + nsh> gpio -o 0 /dev/gpio0 + nsh> gpio -o 0 /dev/gpio1 + +We can use the interrupt pin to send a signal when the interrupt fires:: + + nsh> gpio -w 14 /dev/gpio2 + +The pin is configured as a rising edge interrupt, so after issuing the +above command, connect it to 3.3V. + +nsh +--- + +Basic configuration to run the NuttShell (nsh). + +ostest +------ + +This is the NuttX test at ``apps/testing/ostest`` that is run against all new +architecture ports to assure a correct implementation of the OS. + +pwm +--- + +This configuration demonstrates the use of PWM through a LED connected to GPIO8. +To test it, just execute the ``pwm`` application:: + + nsh> pwm + 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 +--- + +This configuration demonstrates the use of the RTC driver through alarms. +You can set an alarm, check its progress and receive a notification after it expires:: + + nsh> alarm 10 + alarm_daemon started + alarm_daemon: Running + Opening /dev/rtc0 + Alarm 0 set in 10 seconds + nsh> alarm -r + Opening /dev/rtc0 + Alarm 0 is active with 10 seconds to expiration + nsh> alarm_daemon: alarm 0 received + +spiflash +-------- + +This config tests the external SPI that comes with the ESP32-C6 module connected +through SPI1. + +By default a SmartFS file system is selected. +Once booted you can use the following commands to mount the file system:: + + nsh> mksmartfs /dev/smart0 + nsh> mount -t smartfs /dev/smart0 /mnt + +timer +----- + +This config test the general use purpose timers. It includes the 4 timers, +adds driver support, registers the timers as devices and includes the timer +example. + +To test it, just run the following:: + + nsh> timer -d /dev/timerx + +Where x in the timer instance. + +usbconsole +---------- + +This configuration tests the built-in USB-to-serial converter found in ESP32-C6. +``esptool`` can be used to check the version of the chip and if this feature is +supported. Running ``esptool.py -p <port> chip_id`` should have ``Chip is +ESP32-C6`` in its output. +When connecting the board a new device should appear, a ``/dev/ttyACMX`` on Linux +or a ``/dev/cu.usbmodemXXX`` om macOS. +This can be used to flash and monitor the device with the usual commands:: + + make download ESPTOOL_PORT=/dev/ttyACM0 + minicom -D /dev/ttyACM0 + +watchdog +-------- + +This configuration tests the watchdog timers. It includes the 1 MWDTS, +adds driver support, registers the WDTs as devices and includes the watchdog +example application. + +To test it, just run the following command:: + + nsh> wdog -i /dev/watchdogX + +Where X is the watchdog instance. diff --git a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/rmt_symbol.png b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/rmt_symbol.png new file mode 100644 index 0000000000..7f859d7c98 Binary files /dev/null and b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/rmt_symbol.png differ
