I.MX6ULL裸机学习——LCD液晶屏
前面学习了 UART 串口通信,接下来开始学习 LCD。LCD 主要用于显示文字、图片以及一些运行数据。
一、LCD是什么
LCD 就是液晶显示屏,我们平时使用的显示器、手机屏幕等都属于显示设备。
从使用的角度来说,我们不需要去研究 LCD 内部液晶分子的具体工作原理,重点关注几个参数就可以。
1. 分辨率
LCD 是由一个一个像素点组成的。
比如常见的 1920×1080,表示:
横向:1920 个像素
纵向:1080 个像素
所以总像素数量就是:
1920 × 1080 = 2073600
分辨率越高,在屏幕尺寸相同的情况下,显示出来的图像通常越细腻。
二、RGB
LCD 中一个像素通常由 R、G、B 三种颜色组成:
R:红色
G:绿色
B:蓝色
通过这三种颜色不同的组合,就可以显示出各种颜色。
我们使用的 RGB LCD,本质上就是给 LCD 不断提供 RGB 像素数据。
三、LCD为什么需要时序
RGB LCD 不只是把 RGB 数据直接送过去就可以了,还需要一些控制信号。
主要包括:
CLK
HSYNC
VSYNC
EN
RGB数据
其中:
-
CLK:像素时钟
-
HSYNC:行同步信号
-
VSYNC:帧同步信号
-
EN:数据有效信号
-
RGB:实际的像素数据
可以简单理解成:
一行一行地发送像素数据
↓
发送完一行
↓
开始下一行
↓
发送完整个屏幕
↓
开始下一帧
四、LCD的行时序
一行 LCD 数据并不是只有有效的像素数据,中间还存在一些等待时间。
主要有:
HSPW
HBP
HOZVAL
HFP
其中:
-
HSPW:行同步信号宽度
-
HBP:行同步后肩
-
HOZVAL:一行有效像素的数量
-
HFP:行同步前肩
所以一行所需要的时间为:
HSPW + HBP + HOZVAL + HFP
例如屏幕分辨率为 1024×600,那么:
HOZVAL = 1024
五、LCD的帧时序
一帧就是完整显示一次整个屏幕。
帧时序主要包括:
VSPW
VBP
LINE
VFP
其中:
-
VSPW:帧同步信号宽度
-
VBP:帧同步后肩
-
LINE:一帧有效显示的行数
-
VFP:帧同步前肩
如果屏幕分辨率为 1024×600,那么:
LINE = 600
一帧所需要的时间就是:
VSPW + VBP + LINE + VFP
因此配置 RGB LCD 时,需要知道这些参数:
HOZVAL
LINE
HBP
HSPW
HFP
VSPW
VBP
VFP
这些参数一般可以从 LCD 屏幕的数据手册中找到。
六、I.MX6ULL如何驱动LCD
I.MX6ULL 内部提供了 eLCDIF 控制器,可以专门用来驱动 RGB LCD。
它负责按照我们设置好的时序,把显存中的数据发送给 LCD。
LCD 本身没有显存,所以我们需要在开发板的 DDR3 中划出一块内存作为 LCD 的显存。
比如使用 ARGB8888,一个像素需要 4 个字节。
假设屏幕是 800×480:
800 × 480 × 4
= 1536000 Bytes
≈ 1.5MB
然后把这块内存的首地址设置到 LCDIF 的当前缓冲寄存器中,LCDIF 就会自动读取这块内存的数据并显示出来。
七、LCD的初始化流程
根据这次实验,LCD 的初始化可以简单分成三步:
初始化IO引脚
↓
初始化LCD像素时钟
↓
初始化eLCDIF
↓
设置显存
↓
开始显示
1. 初始化IO
需要把 LCD 使用到的引脚配置成 LCDIF 功能。
除了 RGB 数据线,还包括:
EN
HSYNC
VSYNC
CLK
另外还需要控制 LCD 背光。
实验中使用:
GPIO1_IO08
作为 LCD 背光控制信号,设置为高电平后 LCD 才能正常“亮起来”。
2. 初始化像素时钟
LCD 对像素时钟有要求,需要根据 LCD 的时序参数配置对应的时钟。
本实验使用的 LCD 像素时钟配置为:
31.5MHz
3. 初始化eLCDIF
最后就是配置 I.MX6ULL 的 eLCDIF。
主要就是根据 LCD 的分辨率和时序参数,对 LCDIF 相关寄存器进行配置。
配置完成以后,LCDIF 就可以按照设定的时序不断读取显存中的数据并发送给 LCD。
八、显存
LCD 显示什么内容,实际上就是由显存中的数据决定的。
可以简单理解成:
显存
↓
LCDIF
↓
LCD
↓
显示图像
比如我们想让屏幕显示一个红色的点,只需要修改对应像素在显存中的数据即可。
LCDIF 还有两个缓冲寄存器:
LCDIF_CUR_BUF
LCDIF_NEXT_BUF
分别表示当前显示缓冲和下一帧显示缓冲。
如果两个地址设置成同一个地址,修改显存以后可以直接显示。
如果使用两个不同的缓冲区,就可以实现双缓冲,连续显示图像时可以减少画面撕裂。
九、附图片参考

网硕互联帮助中心





评论前必须登录!
注册