소스 검색

rmt: update ir example to work with esp32s3 out of box

morris 4 년 전
부모
커밋
ed1fe1d5ba

+ 14 - 14
examples/peripherals/rmt/ir_protocols/README.md

@@ -1,3 +1,5 @@
+| Supported Targets | ESP32 | ESP32-S2 | ESP32-C3 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- |
 # IR Protocol Example
 # IR Protocol Example
 
 
 (See the README.md file in the upper level 'examples' directory for more information about examples.)
 (See the README.md file in the upper level 'examples' directory for more information about examples.)
@@ -12,31 +14,33 @@ The example supports building and parsing both normal and extended NEC/RC5 proto
 
 
 ### Hardware Required
 ### Hardware Required
 
 
-* A development board with ESP32 SoC (e.g. ESP32-DevKitC or ESP-WROVER-KIT)
+* A development board with supported SoC mentioned in the above `Supported Targets` table
 * An USB cable for power supply and programming
 * An USB cable for power supply and programming
 * A 5mm infrared LED (e.g. IR333C) used to transmit encoded IR signals
 * A 5mm infrared LED (e.g. IR333C) used to transmit encoded IR signals
 * An infrared receiver module (e.g. IRM-3638T), which integrates a demodulator and AGC circuit.
 * An infrared receiver module (e.g. IRM-3638T), which integrates a demodulator and AGC circuit.
 
 
 Example connection :
 Example connection :
 
 
-| ESP32    | IR333C | IRM-3638T |
-| -------- | ------ | --------- |
-| GPIO18   | Tx     | ×         |
-| GPIO19   | ×      | Rx        |
-| VCC 5V   | √      | ×         |
-| VCC 3.3V | ×      | √         |
-| GND      | GND    | GND       |
+| ESP chip                    | IR333C | IRM-3638T |
+| --------------------------- | ------ | --------- |
+| CONFIG_EXAMPLE_RMT_TX_GPIO  | Tx     | ×         |
+| CONFIG_EXAMPLE_RMT_RX_GPIO  | ×      | Rx        |
+| VCC 5V                      | √      | ×         |
+| VCC 3.3V                    | ×      | √         |
+| GND                         | GND    | GND       |
 
 
 
 
 ### Configure the Project
 ### Configure the Project
 
 
-Open the project configuration menu (`idf.py menuconfig`). 
+Open the project configuration menu (`idf.py menuconfig`).
 
 
 In the `Example Configuration` menu:
 In the `Example Configuration` menu:
 
 
 * Select the infrared protocol used in the example under `Infrared Protocol` option.
 * Select the infrared protocol used in the example under `Infrared Protocol` option.
 * Set the GPIO number used for transmitting the IR signal under `RMT TX GPIO` option.
 * Set the GPIO number used for transmitting the IR signal under `RMT TX GPIO` option.
 * Set the GPIO number used for receiving the demodulated IR signal under `RMT RX GPIO` option.
 * Set the GPIO number used for receiving the demodulated IR signal under `RMT RX GPIO` option.
+* Set the RMT TX channel number under `RMT TX Channel Number` option.
+* Set the RMT RX channel number under `RMT RX Channel Number` option.
 
 
 ### Build and Flash
 ### Build and Flash
 
 
@@ -44,11 +48,7 @@ Run `idf.py -p PORT flash monitor` to build, flash and monitor the project.
 
 
 (To exit the serial monitor, type ``Ctrl-]``.)
 (To exit the serial monitor, type ``Ctrl-]``.)
 
 
-See the Getting Started Guide for all the steps to configure and use the ESP-IDF to build projects.
-
-* [ESP-IDF Getting Started Guide on ESP32](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html)
-* [ESP-IDF Getting Started Guide on ESP32-S2](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html)
-* [ESP-IDF Getting Started Guide on ESP32-C3](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/get-started/index.html)
+See the [Getting Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html) for full steps to configure and use ESP-IDF to build projects.
 
 
 ## Example Output
 ## Example Output
 
 

+ 13 - 0
examples/peripherals/rmt/ir_protocols/main/Kconfig.projbuild

@@ -30,4 +30,17 @@ menu "Example Configuration"
         default 19
         default 19
         help
         help
             Set the GPIO number used for receiving the RMT signal.
             Set the GPIO number used for receiving the RMT signal.
+
+    config EXAMPLE_RMT_TX_CHANNEL
+        int "RMT TX Channel Number"
+        default 0
+        help
+            Set the RMT TX channel number.
+
+    config EXAMPLE_RMT_RX_CHANNEL
+        int "RMT RX Channel Number"
+        default 4 if IDF_TARGET_ESP32S3
+        default 2
+        help
+            Set the RMT RX channel number.
 endmenu
 endmenu

+ 2 - 2
examples/peripherals/rmt/ir_protocols/main/ir_protocols_main.c

@@ -17,8 +17,8 @@
 
 
 static const char *TAG = "example";
 static const char *TAG = "example";
 
 
-static rmt_channel_t example_tx_channel = RMT_CHANNEL_0;
-static rmt_channel_t example_rx_channel = RMT_CHANNEL_2;
+static rmt_channel_t example_tx_channel = CONFIG_EXAMPLE_RMT_TX_CHANNEL;
+static rmt_channel_t example_rx_channel = CONFIG_EXAMPLE_RMT_RX_CHANNEL;
 
 
 /**
 /**
  * @brief RMT Receive Task
  * @brief RMT Receive Task