ESP32-C6-Zero教程

资料

软件

编程软件

串口

Flash 烧录

蓝牙调试

原理图

ESP32-C6-Zero原理图

数据手册

ESP32-C6

官方文档

ESP32官方文档

说明

产品简介

ESP32-C6-Zero 是一款体积小巧,搭载多种数字接口的微控制器开发板。

在硬件上,采用 ESP32-C6FH4 芯片,其搭载有 RISC-V 32 位单核处理器,支持高达 160 MHz 的时钟频率,内置 320KB ROM、512KB HP SRAM 和 16KB LP SRAM;可兼容扩展多种外围设备,使用更方便。

在软件上,可选择 ESP-IDF 开发环境 或 Arduino IED来进行开发,从而可以轻松快速地入门,并将其应用于产品中。

产品特性

  • 采用 ESP32-C6FH4 芯片,搭载 RISC-V 32 位单核处理器,支持高达 160 MHz 的时钟频率
  • 集成 320KB ROM、512KB HP SRAM、16KB LP SRAM 以及 4MB Flash 存储器
  • 集成 2.4GHz Wi-Fi 6 和低功耗蓝牙 (Bluetooth LE) 双模无线通信,具有优越的射频性能
  • 采用 USB Type-C 接口,无需纠结正反插
  • 引出丰富的外设接口,兼容性和扩展性强
  • 邮票孔设计,可直接焊接集成到用户自主设计的底板上
  • 支持多种低功耗工作状态,可调节通信距离、数据率和功耗之间的平衡,满足各种应用场景的功耗需求

功能框图


资源接口


1. ESP32-C6FH4

内置双处理器,主频高达 160MHz


2. USB Type-C 接口

用于下载程序与调试


3. ME6217C33M5G

低压降 LDO,电流 (Max) 800mA


4. WS2812 炫酷 RGB LED


5. 2.4G 陶瓷天线


6. BOOT 按键

按下后再按复位,进入下载模式


7. RESET 复位按键

8. ESP32-C6FH4 引脚引出

引脚分布


产品尺寸


折叠

ESP-IDF下使用

以下开发系统默认为Windows,推荐使用VSCode插件进行开发

使用VSCode插件开发

安装VSCode

  • 打开VSCode官网的下载页面,选择对应系统和系统位数进行下载

ESP32-C6 TO Environment 0.png

  • 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
    • 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
    • 第三项开启后,选择打开方式时,可以直接选择VSCode
    • Esp32-vscod-02.jpg

安装Espressif IDF插件

  • 注:当前插件最新版本为V1.6.4,为体验一致,用户可以选择与我们一样的版本
  • 打开VSCode,使用快捷键 Shift+Ctrl+X ,进入插件管理器Esp32-vscod-03.jpg

  • 在搜索栏中,输入 Espressif IDF ,选择对应的插件点击 install即可

Esp32-vscod-04.jpg

  • 使用快捷键 F1 ,输入
esp-idf: configure esp-idf extension

  • Esp32-vscod-05.jpg
  • 选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)Esp32-vscod-06.jpg

  • 选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器Esp32-vscod-08.jpg

  • 选择想要现在的ESP-IDF版本,我们选择最新的V5.1.1(注意ESP-IDF从V5.1版本后才开始支持ESP32-C6)esp32-vscod-09.jpg

  • 下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,Esp32-vscod-10.jpg

  • 注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
  • 配置完成后,点击 install 进行下载Esp32-vscod-11.jpg

  • 进入下载页面,其会自动安装对应工具与环境,稍等片刻即可

ESP32-C6 TO Environment 11.png

  • 安装完成后,会进入以下界面,说明安装完成

ESP32-C6 TO Environment 12.png

官方例程使用教程

创建例程 示例 

  • 使用快捷键 F1 ,输入
esp-idf:show examples projects

  • Esp32-vscod-14.jpg
  • 选择你当前的IDF版本Esp32-vscod-15.jpg

  • 以Hello world例程为例
    • ①选择对应例程
    • ②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
    • ③点击创建例程

Esp32-vscod-16.jpg
选择放置例程的路径,要求无例程同名文件夹Esp32-vscod-17.jpg

修改COM口

  • 此处显示使用对应的COM口,点击可以修改对应COM口
  • 请根据设备对应COM口进行选择,建议优先使用 USB 对应的COM口(可通过设备管理器查看)
  • 若出现下载失败的情况请点击复位按键1秒以上,等待 PC 端重新识别到设备后再次下载

ESP32-C6 TO Program 5.png

  • 选择使用的工程或者例程

ESP32-C6 TO Program 6.png

  • 然后我们的COM口就修改好了

修改驱动对象

  • 此处显示的是使用的驱动对象,点击可以修改对应驱动对象
  • 选择使用的工程或者例程

ESP32-C6 TO Program 7.png

  • 点击后需要稍等片刻

ESP32-C6 TO Program 8.png

  • 选择我们需要驱动的对象,也就是我们的主芯片为ESP32C6

ESP32-C6 TO Program 9.png

  • 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可

ESP32-C6 TO Program 10.png

其余状态栏简介

  • ①SDK 配置编辑器,ESP-IDF很多功能与配置可以在其内修改
  • ②全部清理,清空所有编译文件,
  • ③编译
  • ④当前下载方式,默认为UART
  • ⑤烧录当前固件,请在编译后进行
  • ⑥打开串口监视器,用于查看串口信息
  • ⑦编译,烧录,打开串口监视器 一体按键(调试时最常用)

ESP32-C6 TO Program 11.png

编译、烧录、串口监视

  • 点击我们之前介绍的 编译,烧录,打开串口监视器按键

ESP32-C6 TO Program 12.png

  • 编译可能需要较长时间才能完成,尤其是在第一次编译时。

ESP32-C6 TO Program 13.png

  • 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿。
  • 若是新工程首次烧录程序,将需要选择下载方式,选择 UART

ESP32-C6 TO Program 14.png

  • 后续也可在 下载方式 处进行修改(点击即可弹出选项)

ESP32-C6 TO Program 15.png

  • 因为板载自动下载电路,无需手动操作即可自动下载

ESP32-C6 TO Program 16.png

  • 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启

ESP32-C6 TO Program 17.png

示例演示

Hello Word

官方示例路径:get-started -> hello_world
示例效果:在 TERMINAL 窗口以10秒间隔输出 Hello world!
     软件操作
  • 根据上方教程创建官方示例 hello_world ( 创建示例 
  • 程序兼容ESP32-C6,无需修改程序内容即可使用
  • 修改好COM口及驱动对象(建议优先使用 USB 对应的COM口,可通过设备管理器查看),点击编译并烧录即可运行程序

ESP32-C6 TO Program 17.png

RGB

官方示例路径:get-started -> blink
示例效果:板载RGB灯珠以1秒间隔进行闪烁
     软件操作
  • 根据上方教程创建官方示例 blink ( 创建示例 
  • 程序兼容ESP32-C6,无需修改程序内容即可使用
  • 修改好COM口及驱动对象(建议优先使用 USB 对应的COM口,可通过设备管理器查看),点击编译并烧录即可运行程序

ESP32-C6 TO Sample 5.png

UART

官方示例路径:peripherals -> uart-> uart_async_rxtxtasks
示例效果:短接GPIO4与GPIO5情况下进行 UART 的数据自收发
     硬件连接
ESP32-C6ESP32-C6(同一块)
GPIO4GPIO5
     软件操作
  • 根据上方教程创建官方示例 uart_async_rxtxtasks( 创建示例 
  • 程序兼容ESP32-C6,无需修改程序内容即可使用
  • 修改好COM口及驱动对象(建议优先使用 USB 对应的COM口,可通过设备管理器查看),点击编译并烧录即可运行程序

ESP32-C6 TO Sample 8.png

  • 根据使用的GPIO进行硬件连接

ESP32-C6 TO Sample 6.png

  • 可转到定义文件中查看实际使用的GPIO(选中 GPIO_NUM_4 -> 右键 -> Go to Definition

ESP32-C6 TO Sample 7.png

Bluetooth

官方示例路径:bluetooth -> bluedroid -> ble -> gatt_server
示例效果:ESP32-C6与手机端蓝牙调试助手进行数据传输
     软件操作
  • 在手机端安装蓝牙调试助手
  • 根据上方教程创建官方示例 gatt_server( 创建示例 
  • 程序兼容ESP32-C6,无需修改程序内容即可使用
  • 蓝牙名称以及UUID,蓝牙名称为 ESP_GATTS_DEMO

ESP32-C6 TO Sample 25.png

  • 修改好COM口及驱动对象(建议优先使用 USB 对应的COM口,可通过设备管理器查看),点击编译并烧录即可运行程序

ESP32-C6 TO Sample 26.png

  • 在手机端连接 ESP_GATTS_DEMO蓝牙设备

ESP32-C6 TO Sample 27.png

  • 连接成功效果如下

ESP32-C6 TO Sample 28.png

  • 根据程序中UUID的值可知为下方两个服务器,选择其中一个进行上行发送

ESP32-C6 TO Sample 29.png

  • ESP32-C6接收到数据

ESP32-C6 TO Sample 30.png

WIFI

官方示例路径:wifi-> getting_started-> station
示例效果:ESP32-C6连接WIFI
     软件操作
  • 根据上方教程创建官方示例 station( 创建示例 
  • 修改程序内容,使其连接上所需WiFi
  • 进入 Kconfig.projbuild 文件

ESP32-C6 TO Sample 31.png

  • 将原本的 WiFi SSID 与 WiFi Password 修改为要连接的WiFi信息

ESP32-C6 TO Sample 32.png

  • 修改好COM口及驱动对象(建议优先使用 USB 对应的COM口,可通过设备管理器查看),点击编译并烧录即可运行程序

ESP32-C6 TO Sample 33.png

  • 可查看 CONFIG_ESP_WIFI_SSID的值
  • 进入 station_ example_ main.c文件

ESP32-C6 TO Sample 34.png

  • 右键转到定义

ESP32-C6 TO Sample 35.png

  • 可看到为此前设置的值

ESP32-C6 TO Sample 36.png

Zigbee

官方示例1路径:Zigbee-> light_sample-> HA_on_off_switch
官方示例2路径:Zigbee-> light_sample-> HA_on_off_light
示例效果:两块ESP32-C6,使用其中一块(烧录 HA_on_off_switch 程序)的 BOOT 按键控制另一块的RGB灯珠的亮灭
注:请先往一块烧录 HA_on_off_switch 程序,再往另一块烧录 HA_on_off_light 程序
     软件操作1
  • 根据上方教程创建官方示例 HA_on_off_switch( 创建示例 
  • 程序兼容ESP32-C6,无需修改程序内容即可使用
  • 修改好COM口及驱动对象(建议优先使用 USB 对应的COM口,可通过设备管理器查看),点击编译并烧录即可运行程序

ESP32-C6 TO Sample 37.png

     软件操作2
  • 根据上方教程创建官方示例 HA_on_off_light( 创建示例 
  • 程序兼容ESP32-C6,无需修改程序内容即可使用
  • 修改好COM口及驱动对象,点击编译并烧录即可运行程序(需要等待片刻,让两块芯片建立连接)

ESP32-C6 TO Sample 38.png

  • 若一直处于以下未连接的情况,则可能是由于这个设备有残留的其他网络信息,可以擦除设备信息( 擦除教程),再重新组网。

ESP32-C6 TO Sample 39.png

JTAG 调试

     软件操作
  • 创建需要调试的示例,本示例使用官方示例 hello_world ( 创建示例 
  • 修改 launch.json 文件

ESP32-C6 TO JTAG 1.png

  • 输入以下内容
{
 "version": "0.2.0",
 "configurations": [
   {
     "name": "GDB",
     "type": "cppdbg",
     "request": "launch",
     "MIMode": "gdb",
     "miDebuggerPath": "${command:espIdf.getXtensaGdb}",
     "program": "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
     "windows": {
       "program": "${workspaceFolder}\\build\\${command:espIdf.getProjectName}.elf"
     },
     "cwd": "${workspaceFolder}",
     "environment": [{ "name": "PATH", "value": "${config:idf.customExtraPaths}" }],
     "setupCommands": [
       { "text": "target remote :3333" },
       { "text": "set remote hardware-watchpoint-limit 2"},
       { "text": "mon reset halt" },
       { "text": "thb app_main" },
       { "text": "flushregs" }
     ],
     "externalConsole": false,
     "logging": {
       "engineLogging": true
     }
   }
 ]
}

ESP32-C6 TO JTAG 2.png

  • 程序兼容ESP32-C6,无需修改程序内容即可使用
  • 修改好COM口及驱动对象(请使用 USB 接口,UART 接口并不支持JTAG调试,对应的COM口可通过设备管理器查看),点击编译并烧录即可运行程序

ESP32-C6 TO Program 17.png

  • 点击快捷键 F1,输入
ESP-IDF:Device configuration

ESP32-C6 TO JTAG 3.png

  • 选择 OpenOcd Config Files

ESP32-C6 TO JTAG 4.png

  • 输入 board/esp32c6-builtin.cfg (若默认是这个,就直接回车就可以)
board/esp32c6-builtin.cfg

ESP32-C6 TO JTAG 5.png

  • 拉伸窗口宽度,直至下方显示 [OpenOCD Server]

ESP32-C6 TO JTAG 6.png

  • 点击 [OpenOCD Server],选择 Start OpenOCD

ESP32-C6 TO JTAG 7.png

  • 开启成功如下

ESP32-C6 TO JTAG 8.png

  • 进入调试功能,点击调试

ESP32-C6 TO JTAG 9.png

  • 成功进入调试界面

ESP32-C6 TO JTAG 10.png

擦除设备Flash

  • 解压软件资源包(Flash 调试软件
  • 打开 flash_download_tool_3.9.5.exe软件,选择ESP32-C6及UART

ESP32-C6 TO Erase Flash 0.png

  • 选择UART的端口号,点击 START (不选择任何 bin 文件)

ESP32-C6 TO Erase Flash 1.png

  • 等待烧录完成,点击擦除

ESP32-C6 TO Erase Flash 2.png

  • 等待擦除完成

ESP32-C6 TO Erase Flash 3.png

折叠

Arduino下使用

请注意,Arduino 3.0.0-alpha 基于 ESP-IDF v5.1开发,与此前基于 ESP-IDF V4.X 有较大差异,在进行以下操作后,原先程序可能需要进行一些调整才可使用

  • 电脑用户名为中文会导致编译出错

搭建环境

ESP32-C6 TO Arduino 1.png

  • 安装完成后打开 Arduino IDE

ESP32-C6 TO Arduino 2.png

  • 进入首选项

ESP32-C6 TO Arduino 3.png

  • 添加 JSON 链接
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

ESP32-C6 TO Arduino 4.png ESP32-C6 TO Arduino 5.png

  • 将项目文件夹修改为 C:\Users\Waveshare\AppData\Local\Arduino15\packages(其中 Waveshare 为计算机用户名)

ESP32-C6 TO Arduino Add 1.png

  • 进入开发板管理器,搜索 esp32 ,在下方的 esp32 by Espressif Systems 中选择 3.0.0-alpha3 版本并点击安装(若不能正常安装可使用手机热点尝试)

ESP32-C6 TO Arduino 6.png ESP32-C6 TO Arduino 7.png

  • 安装完成重启 Arduino IDE 即可使用

ESP32-C6 TO Arduino 8.png

折叠

若安装失败则展开

  • 安装 3.0.0-alpha3 版本失败

ESP32-C6 TO Arduino 9.png

链接: https://pan.baidu.com/s/1u99HFx8lAyNLZzj7ja13lA
提取码: 0755

ESP32-C6 TO Arduino 10.png

  • 从资源管理器按路径 “c:\Users\Waveshare\AppData\Local\Arduino15\packages” 进入(其中 Waveshare 为计算机用户名,需要开启显示隐藏文件)

ESP32-C6 TO Arduino 11.png

  • 将上方下载的文件解压至 packages 文件夹下

ESP32-C6 TO Arduino 12.png

  • 重新执行安装操作

ESP32-C6 TO Arduino 13.png

  • 安装完成重启 Arduino IDE 即可使用

ESP32-C6 TO Arduino 14.png

创建示例

  • 上方将项目文件夹更改为 c:\Users\Waveshare\AppData\Local\Arduino15\packages 后
  • 可通过文件下的项目文件夹中的示例进行例程创建

ESP32-C6 TO Arduino sample 1.png

  • 以下演示创建 RGB 闪烁的示例(处于File -> Sketchbook -> esp32 -> hardware -> esp32 -> 3.0.0-alpha3 -> libraries -> ESP32 -> examples -> GPIO 下的 BlinkRGB )

ESP32-C6 TO Arduino sample 2.png

  • 选择开发板和端口

ESP32-C6 TO Arduino sample 3.png

  • 搜索 esp32c6 ,选择 ESP32C6 Dev Module 和 下载端口

ESP32-C6 TO Arduino sample 5.png

  • 选择完成,点击上传,Arduino IDE 将编译并烧录该程序

ESP32-C6 TO Arduino sample 6.png

  • 上传完成,即可在开发板上看到现象

ESP32-C6 TO Arduino sample 7.png