启明云端分享| ESP32-S3 RGB点屏教程

提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸科技的新产品、新方案的主要特点及应用!希望你能第一时间了解并快速用上好的方案和产品!

启明云端分享| ESP32-S3 RGB点屏教程_第1张图片


启明云端分享| ESP32-S3 RGB点屏教程_第2张图片
选择启明云端WT32-S3-WROVER1模块+RGB接口 4寸480*480屏

一、常用LCD接口简介
目前常用的驱屏方式 --> 8080接口,SPI接口,RGB接口。
8080接口:数据位传输有8位, 16位和18位。连线分为:CS,RS,RD,WR,数据线。8080写入速度比SPI快,但是占用的管脚资源相对spi接口来说较多。
SPI接口:小屏常用的驱屏方案之一,连线为CS,SLK,SDI,SDO四根线,连线少但是软件控制比较复杂。
以上两种方式适用于 320480分辨率及以下的LCD。LCD分辨率越高需要更大的GRAM空间,这样一来屏幕的成本就大大提高了。所以一般高于320480分辨率的屏幕多数使用的是RGB接口的方式。
RGB接口:大屏采用较多的模式,数据位传输也有16位和18位,24位, 之分。连线一般有:CLK,VSYNC,HSYNC,DE,数据线。RGB接口的屏一般不带GRAM,价格相对比较便宜。通过数据线直接将数据写入屏幕,常用于显示视频或动画。

二、开发环境及硬件准备
ESP32-S3 SDK:
https://github.com/espressif/esp-idf

ESP32-S3 SDK环境搭建文档 :
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/index.html

Esp32-S3官方驱动RGB example:
https://github.com/espressif/esp-idf/tree/master/examples/peripherals/lcd/rgb_panel

启明云端分享| ESP32-S3 RGB点屏教程_第3张图片
注意事项:
有些屏幕驱动芯片需要先使用SPI配置参数,官方历程不带…. 需要自己手动添加SPI相关的配置,官方例程适用于自带默认参数的屏幕。

硬件准备:
1.ESP32-S3 带PSRAM的开发板,推荐使用ESP32-S3R8的芯片。
2.通用 RGB接口显示屏,16 位宽。
3.用于供电和烧录的 USB 电缆。
硬件连接示意图
启明云端分享| ESP32-S3 RGB点屏教程_第4张图片

三、使用ESP32-S3点亮SPI配置+RGB接口屏幕。
RGB接口驱动芯片一般都不带显存,需要MCU准备充足的显存空间,一般的MCU都没有这么大的RAM,但ESP32-S3(S3R8)带有8线8M的PSRAM。
ESP32-S3 是一款低功耗的 MCU 系统级芯片 (SoC),支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (Bluetooth® LE) 双模无 线通信。芯片集成了 Xtensa® 32 位 LX7 双核处理器、超低功耗协处理器、Wi-Fi 基带、蓝牙基带、RF 模块以及 外设。芯片的功能框图如下图所示。
启明云端分享| ESP32-S3 RGB点屏教程_第5张图片
下面分析一下官方rgb_panel的例程。
先将控制LCD背光的引脚配置为输出模式,通过设置IO的高低电平来控制LCD背光的亮灭。
启明云端分享| ESP32-S3 RGB点屏教程_第6张图片
2. LCD RGB接口相关配置
分为两大部分

  1. RGB接口所需要配置的IO口
  2. RGB 接口所需的时序参数
    使用的屏幕数据格式是RGB565,因此数据宽度设置为16位。
    ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器,拥有 45 个可编程 GPIO,主频高达 240 MHz,直接将时钟设置为240MHz。
    启明云端分享| ESP32-S3 RGB点屏教程_第7张图片
    启明云端分享| ESP32-S3 RGB点屏教程_第8张图片
    注意事项:
    RGB 面板的帧缓冲区位于 ESP (与其他基于控制器的 LCD 不同,帧缓冲区位于外部芯片中)。由于帧缓冲区通常会消耗大量 RAM(取决于 LCD 分辨率和颜色深度),建议将帧缓冲区放入 PSRAM。但是在 PSRAM 中放置帧缓冲区会将 PCLK 限制在 12MHz 左右(由于 PSRAM 的带宽)。

EXAMPLE_LCD_PIXEL_CLOCK_HZ 默认是10MHz(实测可以跑到15MHz)。
RGB时序结构可以参考下面的时序结构图
启明云端分享| ESP32-S3 RGB点屏教程_第9张图片
至此LCD相关的配置已经完成,接下来就是通过这些配置来初始化LCD屏幕,并显示图像。
1)通过配置将LCD屏幕初始化完成,并打开LCD屏幕的背光。
启明云端分享| ESP32-S3 RGB点屏教程_第10张图片
2)ESP系列芯片都是上的LVGL,需要初始化LVGL相关的库,将屏幕驱动和LVGL对接,就可以直接使用lvgl进行UI的开发。
启明云端分享| ESP32-S3 RGB点屏教程_第11张图片
3)下面以LVGL官方的演示示例,展示屏幕的显示效果。(可以将lvgl库移植到components里面,可以直接调用官方演示demo)
在这里插入图片描述
编译:idf.py build
烧录:idf.py -p PORT -b BAUD flash
PORT: 端口号
BAUD: 波特率
显示效果如下:
启明云端分享| ESP32-S3 RGB点屏教程_第12张图片

启明云端分享| ESP32-S3 RGB点屏教程_第13张图片

ESP32-S3驱动480*480的RGB屏DEMO,效果不错

你可能感兴趣的:(乐鑫ESP方案及开发文档,ESP32-S3,4寸串口屏,启明云端,RGB)