锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于JTAG对ESP32-C3的调试及下载

时间:2023-01-20 05:00:00 省心的18pin连接器

前言

基于上一章VSCODE的ESP32C3.开发环境建设后,小编认为大多数读者应该能够轻松处理红旭的肩膀ESP32-C3.构建开发环境,完成一些基础开发;接下来,让我们继续趁热打铁,谈谈如何利用它ESP32-C3的JTAG接口,对ESP32-C3下载或调试模拟。

JTAG接口

为了更好地阐述和实现对ESP32-C3.下载或调试模拟这里小编HX-DK-商为蓝本,进行一系列配置和讲解。

目前,ESP32-C3支持两种JTAG连接方式:

  1. 内嵌的JTAG调试仿真器

    ESP32-C3内嵌了一个USB-JTAG可用于正确使用的控制器ESP32-C3下载或调试模拟,如HX-DK-商家的标号9,只要插上USB可实现下载和调试仿真功能。

  2. 外置的JTAG调试仿真器

    若要使用外部调试仿真器,则只需使用标准的10-PIN连接线与HX-DK-商中标号8相连接,可实现对ESP32-C3.下载和调试模拟。

内置的USB-SERIAL-JTAG

ESP32-C3不但内置了USB-JTAG,还内置了USB-SERIAL,这给开发者提供了极大的便利,只需要一个USB线可以下载和调试模拟,这是许多半导体制造商中的第一个核心。但它们总是属于的ESP32-C3中的一个外设,一旦设备进入休眠或死设的功能也会随之而来 “废掉” 但是,如果没有这些问题,还是省心省力,这是目前内置的USB-SERIAL-JTAG局限性。HX-DK-商家还是保留了外USB-SERIAL调试仿真器。

内置使用USB-SERIAL-JTAG在功能之前,用户还需要在上一章中安装相应的驱动程序基于VSCODE的ESP32C3开发环境的建设ESP-IDF-Tools可以在工具中获得,即使用ESP-IDF-Tools安装相应的配置工具包时,应检查idf_driver。最后,用户可以在那里.espressif找到文件夹,如下图所示:

当驱动安装成功时HX-DK-商家的标号9只需插上USB在设备管理器中可以找到线虚拟的串口和一个USB-JTAG的接口,如下所示:

此时,用户可以使用内置USB-SERIAL-JTAG对ESP32-C3.下载和调试。

下载

ESP32-C下载固件有两种方式:

  1. UART下载

    因为内置有USB-SERIAL且驱动也已经安装成功,那么用户只需要在VS CODE简单配置即可下载:

    1. 在VSCODE状态栏左下角选择内置USB-SERIAL的虚拟串口

    2. 在ESP-IDF在插件设置中,选择串口下载固件

    3. 在VSCODE状态栏左下角,选择芯片型号

      上述配置设置完成后,即实现内置USB-SERIAL对ESP32-C3下载,如下所示:

  2. JTAG下载

    同样,用户只需要在那里VS CODE上面简单配置:

    1. 在ESP-IDF选择插件设置JTAG下载固件

    2. 在VSCODE状态栏左下角,选择芯片型号

    上述配置设置完成后,即实现内置USB-JTAG对ESP32-C3下载,如下所示:

调试仿真

到目前为止,这篇文章是基于小编写的VSCODE ESP-IDF插件 ESP-IDF的方式,对ESP32-C3.调试仿真相对稳定可靠;这篇文章之所以这么难产,是因为前期各方面太多了。Bug,如果读者在官方消耗了大量的时间,这将消耗大量的时间Github仓库查询ESP32-C3 Debug如果有问题,基本上大部分都是小编发的。Ticket。好了,废话不多说,想用内置的USB-JTAG对ESP32-C调试仿真需要以下两个步骤:

  1. 同样的,在VSCODE选择状态栏左下角的芯片型号,即:

  2. 配置当前代码工程launch.json文件如下:

{ 
           "version": "0.2.0",   "configurations": [     { 
               "type": "espidf",       "name": "Launch-name",       "request": "launch",       "mode": "auto",       "skipVerifyAppBinBeforeDebug": true     }   ] } 

上述配置设置完成后,请先使用上述配置,以确保调试模拟的鲁棒性JTAG先下载固件 (如果固件没有更新,可以一次;如果有更新,一定要再下载一次)>,然后再按下F5键,可实现内置USB-JTAG对ESP32-C调试仿真,如下图所示:

如果模拟突然无法调试,首先使用上述模拟JTAG先下载固件,然后复位硬件ESP32-C3,然后再按下F5调试仿真键。

外置的ESP-Prog

如上述内置USB-SERIAL-JTAG内容所述,内置USB-SERIAL-JTAG控制器仍有一些缺陷,因此一些应用场景仍需要外部调试模拟器下载和调试模拟。

同样,外部ESP-Prog还需要在使用前安装驱动文件,其方法也与内置文件相同USB-SERIAL-JTAG的相似,即在上一章节《基于VSCODE的ESP32C3开发环境的建设ESP-IDFTools工具中可以获取得到,即使用ESP-IDF-Tools安装相应的配置工具包时,要勾选idf_driver。最后,用户就可以在.espressif文件夹找到它,如下图所示:

如果驱动安装成功,ESP-Prog只要插上USB线,在设备管理器中就可以发现一个虚拟的串口和一个USB-JTAG的接口,如下所示:

这个时候,用户就可以利用外置的ESP-Prog对ESP32-C3进行下载和调试。还有一点需要注意的是:当ESP Prog与HX-DK-商的标号8相连接时,请将ESP Prog的JTAG_PWR_SEL拨到5V,然后HX-DK-商开发板什么线都不需要接

下载

由于ESP Prog调试仿真器也具备USB-JTAG和USB-SERIAL的功能,所以其也支持两种方式的下载:

  1. UART下载

    这种方式比较简单,只需要将对应的TX和RX相互连接即可;至于ESP Prog的TX、RX引脚详情,请参考ESP Prog官方的介绍,因为这种方式大同小异,小编就不再细述。

  2. JTAG下载

    如果使用外置ESP-Prog的JTAG接口对ESP32-C3进行下载,用户还需要对ESP32-C3内部的eFuse进行设置 (注意,该设置是永久的,不可恢复的),即需要使用espefuse.py对eFuse的JTAG_SEL_ENABLE位进行烧录,操作的命令如下:

    F:/Tools/Espressif/IDF_Tools/.espressif/python_env/idf4.4_py3.8_env/Scripts/python.exe F:\BLE_WIFI\Espressif\SDK\esp-idf-c3\components\esptool_py\esptool\espefuse.py -p COM50 burn_efuse JTAG_SEL_ENABLE 1
    

    上述是小编当前的Pythonespefuse.py路径和COM口,不同的用户可能对应的路径些许不同。当按照上述的命令配置之后,ESP32-C3在复位时,会根据GPIO10的电平来判断使用内置USB-JTAG还是外置的JTAG调试仿真器:

    • GPIO10为低电平时,使用内置的USB-JTAG
    • GPIO10为高电平时,使用外置的JTAG调试仿真器

    但是!!!目前这个功能截止目前为止还有Bug,只能通过下一版的硬件升级才能解决这个问题;当前的现状就是只要烧录了JTAG_SEL_ENABLE位,ESP32-C3就永远只能支持外置的JTAG调试仿真器了

    紧接着,我们就可以进行JTAG烧录了,即:

    1. 在ESP-IDF插件设置中,选择JTAG方式下载固件

    2. 在VSCODE状态栏左下方,选择芯片的型号

    当上述的配置设置完成之后,即实现外置的ESP Prog对ESP32-C3进行下载,如下所示:

     ![](https://img-blog.csdnimg.cn/img_convert/d9946a69475031799062410a69c4508c.gif)
    

调试仿真

同理,使用外置ESP Prog调试仿真器的设置,与使用内置的USB-SERIAL-JTAG是一样的;唯一不同的是:只不过当选择设备类型时,要选择ESP32-C3(ESP-PROG JTAG) ;小编这里也不再过多地描述,下图是使用外置ESP Prog调试仿真器的动图:

至此,如何基于JTAG接口对ESP32-C3进行下载及调试仿真已经讲解完毕。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章