mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-29 18:27:20 +02:00
fix(uart): correct C3/S3 module enable porcedure to avoid undesired line noise
This commit is contained in:
@ -107,12 +107,14 @@ static inline void uart_ll_reset_register(uart_port_t uart_num)
|
||||
// ESP32C3 requires a workaround: enable core reset before enabling uart module clock to prevent uart output garbage value
|
||||
switch (uart_num) {
|
||||
case 0:
|
||||
SYSTEM.perip_rst_en0.reg_uart_rst = 0;
|
||||
UART0.clk_conf.rst_core = 1;
|
||||
SYSTEM.perip_rst_en0.reg_uart_rst = 1;
|
||||
SYSTEM.perip_rst_en0.reg_uart_rst = 0;
|
||||
UART0.clk_conf.rst_core = 0;
|
||||
break;
|
||||
case 1:
|
||||
SYSTEM.perip_rst_en0.reg_uart1_rst = 0;
|
||||
UART1.clk_conf.rst_core = 1;
|
||||
SYSTEM.perip_rst_en0.reg_uart1_rst = 1;
|
||||
SYSTEM.perip_rst_en0.reg_uart1_rst = 0;
|
||||
|
@ -112,18 +112,21 @@ static inline void uart_ll_reset_register(uart_port_t uart_num)
|
||||
// ESP32S3 requires a workaround: enable core reset before enabling uart module clock to prevent uart output garbage value
|
||||
switch (uart_num) {
|
||||
case 0:
|
||||
SYSTEM.perip_rst_en0.uart_rst = 0;
|
||||
UART0.clk_conf.rst_core = 1;
|
||||
SYSTEM.perip_rst_en0.uart_rst = 1;
|
||||
SYSTEM.perip_rst_en0.uart_rst = 0;
|
||||
UART0.clk_conf.rst_core = 0;
|
||||
break;
|
||||
case 1:
|
||||
SYSTEM.perip_rst_en0.uart1_rst = 0;
|
||||
UART1.clk_conf.rst_core = 1;
|
||||
SYSTEM.perip_rst_en0.uart1_rst = 1;
|
||||
SYSTEM.perip_rst_en0.uart1_rst = 0;
|
||||
UART1.clk_conf.rst_core = 0;
|
||||
break;
|
||||
case 2:
|
||||
SYSTEM.perip_rst_en1.uart2_rst = 0;
|
||||
UART2.clk_conf.rst_core = 1;
|
||||
SYSTEM.perip_rst_en1.uart2_rst = 1;
|
||||
SYSTEM.perip_rst_en1.uart2_rst = 0;
|
||||
|
Reference in New Issue
Block a user