找回密码
 立即注册
首页 业界区 安全 《ESP32-S3使用指南—IDF版 V1.6》第三十三章 RGB显示屏 ...

《ESP32-S3使用指南—IDF版 V1.6》第三十三章 RGB显示屏实验

能氐吨 2025-9-28 16:45:28
第三十三章 RGB显示屏实验
1)实验平台:正点原子DNESP32S3开发板
2)章节摘自【正点原子】ESP32-S3使用指南—IDF版 V1.6
3)购买链接:https://detail.tmall.com/item.htm?&id=768499342659
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/esp32/ATK-DNESP32S3.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子DNESP32S3开发板技术交流群:132780729
1.jpeg

2.png

ESP32-S3的LCD_CAM控制器由独立的LCD模块和Camera模块组成。LCD模块主要用于发送并行视频数据信号,支持多种接口时序,如RGB、MOTO6800和I8080。而Camera模块则用于接收并行视频数据信号,支持DVP 8-/16-bit模式。在本章节中,我们将首先介绍正点原子的RGBLCD显示屏的参数和功能参数,然后详细介绍LCD_CAM控制器的LCD模块,该模块用于驱动RGBLCD接口。
本章分为如下几个小节:
33.1 RGBLCD和LCD模块接口简介
33.2 硬件设计
33.3 程序设计
33.4 下载验证
33.1 RGBLCD和LCD模块接口简介
33.1.1 RGBLCD简介
RGBLCD是基于一组特定的同步信号,该同步信号指示在哪里开始和停止帧。帧缓冲区分配在ESP侧。因为在这种情况下我们不需要安装任何IO接口驱动程序,所以这使得驱动程序的安装步骤极大简化了。接下来我们就简单介绍一些RGBLCD的驱动。
1,RGBLCD的信号线
RGBLCD的信号线如表33.1.1.1所示:
3.png

表33.1.1.1 RGBLCD信号线
一般的RGB屏都有如表33.1.1.1所示的信号线,有24根颜色数据线(RGB各8根,即RGB888格式),这样可以表示最多1600W色,DE、VS、HS和DCLK,用于控制数据传输。
2,RGBLCD的驱动模式
RGB屏一般有2种驱动模式:DE模式和HV模式。DE模式使用DE信号来确定有效数据(DE为高/低时,数据有效),而HV模式,则需要行同步和场同步,来表示扫描的行和列。
DE模式和HV模式的行扫描时序图(以800*480的LCD面板为例),如图33.1.1.1所示:
4.png

图33.1.1.1 DE/HV模式行扫描时序图
从图中可以看出,DE和HV模式,时序基本一样,DEN模式需要提供DE信号(DEN),而HV模式,则无需DE信号。图中的HSD即HS信号,用于行同步,注意:在DE模式下面,是可以不用HS信号的,即不接HS信号,液晶照样可以正常工作。
图中的thpw为水平同步有效信号脉宽,用于表示一行数据的开始;thb为水平后廊,表示从水平有效信号开始,到有效数据输出之间的像素时钟个数;thfp为水平前廊,表示一行数据结束后,到下一个水平同步信号开始之前的像素时钟个数。
图33.1.1.1仅是一行数据的扫描,输出800个像素点数据,而液晶面板总共有480行,这就还需要一个垂直扫描时序图,如图33.1.1.2所示:
5.png

图33.1.1.2 垂直扫描时序图
图中的VSD就是垂直同步信号,HSD就是水平同步信号,DE为数据使能信号。如图可知,一个垂直扫描,刚好就是480个有效的DE脉冲信号,每一个DE时钟周期,扫描一行,总共扫描480行,完成一帧数据的显示。这就是800480的LCD面板扫描时序,其他分辨率的LCD面板,时序类似。
图中的tvpw为垂直同步有效信号脉宽,用于表示一帧数据的开始;tvb为垂直后廊,表示垂直同步信号以后的无效行数,tvfp为垂直前廊,表示一帧数据输出结束后,到下一个垂直同步信号开始之前的无效行数;这几个时间同样在配置LTDC的时候,需要进行设置。
3,正点原子 RGBLCD模块
正点原子目前提供大家五款 RGBLCD 模块:ATK-4342(4.3寸,480
272)、ATK-4384(4.3寸,800480) ATK-7084(7寸,800480)、 ATK-7016(7 寸,1024600)和ATK-1018(10.1 寸,1280800),这里我们以 ATK-7084 为例,给大家介绍。该模块的接口原理图如图 33.1.1.3 所示:
6.png

图33.1.1.3 RGBLCD模块对外接口原理图
图中 J3就是对外接口,是一个40PIN 的 FPC 座( 0.5mm 间距),通过 FPC 线,可以连接到ESP32-S3 开发板的RGB接口上面,从而实现和ESP32-S3的连接。该接口十分完善,采用 RGB888 格式,并支持 DE&HV 模式,还支持触摸屏(电阻/电容)和背光控制。右侧的几个电阻,并不是都焊接的,而是可以用户自己选择。默认情况, R1 和 R6 焊接,设置 LCD_LR和 LCD_UD,控制 LCD 的扫描方向,是从左到右,从上到下(横屏看)。而 LCD_R7/G7/B7则用来设置 LCD 的 ID,由于 RGBLCD 没有读写寄存器,也就没有所谓的 ID,这里我们通过在模块上面,控制 R7/G7/B7 的上/下拉,来自定义 LCD 模块的 ID,帮助 MCU 判断当前 LCD 面板的分辨率和相关参数,以提高程序兼容性。这几个位的设置关系如表33.1.1.2 所示:
7.png

表33.1.1.2正点原子 RGBLCD模块ID对应关系
这样我们在程序里面,读取 LCD_R7/G7/B7,得到 M0:M2 的值,从而判断 RGBLCD 模块的型号,并执行不同的配置,即可实现不同 LCD模块的兼容。
更详细的RGB屏相关内容,可以参考正点原子提供的《ATK-MD0430R模块用户手册_V1.0》和《ATK-MD0430R模块使用说明_V1.0》,在这两个手册中,已经详细说明了RGB的工作原理及相关参数信息。
33.1.2 LCD模块接口简介
本小节主要介绍LCD_CAM控制器的LCD模块,至于CAMERA模块讲解,作者会在摄像头章节中涉及,下面我们来看一下LCD模块的结构框架。
8.png

图33.1.2.1 LCD_CAM控制器结构框架
这个系统的LCD模块(即上图的下方部分)包括以下模块:一个独立的发送控制单元(LCD_Ctrl),用于控制LCD的发送;一个发送异步FIFO(Async Tx FIFO),用于与外部设备交互,发送数据;一个LCD_ClockGenerator时钟生成模块,用于生成对应模块的时钟;以及一个格式转换模块,即RGB/YCbCr Converter,用于各种格式的视频数据互相转换。这些模块协同工作,确保系统能够高效、稳定地处理和传输并行视频数据信号。
需要读者注意的是:LCD_CAM的所有信号均需要经过GPIO交换矩阵映射到芯片管脚。更多信息请参考章节6 IO MUX和GPIO 交换矩阵(GPIO, IO MUX)。
1,LCD模块信号描述
LCD模块信号对应了上图右下角的几个信号,它们的具体作用如下所示。
9.png

表33.1.2.1 LCD模块信号描述
在启动LCD模块时,信号的位宽是一个关键参数。根据所接入的LCD的位宽,N的值会有所不同。如果使用RGBLCD接口连接,并且位宽为16位,则N的值为15。相反,如果接入的LCD使用8位的位宽,则N的值为7。因此,根据LCD的位宽,可以确定N的具体值。
2,LCD时钟选择
从上图可以清晰地看到,LCD模块的时钟由三个不同的时钟源提供,它们分别是XTAL_CLK、PLL_D2_CLK和PLL_F160M_CLK。LCD模块的时钟源选择模式是由寄存器LCD_CAM_LCD_CLOCK_REG中的LCD_CAM_LCD_CLK_SEL位决定的。最后,LCD_Clock Generator时钟生成模块负责生成LCD模块所需的时钟,即上图中的LCD_CLK。
下图是LCD时钟选择与计算框图。

图33.1.2.2 LCD时钟选择与计算框图
LCD_CLK 的频率 fLCD_CLK 与分频器时钟源频率 fLCD_CLK_S 间的关系如下:

11.png

其中,2

相关推荐

19 小时前

举报

感谢,下载保存了
您需要登录后才可以回帖 登录 | 立即注册