Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate UART/CDC in all SoC #6765

Open
SuGlider opened this issue May 17, 2022 · 5 comments
Open

Investigate UART/CDC in all SoC #6765

SuGlider opened this issue May 17, 2022 · 5 comments
Assignees
Labels
Area: Peripherals API Relates to peripheral's APIs. Status: Needs investigation We need to do some research before taking next steps on this issue

Comments

@SuGlider
Copy link
Collaborator

@SuGlider I've now tested ESP32 Arduino 2.0.3 with a number of ESP32 boards, using a benchmark that involves uploading a program of about 1400 characters to my uLisp interpreter and then running it. The results are as follows:

Board Upload using UART Upload using USB CDC Benchmark
Adafruit Feather ESP32 OK Not available 8.0 s
ESP32-S2-Soala-1 OK Not available 5.7 s
Adafruit Feather ESP32-S2 Not available OK 2.7 s
Adafruit QT-PY ESP32-S2 Not available OK 2.7 s
Unexpected Maker Feather S2 Not available OK 2.7 s
ESP32-S3-DevKitM-1 OK Serial hangs up 6.1 s (USB)
ESP32-C3-DevKit1 OK Not available 7.8 s
Adafruit QT-PY ESP32-C3 Not available Serial hangs up ??

Key observations:

  • Serial using UART works fine on all boards that support it.
  • Serial using USB CDC works fine on ESP32-S2, fails on ESP32-S3 and ESP32-C3.
  • Benchmark seems to run much slower if I've connected to the MCU via UART (eg 5.7s) compared to connecting to the same MCU via USB CDC (2.7s).

Any thoughts about why USB CDC is now OK on ESP32-S2 but not ESP32-S3 or ESP32-C3?

Also, any idea where there's such a difference in performance? My benchmark isn't making use of serial, except to print the result at the end.

Originally posted by @technoblogy in #6221 (comment)

@SuGlider SuGlider self-assigned this May 17, 2022
@SuGlider
Copy link
Collaborator Author

@technoblogy
Let's continue it here.

@technoblogy
Copy link

Thanks.

@VojtechBartoska VojtechBartoska modified the milestone: 2.1.0 May 18, 2022
@VojtechBartoska VojtechBartoska added Area: Peripherals API Relates to peripheral's APIs. Status: Needs investigation We need to do some research before taking next steps on this issue labels May 18, 2022
@egnor
Copy link
Contributor

egnor commented Jul 14, 2022

probably unrelated? espressif/esp-idf#9318 (at a guess, that bug is user-app-specific, this bug is Arduino-runtime-specific)

@SuGlider
Copy link
Collaborator Author

Thanks @egnor for the reference. I'll take it into consideration for the S3 USB Serial JTAG interface.

@VojtechBartoska VojtechBartoska added this to the 2.1.0 milestone Jul 15, 2022
@SuGlider
Copy link
Collaborator Author

@ALL

Examples about UART controlling are at PR #7412

@VojtechBartoska VojtechBartoska removed this from the 2.0.6 milestone Nov 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Peripherals API Relates to peripheral's APIs. Status: Needs investigation We need to do some research before taking next steps on this issue
Projects
Status: Under investigation
Development

No branches or pull requests

4 participants