From 48f17b478661cf610b43b9634d125a9d30085bf5 Mon Sep 17 00:00:00 2001 From: hhvrc Date: Thu, 21 Nov 2024 13:06:40 +0100 Subject: [PATCH] Some fixes and add jtag support --- src/main.cpp | 2 +- src/serial/Serial.cpp | 49 ++++++++++++++++++++++++++++++------------- 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 0e245b1f..1cfde321 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -93,7 +93,7 @@ void setup() { // esp_log_level_set(ESP_LOG_VERBOSE); - Serial::Init(); + OpenShock::Serial::Init(); // esp_log_level_set(ESP_LOG_VERBOSE); diff --git a/src/serial/Serial.cpp b/src/serial/Serial.cpp index 3334789f..4d0ee02f 100644 --- a/src/serial/Serial.cpp +++ b/src/serial/Serial.cpp @@ -3,20 +3,38 @@ #include "serial/Serial.h" #include +#include #include +#include #define TAG "serial::Serial" -#define UART_NUM UART_NUM_0 -#define UART_TXP 1 -#define UART_RXP 3 -#define UART_BUFFER_SIZE 1024 +#define USE_USB_JTAG false + +#define UART_NUM UART_NUM_2 // Only for ESP32 and ESP32S3 +#define UART_TXP 4 +#define UART_RXP 5 #define UART_QUEUE_SIZE 10 -#define UART_BAUD_RATE 115200 +#define UART_BAUD_RATE 115'200 + +#define BUFFER_SIZE 1024 using namespace OpenShock; -bool Serial::Init() { +bool Serial::Init() +{ + esp_err_t err; +#if USE_USB_JTAG + usb_serial_jtag_driver_config_t usb_serial_jtag_config = { + .tx_buffer_size = BUFFER_SIZE, + .rx_buffer_size = BUFFER_SIZE, + }; + + err = usb_serial_jtag_driver_install(&usb_serial_jtag_config); + if (err != ESP_OK) { + return false; + } +#else if (uart_is_driver_installed(UART_NUM)) { return true; } @@ -25,15 +43,19 @@ bool Serial::Init() { uart_config_t uart_config = { .baud_rate = UART_BAUD_RATE, .data_bits = UART_DATA_8_BITS, - .parity = UART_PARITY_DISABLE, + .parity = UART_PARITY_DISABLE, .stop_bits = UART_STOP_BITS_1, .flow_ctrl = UART_HW_FLOWCTRL_DISABLE, - .source_clk = UART_SCLK_DEFAULT, - }; // default values +#ifdef UART_SCLK_DEFAULT + .source_clk = UART_SCLK_REF_TICK, +#elif SOC_UART_SUPPORT_REF_TICK + .source_clk = UART_SCLK_REF_TICK, +#else + .source_clk = UART_SCLK_APB, +#endif + }; // default values - esp_err_t err; - - err = uart_driver_install(UART_NUM, UART_BUFFER_SIZE, UART_BUFFER_SIZE, UART_QUEUE_SIZE, nullptr, 0); + err = uart_driver_install(UART_NUM, BUFFER_SIZE, BUFFER_SIZE, UART_QUEUE_SIZE, nullptr, 0); if (err != ESP_OK) { return false; } @@ -47,8 +69,7 @@ bool Serial::Init() { if (err != ESP_OK) { return false; } - - uart_ +#endif return true; }