LCD驱动核心基础
这段时间梳理LCD驱动的入门知识点,把核心内容整理出来。
屏幕参数基础
屏幕分辨率是横向像素点个数 × 纵向像素点个数,常见规格有800×480、1920×1080(1080P)、2560×1440(2K)。
屏幕尺寸以英寸为单位,指的是屏幕左上角到右下角的对角线长度,1英寸等于2.54厘米。显示效果遵循两个规律:分辨率相同时,屏幕尺寸越小显示越细腻;尺寸相同时,分辨率越高显示效果越好。
像素颜色格式
像素颜色由RGB三通道构成,每个通道取值范围0~255,不同格式的存储占用不同:
-
RGB888:每个像素占3字节,8bit面板,支持1670万色
-
RGB565:每个像素占2字节,R、G、B分别占5位、6位、5位
-
ARGB:每个像素占4字节,包含透明通道
-
RGB101010:10bit面板,支持10亿色,成本更高,多用于专业视频剪辑
显存与像素读写
显存是专门存放图像数据的内存空间,这里用到的显存起始地址为0x89000000。
以800×480分辨率、ARGB格式计算,一帧画面需要的显存容量约为 800 × 480 × 4 = 1.5MB。
想要在指定坐标(x,y)绘制颜色,直接通过指针操作显存地址即可:
unsigned int *p = 0x89000000;
*(p + 800 * y + x) = col;
本质上和二维数组是对应的,相当于 unsigned int a480800 ,a00就对应屏幕左上角的第一个像素。
接口信号线
LCD接口一共有四根核心信号线:PCLK、HSYNC、VSYNC、DE。
每根线的分工很明确:
-
PCLK(Pixel Clock):像素时钟信号线,用来同步每个像素点发送的时间间隔
-
HSYNC(Horizontal Sync):行同步时钟信号线,同步每一行像素的发送时间间隔
-
VSYNC(Vertical Sync):帧同步时钟信号线,同步每一整帧图像的发送时间间隔
-
DE(Data Enable):数据使能信号线
屏幕刷新率就是每秒能够刷新的图像帧数,常用的规格是60Hz。
驱动配置流程
LCD驱动的配置主要分三步完成:
-
配置引脚的复用功能,同时设置引脚的电气属性
-
配置LCD时钟,当前屏幕的时钟参数为31MHz
-
配置LCD控制器的相关寄存器