LCD学习(韦东山)一
1 . 应用看到的LCD
lcd是由一个个像素点组成,每行有xres个像素,有yres行,它的分辨率是xres * yres。
1.1 颜色怎么表示
用红绿蓝三色来表示,可以用24位数来表示红绿蓝,也可以用16位等格式,比如
- bpp:bits per pixel 每一个像素多少位来表示
- 24 bpp 实际会用到32位,但是8位未使用,其余24位中,分别用8位来表示红(R)绿 (G)l蓝(B)
- 16 bpp 有rbg565、rgb 555
- rgb 565: 5位表示红、6位表示绿、5位表示蓝
- rgb 555: 5位表示红、5位表示绿、5位表示蓝
1.2 怎么把颜色发到LCD
假设每个像素的颜色用16位来表示,那么一个LCD的所有像素点假设有xres * yres 个,
那么需要的内存大小位:xres * yres * 16/8 那么需要这么大小的内存。这块内存被称为framebuffer:
- Framebuffer 中每块数据对应一个像素
- 每块数据大小可能是16位、32位、这个跟LCD上像素的颜色格式有关
- 设置好LCD硬件后,只需要把颜色写入framebuffer即可
2 . 驱动看到的LCD
回答问题:
- Framebuffer 在哪里?
- 谁把Framebuffer 中的数据发给LCD
2.1 统一的LCD 硬件模型
![](https://img2023.cnblogs.com/blog/3049579/202212/3049579-20221209145227528-2045375127.png)
- RBG的数据来自LCD控制器
- DCLK 数据负责移动像素
- HSYNC 移动的到下一行
- VSYNE 从最后一行跳到首行
- DE 决定数据是否有效
CSX 片选引脚
RESX 复位引脚
D/CX 数据引脚/命令引脚
WRX 写引脚
RDX 读引脚
D 数据信号
- MIPI-DPI (Display Pixel Interface
- Supports 24 bit/pixel (R: 8-bit, G: 8-bit, B: 8-bit)
- Supports 18 bit/pixel (R: 6-bit, G: 6-bit, B: 6-bit)
-
Serial,相比于DBI、DPI需要使用很多接口线,DSI需要的接口线大为减少
-
Supports one data lane/maximum speed 500Mbps
-
Supports DSI version 1.01
-
Supports D-PHY version 1.00