产品简介
ESP32-S3-AMOLED-1.91 是一款由微雪 (Waveshare) 设计的低成本、高性能、扩展性强的ESP32_GUI开发板。具有触摸版本和不带触摸版本两个版本,均支持 2.4GHz WiFi 和 BLE 5,集成大容量 Flash 和 PSRAM,板载RTC、IMU、 1.91 英寸AMOLED屏,外露UART、GPIO、I2C、USB总线接口,同时我们还提供大量例程和技术支持,可供你快速开发自动化、物联网产品。
产品特性
- 搭载高性能 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
- 支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE),板载天线
- 内置 512KB SRAM 和 384KB ROM,叠封 16MB Flash 和 8MB PSRAM
- 板载 1.91 英寸宽电容AMOLED屏,536 × 240 分辨率,65K 彩色
- AMOLED屏显示使用 QSPI接口,提升速度的同时节省大量IO
- 触摸版本使用 I2C接口与触摸芯片进行通信,支持 5 点触控、中断输出
- 板载 IMU、SD卡座;外观采用开发板形式,外露大量GPIO,使之满足各种场合
硬件说明
接口说明
- GPIO接口:可以复用实现ADC、SPI、CAN、ETH、USB等各种接口,触摸版本的GPIO39、GPIO40用于I2C通信,不可用于其他功能
- UART 接口:可以转接RS485、RS232等总线,从而实现工业自动化控制。
- MX1.25 电池接口:开发板使用高效智能充放电芯片,自动实现充放电,使电池管理更加高效。
详情请查阅原理图 需要注意没有触摸版本的LCD部分除了I2C其余均一样
引脚连接ESP32-S3-AMOLED-1.91 | USB | BAT_ADC | Micor SD | QMI8658 | UART | AMOLED | OUT |
GPIO0 | | | | | | | GPIO0 |
GPIO1 | | BAT_ADC | | | | | BAT_ADC |
GPIO2 | | | | | | | GPIO2 |
GPIO3 | | | | | | | GPIO3 |
GPIO4 | | | | | | | GPIO4 |
GPIO5 | | | | | | DB1 | |
GPIO6 | | | | | | CS | |
GPIO7 | | | | | | DCX_RS | |
GPIO8 | | | SD_MISO | | | SDO | |
GPIO9 | | | SD_CS | | | TE | |
GPIO10 | | | | | | | GPIO10 |
GPIO11 | | | | | | | GPIO11 |
GPIO12 | | | | | | | GPIO12 |
GPIO13 | | | | | | | GPIO13 |
GPIO14 | | | | | | | GPIO14 |
GPIO15 | | | | | | | GPIO15 |
GPIO16 | | | | | | | GPIO16 |
GPIO17 | | | | | | | GPIO17 |
GPIO18 | | | | | | RD_SDI | |
GPIO19 | USB_N | | | | | | USB_N |
GPIO20 | USB_P | | | | | | USB_P |
GPIO21 | | | | | | | GPIO21 |
GPIO26 | | | | | | | GPIO26 |
GPIO33 | | | | | | | GPIO33 |
GPIO34 | | | | | | | GPIO34 |
GPIO35 | | | | | | | GPIO35 |
GPIO36 | | | | | | | GPIO36 |
GPIO37 | | | | | | | GPIO37 |
GPIO38 | | | | | | | GPIO38 |
GPIO39 | | | | IMU_SCL | | TP_SCL | IMU_SCL |
GPIO40 | | | | IMU_SDA | | TP_SDA | IMU_SDA |
GPIO41 | | | | | | TP_INT | |
GPIO42 | | | SD_MOSI | | | | |
GPIO43 | | | | | U0TXD | | U0TXD |
GPIO44 | | | | | U0RXD | | U0RXD |
GPIO45 | | | | IMU_INT1 | | | |
GPIO46 | | | | IMU_INT2 | | | |
GPIO47 | | | SD_CLK | | | WRX_SCL | |
GPIO48 | | | | | | DB0 | |
EN | | | | | | | RESET |
产品尺寸
其它说明
- 如果用户需要使用I2C总线,需要注意,板载I2C从机已占用以下地址(7位地址):
触摸芯片I2C地址:0X38
IMU芯片I2C地址 :0X6B
环境设置
ESP32 系列开发板的软件框架成熟,可使用 C/C++(Arduino,ESP-IDF),MicroPython 等进行快速开发产品原型,以下简要介绍:
- 乐鑫官方的 C/C++ 库方便快速安装,中国大陆用户遇到下载问题请查看FAQ解决
- 环境设置是在 Windows 10 系统下进行,用户可以选择使用 Arduino 或 Visual Studio Code(ESP-IDF) 作为 IDE 进行开发,Linux和Mac用户可访问下面链接参考
ESP-IDF(VScode环境下)
1.先搭建本地的ESP-IDF环境,通过链接 https://dl.espressif.cn/dl/esp-idf/?idf=4.4 打开往下拉,选中espidf-v5.1.4如图,假如上面没有显示,就点击下面的Download
2.下载下来之后,直接双击打开,全部点击下一步,需要注意的是,安装路径不能有中文
选择自定义安装把所有的都勾选上
等待安装完成,如果显示以下信息表示安装完成
安装完成之后打开系统变量编辑,看是否有相关变量加入系统,如图:
3.接着直接百度搜索VSCode,进入官网下载WINDOWS版本(最好下载次最新版本),安装路径同样不能有中文,安装完成之后打开系统环境变量编辑,查看有没有把VSCode包含进去(如果没有VSCode变量,必须手动加进去),点击用户变量->path->编辑如下图:
4.打开VSCode,点击左侧的扩展,在扩展搜索并安装C/C++,ESP-IDF。最后简体中文根据个人喜好安装,想安装可以直接扩展搜Chines (Simplified)(简体中文)。
5.安装完成上面的必须扩展之后重新打开VSCode,点击左侧ESP-IDF的标志进行配置,如图:
6.点进去之后,根据图片进行安装如图:
首先检查一下系统环境变量里面有没有ESP-TOOLS-PATH和ESP-PATH变量,如果没有需要手动加入,该处的ESP-TOOLS-PATH和ESP-PATH目录就是对应系统环境变量里面的目录,设置好之后,开始点击安装,如果安装过程中出现ERROR_INVALID_PIP错误,可以删除*/Espressif/tools 内的 idf-git 和 idf-python 两个文件夹,然后重新开始安装,最后跳出需要下载esp tools的时候,可以选择本地查找,然后继续
7.安装完成之后应该可以新建项目如图(项目工程不能有中文路径):
最后会出现下图这个命令(一定要点击yes):
这样工程就新建完成了,介绍一下ESP-IDF在VSCode里面一些功能如图:
最左边开始算:1.表示ESP-IDF版本 2.连接板子的COM口 3.芯片的型号 4.选择当前目录 5.ESP-IDF设置(配置) 6.清除构建生成的文件 7.开始构建文件 8.选择烧录方法 9.烧录到设备 10.监控串口 11.调试 12.构建、下载、监控设备一起实现
Arduino
https://espressif.github.io/arduino-esp32/package_esp32_index.json
- 将项目文件夹修改为 C:\Users\Waveshare\AppData\Local\Arduino15\packages(其中 Waveshare 为计算机用户名)
- 进入开发板管理器,搜索 esp32 ,在下方的 esp32 by Espressif Systems 中选择 3.0.2 版本并点击安装(若不能正常安装可使用手机热点尝试)
安装库文件
- 如果之前有相同的库,需要备份,防止冲突,需要安装的库只有一个,LVGL库版本V8.3.11
- 打开Arduino IDE,进入首选项,查看库的目录地址如下:
- 进入到该目录(该目录中的ag是电脑用户名),该目录下有个libraries目录,进入到该目录之后,把下载的库文件解压之后提取到这里即可完成,如图:
示例程序
ESP-IDF
- 在进行下面的例程时必须要配置的一些信息:
- 下面例程都是基于库文件ESP-IDF-V5.1.4 代码编辑器VSCode
- 通过上面的环境搭建,而且新建任何一个工程都可以成功编译下载固件到开发板
- 使用VSCode打开下面工程文件之后,需要配置一些宏定义,如下:
- 先点击齿轮,进入可视化配置,当然也可以通过终端命令行的方式进入,首先搜索Flash,然后在Flash界面选择Flash SPI的方式,有很多种,一般不同的Flash大小对应不同的方式,可以在官网查看对应的手册,我们是16M,选择DIO,Flash读写速度选择80MHZ,Flash 大小选择16M,最后点击保存。
- Flash配置完成之后,在配置PSRAM,外部RAM,同样,搜索PSRAM,然后打开外部RAM(默认是不打开的),查找方式选择自动,速度选择80MHZ(默认40MHZ),配置完成之后,再搜索system,把系统频率改到最大240MHZ(默认是160MHZ)
- 最后我们修改一下FreeRTOS的滴答频率,同样搜索FreeRTOS,选择configTICK_RATE_HZ那选框里面把100修改成1000(必须要修改为1000)点击保存
- 每打开一个新的例程都需要注意上面的有没有配置好,因为这样配置只是针对该例程,而不是所有ESP-IDF工程
FactoryProgram
- 这是一个综合性工程,打开工程,先清除构建文件,再构建->下载;固件成功下载到开发板之后,可以在屏幕上看到
如果是不带触摸的板子,需要通过板子侧面BOOT按键进行切换页面,如果是带触摸的板子可以通过触摸切换页面,优先显示出模拟时钟界面
- 触摸版本往左边划动,不带触摸版本通过按下BOOT按键切换至Argument界面,可以看到
该页面是一些板载硬件信息
- 再次滑动/点击BOOT按键,跳转到Touch界面,如图
该界面是组件界面
- 再次滑动/点击BOOT按键,跳转到WIFI界面,如图
ADC_Test
- 用于读取系统当前的一个电压值,也可以认为是经过电池芯片转换之后的一个电压值;打开工程,清除构建文件,再次构建->下载固件。
- 通过打开监控可以看到,输出ADC的值和电压,如图:
可以看到ADC采样值是1687左右,实际电压是大于3.3V,因为这是经过电池芯片升压之后的电压,想具体分析,可以点击查看原理图
SD_Test
- 首先清除构建文件,然后构建->下载固件,下载成功之后,点击监控设备,可以看到(注意:必须先插入容量小于32G的SD卡)
可以看到输出一些SD卡的信息sios是SD卡的实际容量
IMU_Test
- 打开工程文档,首先清除构建文件,然后构建->下载固件,点击监控设备,可以看到IMU发出来的原始数据(欧拉角需要自己转换)
可以看到,每隔1秒输出一次,如果需要修改或者参考,可以直接进去qmi源文件修改
LVGL_Test
- LVGL目录有两个工程,一个是原始显示,一个是旋转90度显示,可以根据需求来进行选择;步骤还是先打开工程,清除构建文件,然后开始构建->下载固件;
- 本次主要分析工程代码,效果可以直接下载观看,原始显示和旋转90度显示主要差异为两点:
在该lcd_init_cmds数组下的0x36地址,该寄存器是负责旋转的寄存器,通过修改这个寄存器的值就可以达到旋转效果,寄存器值0x30是旋转90度的值,如果不需要旋转,可以直接把整个{0x36,(uint8_t []){0x30,1,0}},删除。
旋转之后x,y已经发生变化,触摸部分需要改变,通过镜像可以实现如swap_xy=1,mirror_x=0,mirror_y=1可以实现旋转90的触摸。
WIFI_Test
- 该工程实现芯片处于STA模式下连接WIFI而且获取到IP地址,首先清除构建文件,开始构建->下载固件,然后监控界面,在监控界面之前,需要修改一些代码,如:
修改成所处环境可用的WIFI路由器名字和密码,然后下载固件到开发板,点开监控,可以看到成功连接WIFI而且输出IP地址。
Arduino
- 在跑例程之前,主要有两点需要注意
- Arduino例程用了很多ESP-IDF的库而且是基于V5.1.4版本的,所以本地必须先部署有ESP-IDF-V5.1.4的环境,可参考前面环境搭建ESP-IDF部分的1步骤和2步骤
- Arduino的工具(tools)配置必须如下:
ADC_Test
- 用于读取系统当前的一个电压值,也可以认为是经过电池芯片转换之后的一个电压值;打开工程,编译->下载。
- 通过打开串口监控可以看到,输出ADC的值和电压,如图:
可以看到ADC采样值是1687左右,实际电压大于3.3V,是因为经过电池芯片的升压,想具体分析,可以点击查看原理图
SD_Test
- 首先打开工程,然后编译->下载固件,下载成功之后,点击串口监控设备,可以看到(注意:必须先插入容量小于32G的SD卡)
可以看到输出一些SD卡的信息practical_size是SD卡的实际容量
IMU_Test
- 打开工程文档,编译->下载固件,点击串口监控设备,可以看到IMU发出来的原始数据(欧拉角需要自己转换)
可以看到,每隔1秒输出一次,如果需要修改或者参考,可以直接进去qmi源文件修改
WIFI_Test
- 该工程实现芯片处于STA模式下连接WIFI而且获取到IP地址,在编译、下载固件之前,需要修改一些代码,如:
修改成所处环境可用的WIFI路由器名字和密码,然后下载固件到开发板,点开串口监控,可以看到成功连接WIFI而且输出IP地址。
LVGL_Test
- 先打开工程,LVGL例程对RAM和ROM要求比较高,所以必须要按照环境搭建的要求来配置,配置好之后编译->下载固件,开发板上如图所示:
- 针对LVGL,lvgl_conf.h是LVGL的配置文件,下面主要针对一些常用的来进行说明,如下图:
- 还有一些LVGL的demo、文件系统都可以在conf配置文件里面设置。
Arduino_Playability
- 我们还提供一些具有可玩性的程序,供大家参考,不过需要注意一点,下面的例程均是基于ESP32_Arduino版本低于V3.0,环境搭建可以参考下面
RGBpalette
该例程可以触摸控制
AnimationDemo
该例程不可以触摸控制
SliderControl
该例程可以触摸控制
资料
文档
程序
软件
数据手册
FAQ
问题: VSCode环境搭建失败?
- 检查系统环境变量用户变量PATA里面有没有把VSCode引进去
- 检查系统环境变量用户变量有没有把ESP-IDF的路径加载进去
问题:Arduino程序后无反应或者编译报错?
- 没有反应先检查Arduino IDE -> Tools有没有正确配置
- 本地是否已经搭建好了ESP-IDF,版本是否对应(Arduino例程用到很多IDF库)
问题: 显示图片滑动的时候比较卡?
- 修改LVGL显示缓存为整个屏幕大小,而不是整个屏幕的10/1
- 在配置选项里面修改LV_IMG_CACHE_DEF_SIZE改到1000可以得到一定优化
问题: 显示不了中文?
- 基本的中文可以显示,如果是生僻字显示不了
- 可以把需要的生僻字通过转码软件转码,然后加入到工程字库里面
技术支持
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841