“ESP32-S3-Touch-LCD-1.28”的版本间的差异

来自Waveshare Wiki
跳转至: 导航搜索
→‎FAQ
第323行: 第323行:
 
[[File:ESP32-S3-1.28-UART.png]]
 
[[File:ESP32-S3-1.28-UART.png]]
 
|||}}
 
|||}}
 +
 +
{{FAQ|为什么烧录失败?|
 +
长按boot键后连接设备后 再松开boot键
 +
|||}}
 +
 
</div>
 
</div>
 
<div class="tabbertab" title="售后" id="mysupport">
 
<div class="tabbertab" title="售后" id="mysupport">

2024年1月19日 (五) 10:16的版本


ESP32-S3-Touch-LCD-1.28
{{{name2}}}
{{{name3}}}
功能简介
特性 无特性,不解释
主控 ESP32-S3R2
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 Type C USB

说明

产品简介

ESP32-S3-Touch-LCD-1.28(以下统称开发板) 是一款微雪 (Waveshare) 设计的低成本,高性能的微控制器开发板。其中板载了 1.28 英寸电容触摸 LCD 屏、锂电池充电芯片、六轴传感器(三轴加速度计与三轴陀螺仪)等外设,采用的 ESP32-S3R2 是集成了低功耗 Wi-Fi 和 BLE5.0 的系统级芯片(SoC),此外还具有外部 16MB Flash 和 2MB PSRAM。Soc内部的硬件加密加速器、RNG、HMAC 和数字签名 (Digital Signature) 模块,可以满足物联网的安全要求。多种低功耗工作状态满足在物联网 (IoT)、移动设备、可穿戴电子设备、智能家居等应用场景的功耗需求。

产品特性

  • 搭载高性能 Xtensa® 32 位 LX7 双核处理器,主频高达 240 MHz
  • 支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth® 5 (LE),板载天线
  • 内置 512KB 的 SRAM 和 384KB ROM,叠封 2MB PSRAM 和外接 16MB Flash
  • 采用 Type-C 接口,紧跟时代潮流,无需纠结正反插
  • 板载 1.28 英寸电容触摸 LCD 屏,240×240 分辨率,65K 彩色
  • 板载 QMI8658 六轴惯性测量单元 (3 轴加速度、3 轴陀螺仪),可检测运动姿态
  • 板载 3.7V 锂电池充放电接口和引出 6 个 GPIO 的 SH1.0 连接器
  • 支持灵活时钟,模块电源单独设置等精准控制,实现多场景低功耗模式
  • 集成 USB 串口全速控制器,GPIO 可灵活配置外设功能

产品参数

LCD参数
触摸芯片 CST816S 触摸接口 I2C
显示芯片 GC9A01A 显示接口 SPI
分辨率 240(H)RGB x 240(V) 显示尺寸 Φ32.4mm
显示面板 IPS 像素大小 0.135(H)x0.135(V)mm


IMU参数
传感器名称 QMI8658
加速度计特性 分辨率:16 位
量程 (可选):±2、±4、±8、±16g
陀螺仪特性 分辨率:16 位
量程 (可选):±16、±32、±64、±128、±256、±512、 ±1024、±2048°/sec

注意事项

  1. 圆形触摸屏的边缘,触摸灵敏和准确度会有所下降,这是正常的,圆形结构的触摸屏都会有这种情况
  2. 开发板使用时注意陶瓷天线区域,避免PCB板,金属,塑料件盖住陶瓷天线
  3. 板载高效充放电管理芯片 ETA6096 和 MX1.25 电池接口,目前设置充电电流为 1A,用户可自行更换 R15 电阻更改充电电流,接入 3.7V 单节锂电池,详情请查阅原理图,建议接入 500mAH 以下的 3.7V 单节锂电池

硬件说明

接口说明

Esp32-s3-touch-lcd-1.28-003.jpg

  • Type-C 接口 : 开发板使用CH343P芯片进行USB转UART,连接ESP32-S3的UART_TXD(GPIO43)和UART_RXD(GPIO44),用于固件烧录和日志打印。搭配自动下载电路,接上Type-C线缆后可直接下载固件。
  • SH1.0 连接器 : 开发板引出6个GPIO用于外部连接,GPIO可配置成I2C、SPI等外设功能,VSYS可直接输入5V为开发板供电。
  • LCD 接口 : 开发板板载4线 SPI 通信的 1.28 寸屏幕,SPI速率可提升至80MHz,触摸使用 I2C 通信(开发板使用 GPIO2 控制背光亮度,另外引出两个 MOS 管控制开关触点在电池座子周边,分别连接GPIO4,GPIO5,可自行焊接小电流设备如震动电机等,详情请查阅原理图
  • I2C 接口 : ESP32-S3提供多路硬件I2C,目前使用GPIO6(SDA)和GPIO7(SCL)引脚做I2C总线。挂载板上QMI8658六轴惯性测量单元和LCD触摸控制芯片,详情请查阅原理图
  • MX1.25连接器 : 开发板的 GPIO1 用于测量电池电压引脚,电池电压使用 200K 和 100K 串联分压连接到 GPIO1, ESP32-S3 系列有 2 路 12Bit SAR ADC 测量单元,源码中转换成电压公式是 3.3 / (1<<12) * 3 * AD_Value
引脚连接
ESP32-S3R2 LCD SH1.0 MX1.25 QMI8658 other
GPIO0 BOOT0
GPIO1 ADC
GPIO2 LCD_BL
GPIO3 INT2
GPIO4 INT1 MOSFET1_CS
GPIO5 TP_INT MOSFET2_CS
GPIO6 TP_SDA SDA
GPIO7 TP_SCL SCL
GPIO8 LCD_DC
GPIO9 LCD_CS
GPIO10 LCD_CLK
GPIO11 LCD_MOSI
GPIO12 LCD_MISO
GPIO13 TP_RST
GPIO14 LCD_RST
GPIO15 GPIO15
GPIO16 GPIO16
GPIO17 GPIO17
GPIO18 GPIO18
GPIO19
GPIO20
GPIO21 GPIO21
GPIO33 GPIO33

产品尺寸

Esp32-s3-touch-lcd-1.28-002.jpg

环境设置

ESP32 系列开发板的软件框架成熟,可使用 C/C++(Arduino,ESP-IDF),MicroPython 等进行快速开发产品原型,以下简要介绍:

  • 乐鑫官方的 C/C++ 库方便快速安装,中国大陆用户遇到下载问题请查看FAQ解决
    • ESP32系列 的 Arduino 开发手册
    • ESP32系列 的 ESP-IDF 开发手册
  • MicroPython 是 Python 3 编程语言的精简高效实现,其中包括 Python 标准库的一小部分,并且经过优化,可在微控制器和受限环境中运行。
    • Micropython 相关应用开发参考开发文档
    • Micropython 的 Github 库可以进行重新编译作定制开发
  • 环境设置是在 Windows 10 系统下进行,用户可以选择使用 Arduino 或 Visual Studio Code(ESP-IDF) 作为 IDE 进行开发,Mac/Linux 操作系统用户请参考官方说明

Arduino

1. 下载安装Arduino IDE,注意默认配置及全英文路径
2. Arduino IDE 安装 ESP32 库,详细安装过程如下,相关资料请点击链接参考

  • 中国大陆安装:

1. 下载离线包esp32_packages2.0.12_arduinome.exe 后双击安装,若之前在线安装失败,请删除掉 %LOCALAPPDATA%/Arduino15/packages 下的 esp32 文件夹
Esp32-s3-touch-lcd-4.3-005.jpg
2. 安装离线包后,打开 Arduino IDE,在 File->Preferences 下 Settings 界面的 Additional boards manager URLs 处填写下面链接后保存

https://arduino.me/packages/esp32.json

Esp32-s3-zero-003.jpg
3. 重启 Arduino IDE,离线包安装完成

  • 其它地区安装:

1. 在 File->Preferences 下 Settings 界面的 Additional boards manager URLs 处填写下面链接后保存

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Esp32-s3-zero-004.jpg
2. 在 Board Manager 中搜索 esp32 进行安装,下载安装完成后重启 Arduino IDE 生效
3. 打开 Arduino IDE,注意菜单栏中 Tools 选择 16MB Flash 和使能 QSPI PSRAM,如下图所示
Esp32-s3-touch-lcd-1.28-103.jpg Esp32-s3-touch-lcd-1.28-101.jpg

库安装

  • TFT_SPI,lvgl 库安装后需要配置文件,建议直接使用Esp32-s3-touch-lcd-lib中的 TFT_eSPI_Setups,TFT_eSPI,lvgl 文件夹复制到 C:\Users\xxxx\Documents\Arduino\libraries 目录下,xxxx 代表您电脑上用户名,注意甄别

Esp32-s3-touch-lcd-1.28-006.jpg

MicroPython

1. 下载安装最新 Thonny IDE后,打开Thonny IDE -> Configure interpreter...,如下图所示
ESP32-S2-Pico 021.jpg
2. Type-C 接口接入USB线缆,查找设备管理器或对应COM口,下载或运行程序,具体请查看硬件连接章节
3. 本教程请忽略此步骤(直接跳到第四步),按照下图步骤所示选择 ESP32-S3 系列的在线 MPY 固件下载,下载前会清除开发板的 Flash 内容,整个下载过程持续1分钟左右,MPY固件可以在官网下载
Esp32-s3-touch-lcd-1.28-007.jpg
4. 目前开发板使用定制的固件进行开发,打开flash_download_tool_3.9.5下载固件工具,固件在示例程序中,固件制作来自链接,固件合并成单个文件,注意下载地址是0x0位置

  • ESP32-S3-Touch-LCD-1.28连接电脑后,长按BOOT按键,单击RESET按键后松开BOOT按键,使其进入Download Mode
  • 选择芯片:ESP32-S3,下载模式:USB

ESP32-S3-Touch-LCD-1.28 101.png

  • 选择下载文件S3-Touch-LCD-1.28-MPY.bin,下载地址是0x0位置,COM选择ESP32-S3-Touch-LCD-1.28的COM,点击START进行烧录,等待烧录完成

ESP32-S3-Touch-LCD-1.28 102.pngESP32-S3-Touch-LCD-1.28 103.png
5. 烧录固件,按下RESET按键,将 mpy 目录下的示例程序导入开发板,如下图所示

  • 打开Thonny,选择ESP32,并选择对应COM口

ESP32-S3-Touch-LCD-1.28 104.jpg
ESP32-S3-Touch-LCD-1.28 105.png

  • 点击该按钮,可看到shell中输出语句,则说明开发板固件成功使用

ESP32-S3-Touch-LCD-1.28 106.png

  • 将示例程序中 mpy 文件夹上传至ESP32-S3-Touch-LCD-1.28中

Esp32-s3-touch-lcd-1.28-009.jpg
参考MicroPython Documentationreleases note 进行编程

其它固件下载方式

  • 若使用flash_download_tool_3.9.5下载固件,请按照如下图所示操作,注意 ESP32-S3 应用程序固件地址是 0x10000,partition_tables.bin 地址是 0x8000 , bootloader.bin 地址是 0x0

Esp32-s3-zero-006.jpg

示例程序

Arduino

注意:在使用Arduino例程前,请先检查Arduino IDE环境与下载设置是否正确配置,具体操作可查看Arduino环境配置

Arduino IDE示例

Arduino 示例程序可以使用 arduino-esp32 或 Arduino IDE 中的 File->examples中的示例程序(如:ESP32的GPIO、WIFI等通用示例使用),若需要使用到屏幕驱动,可参考屏幕驱动程序请查阅示例程序中esp32-s3-touch-lcd-1.28-demo例程的屏幕驱动 Esp32-s3-touch-lcd-1.28-104.jpg

esp32-s3-touch-lcd-1.28-demo

esp32-s3-touch-lcd-1.28-demo 示例,用于测试屏幕、六轴传感器、BAT、触摸屏的使用

  • 以下是该例程效果:
上电后,屏幕先间隔2秒显示白,红,绿,蓝四种颜色,检查屏幕有无漏光和黑点,若屏幕太快未看清,请按 RESET 按键重新复位开始

a.接着进入传感器测试环节,颜色显示完毕后,将会在屏幕上显示传感器数据,静止时,ACC_X和ACC_Y数值低于200,ACC_Z数值 在1000 左右,GYR_X ,GYR_Y ,GYR_Z 数值在0~10左右 属于正常情况,若数值混乱,则可能是六轴传感器损坏

b.此时接上3.7V锂电池,正常情况下,BAT(V)数值会降低

c.检查传感器后,长按红色区域“LongPress Quit”进入触摸测试环节,在 Touch test 的白色区域触摸打点程序

Arduino_LVGL

Arduino_LVGL 示例,用于显示 LVGL benchmark,music 等,LVGL 的具体开发请参考LVGL开发文档

  • LVGL库中用于显示刷新的回调函数,负责将LVGL的绘图缓冲区的内容刷新到TFT LCD上
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p )
参数:
     lv_disp_drv_t *disp_drv:LVGL: 提供的显示驱动结构体指针,包含了与显示相关的信息和函数指针。在这个函数中,用于向 LVGL 通知刷新完成
     const lv_area_t *area:LVGL  : 定义的区域结构体指针,表示需要刷新的区域。这个区域是相对于整个显示屏幕的一个矩形区域
     lv_color_t *color_p:LVGL    : 定义的颜色结构体指针,表示要在刷新区域内显示的颜色数据。在这个函数中,通过将这些颜色数据写入 TFT 缓冲区,完成绘制
  • 定时器的回调函数,通过调用 LVGL 函数 lv_tick_inc 来通知 LVGL 过去的时间,以便 LVGL 能够更新其内部的时间状态,处理与时间相关的任务,例如动画、定时器等。例子中,它每隔 EXAMPLE_LVGL_TICK_PERIOD_MS 毫秒就调用一次
void example_increase_lvgl_tick(void *arg)
  • 定时器的回调函数,其中计数器 count,每次调用就将计数器加一,在计数达到一定值时触发一个操作,这里是模拟在 30 次定时器触发后执行重启操作,具体的行为可以根据需要进行调整
void example_increase_reboot(void *arg)
  • LVGL库中的输入设备读取回调函数,用于处理触摸屏的输入事件
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
参数:
     lv_indev_drv_t *indev_drv: LVGL 中的输入设备驱动结构体指针。该结构体包含了有关输入设备的信息和回调函数
     lv_indev_data_t *data    : LVGL 中的输入设备数据结构体指针。该结构体用于存储输入设备的状态和数据,包括当前的触摸状态(按下或释放)以及触摸点的坐标

Arduino_Chinese_Font

  • Arduino_Chinese_Font 示例,用于显示 LVGL 内置的 1000 个常用中文字体

Arduino_Chinese_7500_Char

  • Arduino_Chinese_7500_Char 示例,用于显示 LVGL 的 7500 个中文字体,字体文件较大,下载固件时间比较长

Micropython

注意:在使用Micropython例程前,请先检查ESP32-S3-Touch-LCD-1.28是否已经烧录mpy 固件,Thonny环境是否正确配置,具体操作可查看Micropython环境配置
  • mpy文件中包含以下示例,具体示例说明与使用可以查看链接

ESP32-S3-Touch-LCD-1.28 107.png

FAQ

可以,UART初始化时直接指定引脚就好了: ESP32-S3-1.28-UART.png


长按boot键后连接设备后 再松开boot键


技术支持


联系人:苏工
EMAIL:3004517899@qq.com
电话:0755-83040712
QQ:3004517899
微信:扫下方二维码添加
Syq.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证