ESP32C3的 USB 串行/JTAG 控制器
ESP 芯片通常使用 UART 实现串口,并可以通过外部 USB-UART 桥接芯片,连接到主机/PC 上的串口控制台仿真器。然而,在具有 USB 串行/JTAG 控制器的 ESP 芯片上,控制器的 CDC-ACM 部分即可实现串口,该串口直接连接到主机/PC,不需要外部 USB-UART 桥接芯片。
USB 串行/JTAG 控制器控制台 - ESP32-C3 - — ESP-IDF 编程指南 v5.3.1 文档
1. 串口日志输出和printf重定向输出
在menuconfig中,可以看到有两种日志输出通道,如果两个通道都设置了,那么代码中的ESP_LOG和printf函数就会从两个通道中都输出,比如从设置的默认串口0以及usb串口输出。
第一通道ESP_CONSOLE_UART,可以设置很多种类型,比如可以自定义使用的外设串口及波特率,也可以选usb串口时(此时无法使用第二通道)。
第二通道ESP_CONSOLE_SECONDARY,只有在第一通道为外设串口时才能选用,且只能选为usb串口。第二通道只能是非阻塞模式,如果需要usb串口使用REPL模式,那么只能设为第一通道。
2. 烧录程序
在esp-idf里面,可以使用USB串口直接烧录程序。以合宙ESP32简约版为例,其usb引脚直连type-c接口,也就是使用的usb串口,esp-idf会控制芯片自动进入到下载模式,无需按boot键。
如果使用外设串口,需要连接usb-uart芯片比如ch340,如果板子上有自动下载电路,也可以实现一键下载;但是如果仅仅是用usb-ttl模块连接芯片的uart引脚,则需要在上电前按住boot键使得芯片进入下载模式。