1、LCD简介
1、分辨率
LCD显示器都是一个个像素点组成,比如1080p就是LCD上屏幕点数是1920*1080
像素格式
上面提到了像素点1,一个像素点相当于一个RGB小灯,通过控制这三种颜色亮度就可以显示各种各样的色彩,R,G,B分别占用8bit,再加上透明通道的8bit,一个像素点相当于占用4个字节的内存
3、lcd屏幕接口
IMX6ULL支持RGB接口的LCD,信号线如下,24个io口需要设置

4、显存
存放一帧的图像数据大小,一般定义一个数组
5、lcd时间参数
画一帧图片需要一行一行的画,HSYNC信号表示新的一行开始显示,信号的维持时间是HSPW
下一行像素的显示需要有个延时,叫做HFP
垂直:
VSYNC:垂直同步信号,帧同步信号,当出现这个信号的时候表示新的一帧开始显示,持续时间是vspw,间隔时间是VBP
2.LCD驱动简析
不同分辨率的 LCD 屏幕其 eLCDIF 控制器驱动代码都是一样的,只需要修改好对应的屏幕参数即可,也就是在设备树里面修改。LCD驱动部分不需要我们修改,只需要根据所使用的LCD来修改设备树:
1、LCDs所使用的Io配置
RGB LCD 的 24 根数据线配置项/4 根控制线配置项/LCD 背光 PWM 引脚配置项
2、lcd屏幕节点修改,修改相对应的属性值,换成我们的LCD屏幕参数
使用到的电气属性(data/ctl)
屏幕尺寸等参数
3、lcd背光节点信息修改,要根据实际使用的背光io来修改相应的设备节点信息
LCD 驱动代码编写
应用程序将数据写入framebuffer中,然后地址映射到内存中(物理内存与虚拟内存需要是一个地址)
lcd控制器从framerbuffer内存中将每个像素点发送给lcd
famerbuffer驱动是一个字符驱动创建一个内存空间,可以直接对齐对写

frambuff驱动框架编写
一、分配fb_info
fb_alloc_framebuffer 为framebuffer分配空间,进行内存映射
二、设置fb_info
初始化fb_info设备结构体
从数据手册中获取屏幕参数,需要的参数每个屏幕不一定相同,填充fb_info
操作函数也在其中
三、注册fb_info
register_framebuffer
*注册fb设备到系统中
硬件的配置
1、引脚设置
配置GPIO用于LCD
2、时钟设置
根据LCD手册设置LCD控制器,比如VCLK的频率
3、lcd控制器设置
分配显存(framebuffer)并将地址告诉LCD控制器

文章介绍了LCD显示器的基础知识,包括分辨率、像素格式和RGB接口。重点讲解了LCD驱动,强调不同分辨率的LCD屏幕驱动代码基本一致,主要通过修改设备树适应不同屏幕参数。此外,还涉及framebuffer的分配和注册,以及硬件配置如GPIO和时钟设置。

(三)&spm=1001.2101.3001.5002&articleId=129718756&d=1&t=3&u=6c4aea4b2f7649c28e875ad06e36629b)
3588

被折叠的 条评论
为什么被折叠?



