ESP32-S3-Pico
来自Waveshare Wiki
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品简介
ESP32-S3-Pico是一款低成本、高性能的微控制器开发板,体积小巧,外设接口丰富。
主芯片芯片采用ESP32-S3R2,其是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片
接口芯片采用CH343与CH334,使用一个USB-C口就可以体验USB和UART开发的乐趣,不再为切换接口而烦恼
DC-DC芯片采用MP28164,高效率降压-升压芯片,其采用 PWM 定频电流控制模式,可使电路稳定性和响应速度达到最优
可选择 ESP-IDF、 Arduino、Micropython等开发环境来进行开发,从而可以轻松快速地入门,并将其应用于产品中
产品特性
- 主芯片芯片采用乐鑫ESP32-S3R2
- 搭载Xtensa® 32位LX7双核处理器,主频高达240 MHz
- 内置512 KB SRAM、384KB ROM、2MB的片上PSRAM、板载16MB Flash 存储器
- 采用USB Type-C 接口,无需纠结正反插,和老旧接口说拜拜
- 板载沁恒的CH343与CH334,使用一个USB-C口就可以体验USB和UART开发的乐趣
- 板载 DC-DC 芯片 MP28164,为高效率 DC-DC 降压-升压芯片,最大负载电流可达 2A
- 支持多种低功耗工作状态,可调节通信距离、数据率和功耗之间的最佳平衡,满足各种应用场景的功耗需求
- 多达 27 个多功能的 GPIO 引脚引出
- 邮票孔设计,可直接焊接集成到用户自主设计的底板上
- 拥有丰富的外设接口,包括全速 USB OTG、SPI、I2C、UART、ADC、PWM、DVP(8位~16位摄像头接口)、LCD接口(8位~16位并行RGB、I8080、MOTO6800)等,让您可以更加灵活地实现各种功能。
引脚分布
- PS:SPI、I2C、UART等数字接口可以通过 GPIO 交换矩阵和 IO MUX 映射到绝大数 GPIO 上,详情见数据手册
产品尺寸
开发环境配置
- 以下开发系统默认为Windows
ESP-IDF
- 推荐使用VSC插件进行开发
使用VSCode插件开发
安装VSCode
- 打开VSCode官网的下载页面,选择对应系统和系统位数进行下载
- 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
- 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
- 第三项开启后,选择打开方式时,可以直接选择VSCode
安装Espressif IDF插件
- 注:当前插件最新版本为V1.6.0,为体验一致,用户可以选择与我们一样的版本
- 打开VSCode,使用快捷键Shift+Ctrl+X,进入插件管理器
- 在搜索栏中,输入Espressif IDF,选择对应的插件点击 install即可
- 使用快捷键F1,输入
esp-idf: configure esp-idf extension
- 选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)
- 打开后显示该界面
- 选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器
- 选择想要现在的ESP-IDF版本,我们选择最新的V5.0.1(注意ESP-IDF从V4.4版本后才开始支持ESP32-S3)
- 下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,
- 注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
- 配置完成后,点击 install 进行下载
- 进入下载页面,其会自动安装对应工具与环境,稍等片刻即可
- 安装完成后,会进入以下界面,说明安装完成
使用官方例程
- ESP官方为我们提供大量的例程,并且写详细的使用方法与效果,点击此处查看
创建例程
- 使用快捷键F1,输入
esp-idf:show examples projects
- 选择你当前的IDF版本
- 以Hello world例程为例
- ①选择对应例程
- ②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
- ③点击创建例程
- 选择放置例程的路径,要求无例程同名文件夹
修改COM口
- 此处显示使用对应的COM口,点击可以修改对应COM口
- 我们的CH343的COM为COM5,所以我们选择COM5,请根据自己CH343对应COM口进行选择
- 选择使用的工程或者例程
- 然后我们的COM口就修改好了
修改驱动对象
- 此处显示的是使用的驱动对象,点击可以修改对应驱动对象
- 选择使用的工程或者例程
- 点击后需要稍等片刻
- 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3
- 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可
其余状态栏简介
- ①SDK 配置编辑器,ESP-IDF很多功能与配置可以在其内修改
- ②全部清理,清空所有编译文件,
- ③编译
- ④当前下载方式,默认为UART
- ⑤烧录当前固件,请在编译后进行
- ⑥打开串口监视器,用于查看串口信息
- ⑦编译,烧录,打开串口监视器 一体按键(调试时最常用)
编译、烧录、串口监视
- 点击我们之前介绍的 编译,烧录,打开串口监视器按键
- 编译可能需要较长时间才能完成,尤其是在第一次编译时。
- 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿。
- 因为我们使用的是CH343为USB转串口芯片,并且板载自动下载电路,无需手动操作即可自动下载
- 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启
Arduino
- 如果没用使用过arduino-esp32的基础建议仔细阅读官方文档,点击此处查看
安装Arduino IDE
- 打开官网软件下载页面,选择对应的系统和系统位数下载
- 可以选择直接下载,也可以选择捐赠并下载
- 运行安装程序,全部默认安装即可
在线安装arduino-esp32
- 打开首选项
- 添加对应的板管理链接,点击该按键
- 在第一个空白处,添加下文
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- 保存设置
- 打开板管理器并搜索输入ESP32
- 等待下载
- arduino-esp32下载完成
离线安装arduino-esp32(国内推荐)
- 离线包(提取码:1r4i)
- 提取码:1r4i
- 将压缩包解压缩
- 将解压文件放在对应用户的arduino器件包目录
C:\Users\{用户名}\AppData\Local\Arduino15\packages\
以用户名为waveshare为例C:\Users\waveshare\AppData\Local\Arduino15\packages\
- 关闭全部arduino窗口,确保arduino关闭
- 打开arduino,并打开板管理器,看到esp32-arduino已经安装即可
使用Arduino例程
- 选择例程,这里我们选择获取芯片ID的例程
- 选择我们的板子为 ESP32S3 Dev Moudule
- 选择我们的端口号,这里我们选择CH343的COM5
- 点击下载按键,此时会自动编译并下载
- 下载完成
- 打开串口监视器
- 看到循环输出的芯片ID
MicroPython
- 如果没有MicroPython基础,可以查看MicroPython官方文档进行学习
烧录固件
- 点击此处下载烧录器与固件
- 将刚刚下载的解压包解压并进入
- 进入flash_download_tool_3.9.4文件夹,打开flash_download_tool_3.9.4.exe
- 选择对应的芯片,这里选择ESP32-S3
- 选择对应的COM口,我们已经为你配置好其他信息,点击Start开始下载即可
- ① 选择COM口
- ② 下载按键
安装Thonny
- 打开Thonny官网
- 选择对应的系统和版本,这里我选择windows,鼠标要移动到windows处,才会显示对应的信息
- 一路默认安装即可
- 安装完成
获取例程
- 点击此处下载例程
- 解压例程压缩包
运行例程
- 打开thonny,并选择配置解释器
- 选择MicroPython(ESP32)为解释器
- 点击OK进行保存
- 点击Stop按键,或者快捷键 Ctrl+F2
- 此时命令行可以看到 MicroPython的版本信息与板名
- 打开文件串口
- 选择我们的例程文件,并打开一个例程,这里我们选的是wifi-scan例程
- ①当前本机文件目录
- ②我们要打开的例程 wifi-scan.py
- ③ESP32-S3-PICO的目录
- 点击运行按键,或者快捷键 F5
- 稍等片刻,可以看到esp32-s3-pico输出的wifi信息
MicroPython例程讲解
- 例程大部分基于Pico-Sensor-Kit-B进行编写
为了更好的使用体验我们的固件内部集成了一个py文件,用于将零散的GPIO包装成按照pico引脚顺序排列。 源码如下:
from micropython import const D0 = const(11) D1 = const(12) D2 = const(13) D3 = const(14) D4 = const(15) D5 = const(16) D6 = const(17) D7 = const(18) D8 = const(33) D9 = const(34) D10= const(35) D11= const(36) D12= const(37) D13= const(38) D14= const(39) D15= const(40) D16= const(42) D17= const(41) D18= const(1) D19= const(2) D20= const(4) D21= const(5) D22= const(6) D26= const(7) D27= const(8) D28= const(9) A1= const(7) A2= const(8) A3= const(9) RGB_PIN= const(21) USB_ADC= const(3)
1-GPIO
Blink效果讲解
- 将对应树莓派PICO的GPIO10(对应ESP32-S3的GP35)以1秒的频率闪烁
Key效果讲解
- 读取对应树莓派PICO的GPIO3(对应ESP32-S3的GP13)电平
- 若为低电平(按键按下)则将LED的电平翻转
2-PWM
fade效果讲解
- 将对应树莓派PICO的GPIO12(对应ESP32-S3的GP37)输出PWM频率在1000Hz,占空比为0%-100%之间递增或者递减
Siren效果讲解
- 将对应树莓派PICO的GPIO12(对应ESP32-S3的GP37)输出PWM占空比为30%,频率在600-1400Hz之间递增或者递减
3-UART
uart效果讲解
- 以树莓派PICO的GPIO0(对应ESP32-S3的GP11)和GPIO1(对应ESP32-S3的GP12)做为UART的TX和RX引脚,做UART回响
4-I2C
I2C-OLED效果讲解
- 以树莓派PICO的GPIO6(对应ESP32-S3的GP17)和GPIO7(对应ESP32-S3的GP18)做为I2C的SDA和SCL引脚,驱动1.5inch OLED模块
I2C-SCAN效果讲解
- 以树莓派PICO的GPIO8(对应ESP32-S3的GP33)和GPIO9(对应ESP32-S3的GP34)做为I2C的SDA和SCL引脚,扫描I2C总线下的设备地址
5-SPI
Pico-LCD-1.3效果讲解
- 可驱动PICO-LCD-1.3模块
6-ADC
adc效果讲解
- 依次读取树莓派PICO的GPIO26-29引脚的电压值并输出信息
7-RGB
rgb效果讲解
- 点亮板载RGB-LED并不停转化颜色
8-SYS
FLASH-SIZE效果讲解
- 输出剩余FLASH空间
RAM-SIZE效果讲解
- 输出剩余和使用的RAM空间
RTC效果讲解
- 设置RTC时间并循环读取RTC数值
SLEEP效果讲解
- 将ESP32-S3设置为深度睡眠10秒,到达睡眠时间会自动复位并重启
WDT效果讲解
- 设置看门狗并等待看门狗复位
9-WIFI
scan效果讲解
- 扫描周围的wifi信号并显示相关信息
资料
原理图
程序
软件
ESP32-S3
Arduino
CH343
串口
数据手册
ESP32-S3
CH343
官方文档
ESP32官方文档
MicroPython官方文档