examples: Fix UART examples to match the template

This commit is contained in:
Roland Dobai
2018-11-01 11:57:24 +01:00
parent 1b7a4758e3
commit 90a4e37acd
5 changed files with 263 additions and 60 deletions

View File

@@ -1,10 +1,20 @@
# UART Echo Example
This is an example which echoes any data it receives on UART1 back to the sender.
(See the README.md file in the upper level 'examples' directory for more information about examples.)
## Setup
This example demonstrates how to utilize UART interfaces of ESP32 by echoing back to the sender any data received on
UART1.
1. Connect an external serial interface to an ESP32 board. The external interface should have 3.3V outputs. You may use e.g. 3.3V compatible USB-to-serial dongle:
## How to use example
### Hardware Required
The example can be run on any ESP32 development board connected to a PC with a single USB cable for flashing and
monitoring. The external interface should have 3.3V outputs. You may use e.g. 3.3V compatible USB-to-Serial dongle.
### Setup the Hardware
Connect the external serial interface to the ESP32 board as follows.
| ESP32 Interface | #define | ESP32 Pin | External UART Pin |
| --- | --- | --- | --- |
@@ -12,25 +22,52 @@ This is an example which echoes any data it receives on UART1 back to the sender
| Receive Data (RxD) | ECHO_TEST_RXD | GPIO5 | TxD |
| Ground | n/a | GND | GND |
2. Compile and load the example to the ESP32 board
3. Refer to the example and set up a serial terminal program to the same settings as of UART1 in ESP32
4. Open the external serial interface in the terminal
5. When typing any character in the terminal you should see it echoed back
6. Verify if echo indeed comes from ESP32 by disconnecting either 'TxD' or 'RxD' pin. There should be no any echo once any pin is disconnected.
## Using a hardware flow control
This is an optional check to verify if the hardware flow control works. To set it up you need an external serial interface that has RTS and CTS signals.
1. Connect the extra RTS/CTS signals as below
Optionally, you can set-up and use a serial interface that has RTS and CTS signals in order to verify that the
hardware control flow works. Connect the extra signals according to the following table, configure both extra pins in
the example code by replacing existing `UART_PIN_NO_CHANGE` macros with the appropriate pin numbers and configure
UART1 driver to use the hardware flow control by setting `.flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS` and adding
`.rx_flow_ctrl_thresh = 122`.
| ESP32 Interface | #define | ESP32 Pin | External UART Pin |
| --- | --- | --- | --- |
| Request to Send (RTS) | ECHO_TEST_RTS | GPIO18 | CTS |
| Clear to Send (CTS) | ECHO_TEST_CTS | GPIO19 | RTS |
2. Configure both extra pins in the example code by replacing existing `UART_PIN_NO_CHANGE` macros with the above pin numbers
3. Configure UART1 driver to use the hardware flow control by setting `.flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS` and adding `.rx_flow_ctrl_thresh = 122`
4. Repeat tests described in 'Setup' above starting from step 3
### Configure the project
See the README.md file in the upper level 'examples' directory for more information about examples.
```
make menuconfig
```
or
```
idf.py menuconfig
```
* Set serial port under Serial Flasher Options.
### Build and Flash
Build the project and flash it to the board, then run monitor tool to view serial output:
```
make -j4 flash monitor
```
or
```
idf.py flash monitor
```
(To exit the serial monitor, type ``Ctrl-]``.)
See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
## Example Output
Type some characters in the terminal connected to the external serial interface. As result you should see echo in the
terminal which is used for flashing and monitoring. You can verify if the echo indeed comes from ESP32 by
disconnecting either `TxD` or `RxD` pin: no characters will appear when typing.
## Troubleshooting
You are not supposed to see the echo in the terminal which is used for flashing and monitoring, but in the other one
which is connected to UART1.